-
Notifications
You must be signed in to change notification settings - Fork 22
/
assignment.fy
53 lines (45 loc) · 1.11 KB
/
assignment.fy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
FancySpec describe: "Assignment" with: {
it: "should correctly assign multiple values at once" when: {
x, y, z = 1, 10, 100
x should == 1
y should == 10
z should == 100
x, y, z = 'foo, 'bar
x should == 'foo
y should == 'bar
z should == nil
x = 'foo
y = 'bar
x, y = y, x
x should == 'bar
y should == 'foo
}
it: "should handle multiple assignment for any collection type implementing 'at:" when: {
x, y, z = (1, 2, 3)
x should == 1
y should == 2
z should == 3
a, b, c = ["a", "b", "c"]
a should == "a"
b should == "b"
c should == "c"
e, f = ([1,2], "foo")
e should == [1,2]
f should == "foo"
}
it: "should handle multiple assignment with splat-identifiers" when: {
x,y,z,*rest = [1,2,3,4,5,6,7]
x should == 1
y should == 2
z should == 3
rest should == [4,5,6,7]
a,b,*c,*d,e = [1,2,3,4,5,6,7,8]
a should == 1
b should == 2
c should == [3,4,5,6,7,8]
d should == [4,5,6,7,8]
e should == 5
_,_,*z = "hello, world!" # ignore first 2 characters
z should == "llo, world!"
}
}