Sha256: c91d6b1d4d1b83a86bb485d70cb4c23e4659906d0a31b4966aefe4c324ae674a
Contents?: true
Size: 1.51 KB
Versions: 5
Compression:
Stored size: 1.51 KB
Contents
require File.join(File.dirname(__FILE__), '..', 'helper') require 'ludy/proc' require 'ludy/symbol/to_proc' if RUBY_VERSION < '1.9.0' class TestProc < Test::Unit::TestCase def test_bind assert_equal [9,8,7], ([1,2,3].map(&lambda{|lhs, rhs| lhs-rhs}.bind(10, :_1))) assert_equal [3,2,1], (lambda{|a,b,c| [a,b,c]}.bind :_3, :_2, :_1)[1,2,3] assert_equal [1,9,3], (lambda{|a,b,c| [a,b,c]}.bind :_1, 9, :_3)[1,2,3] assert_equal [9,2,3], (lambda{|a,b,c| [a,b,c]}.bind 9)[2,3] assert_equal [9,4,2], (lambda{|a,b,c| [a,b,c]}.bind 9, :_3)[2,3,4] end def test_curry multiply = lambda{|l,r| l*r} double = multiply.curry[2] assert_equal 8, double[4] assert_equal 6, double[3] xd = multiply['XD', 5] assert_equal 'XDXDXDXDXD', xd assert_equal 29, :+.to_proc.curry[18][11] assert_equal((0..4).to_a, lambda{|a,b,c,d,e|[a,b,c,d,e]}.curry[0][1][2][3][4]) end def test_compose f1 = lambda{|v| v+1} f2 = lambda{|v| v*2} f3 = f1.compose f2 assert_equal 21, f3[10] f4 = lambda{|a,b| a*b} f5 = lambda{|a,b| [a*b, a-b]} f6 = f4.compose f5 assert_equal(-30, f6[3,5]) f7 = lambda{|a| a*2}.compose f6.compose{|a,b| [b,a]} assert_equal 60, f7[3,5] end def test_chain f1 = lambda{|v| v+1} assert_equal 5, f1[4] f2 = lambda{|v| v+2} assert_equal 6, f2[4] f3 = f1.chain f2 assert_equal [6,7], f3[5] f4 = f3.chain f1 assert_equal [2,3,2], f4[1] f5 = f4.chain{|v|[10,11,v]} assert_equal [1,2,1,10,11,0], f5[0] end end
Version data entries
5 entries across 5 versions & 2 rubygems
Version | Path |
---|---|
godfat-ludy-0.1.13 | test/ludy/test_proc.rb |
ludy-0.1.10 | test/ludy/test_proc.rb |
ludy-0.1.11 | test/ludy/test_proc.rb |
ludy-0.1.13 | test/ludy/test_proc.rb |
ludy-0.1.9 | test/ludy/test_proc.rb |