blob: ec2c39b992067081102a0f1f89eb033916d4b6f2 [file] [log] [blame]
/**
* @author Hallvard TrĀ¾tteberg
* @version $Revision$
*/
class ClosureCurryTest extends GroovyTestCase {
void testCurry() {
clos1 = {s1, s2 | s1 + s2}
clos2 = clos1.curry("hi")
value = clos2("there")
assert value == "hithere"
clos3 = {s1, s2, s3 | s1 + s2 + s3}
clos4 = clos3.curry('a')
clos5 = clos4.curry('b')
clos6 = clos4.curry('x')
clos7 = clos4.curry('f', 'g')
value = clos5('c')
assert value == "abc"
value = clos6('c')
assert value == "axc"
value = clos4('y', 'z')
assert value == "ayz"
value = clos7()
assert value == "afg"
clos3 = {s1, s2, s3 | s1 + s2 + s3}.asWritable()
clos4 = clos3.curry('a')
clos5 = clos4.curry('b')
clos6 = clos4.curry('x')
clos7 = clos4.curry('f', 'g')
value = clos5('c')
assert value == "abc"
value = clos6('c')
assert value == "axc"
value = clos4('y', 'z')
assert value == "ayz"
value = clos7()
assert value == "afg"
clos3 = {s1, s2, s3 | s1 + s2 + s3}
clos4 = clos3.curry('a').asWritable()
clos5 = clos4.curry('b').asWritable()
clos6 = clos4.curry('x').asWritable()
clos7 = clos4.curry('f', 'g').asWritable()
value = clos5('c')
assert value == "abc"
value = clos6('c')
assert value == "axc"
value = clos4('y', 'z')
assert value == "ayz"
value = clos7()
assert value == "afg"
clos3 = {s1, s2, s3 | s1 + s2 + s3}
clos4 = clos3.curry('a').clone()
clos5 = clos4.curry('b').clone()
clos6 = clos4.curry('x').clone()
clos7 = clos4.curry('f', 'g').clone()
value = clos5('c')
assert value == "abc"
value = clos6('c')
assert value == "axc"
value = clos4('y', 'z')
assert value == "ayz"
value = clos7()
assert value == "afg"
clos3 = {s1, s2, s3 | s1 + s2 + s3}
clos4 = clos3.curry('a').asWritable().clone()
clos5 = clos4.curry('b').asWritable().clone()
clos6 = clos4.curry('x').asWritable().clone()
clos7 = clos4.curry('f', 'g').asWritable().clone()
value = clos5('c')
assert value == "abc"
value = clos6('c')
assert value == "axc"
value = clos4('y', 'z')
assert value == "ayz"
value = clos7()
assert value == "afg"
}
}