Skip to content

Commit 5bbb74e

Browse files
authored
Sync anagram tests (#298)
1 parent c67b92d commit 5bbb74e

File tree

1 file changed

+79
-60
lines changed

1 file changed

+79
-60
lines changed
Lines changed: 79 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,89 +1,108 @@
1+
12
Execute (no matches):
2-
let candidates = ['hello', 'world', 'zombies', 'pants']
3-
let subject = "diaper"
4-
let expected = []
5-
AssertEqual expected, FindAnagrams(candidates, subject)
3+
let g:candidates = ['hello', 'world', 'zombies', 'pants']
4+
let g:subject = "diaper"
5+
let g:expected = []
6+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
67

78
Execute (detects two anagrams):
8-
let candidates = ['lemons', 'cherry', 'melons']
9-
let subject = "solemn"
10-
let expected = ['lemons', 'melons']
11-
AssertEqual expected, FindAnagrams(candidates, subject)
9+
let g:candidates = ['lemons', 'cherry', 'melons']
10+
let g:subject = "solemn"
11+
let g:expected = ['lemons', 'melons']
12+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
1213

1314
Execute (does not detect anagram subsets):
14-
let candidates = ['dog', 'goody']
15-
let subject = "good"
16-
let expected = []
17-
AssertEqual expected, FindAnagrams(candidates, subject)
15+
let g:candidates = ['dog', 'goody']
16+
let g:subject = "good"
17+
let g:expected = []
18+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
1819

1920
Execute (detects anagram):
20-
let candidates = ['enlists', 'google', 'inlets', 'banana']
21-
let subject = "listen"
22-
let expected = ['inlets']
23-
AssertEqual expected, FindAnagrams(candidates, subject)
21+
let g:candidates = ['enlists', 'google', 'inlets', 'banana']
22+
let g:subject = "listen"
23+
let g:expected = ['inlets']
24+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
2425

2526
Execute (detects three anagrams):
26-
let candidates = ['gallery', 'ballerina', 'regally', 'clergy', 'largely', 'leading']
27-
let subject = "allergy"
28-
let expected = ['gallery', 'regally', 'largely']
29-
AssertEqual expected, FindAnagrams(candidates, subject)
27+
let g:candidates = ['gallery', 'ballerina', 'regally', 'clergy', 'largely', 'leading']
28+
let g:subject = "allergy"
29+
let g:expected = ['gallery', 'regally', 'largely']
30+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
3031

3132
Execute (detects multiple anagrams with different case):
32-
let candidates = ['Eons', 'ONES']
33-
let subject = "nose"
34-
let expected = ['Eons', 'ONES']
35-
AssertEqual expected, FindAnagrams(candidates, subject)
33+
let g:candidates = ['Eons', 'ONES']
34+
let g:subject = "nose"
35+
let g:expected = ['Eons', 'ONES']
36+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
3637

3738
Execute (does not detect non-anagrams with identical checksum):
38-
let candidates = ['last']
39-
let subject = "mass"
40-
let expected = []
41-
AssertEqual expected, FindAnagrams(candidates, subject)
39+
let g:candidates = ['last']
40+
let g:subject = "mass"
41+
let g:expected = []
42+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
4243

4344
Execute (detects anagrams case-insensitively):
44-
let candidates = ['cashregister', 'Carthorse', 'radishes']
45-
let subject = "Orchestra"
46-
let expected = ['Carthorse']
47-
AssertEqual expected, FindAnagrams(candidates, subject)
45+
let g:candidates = ['cashregister', 'Carthorse', 'radishes']
46+
let g:subject = "Orchestra"
47+
let g:expected = ['Carthorse']
48+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
4849

4950
Execute (detects anagrams using case-insensitive subject):
50-
let candidates = ['cashregister', 'carthorse', 'radishes']
51-
let subject = "Orchestra"
52-
let expected = ['carthorse']
53-
AssertEqual expected, FindAnagrams(candidates, subject)
51+
let g:candidates = ['cashregister', 'carthorse', 'radishes']
52+
let g:subject = "Orchestra"
53+
let g:expected = ['carthorse']
54+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
5455

5556
Execute (detects anagrams using case-insensitive possible matches):
56-
let candidates = ['cashregister', 'Carthorse', 'radishes']
57-
let subject = "orchestra"
58-
let expected = ['Carthorse']
59-
AssertEqual expected, FindAnagrams(candidates, subject)
57+
let g:candidates = ['cashregister', 'Carthorse', 'radishes']
58+
let g:subject = "orchestra"
59+
let g:expected = ['Carthorse']
60+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
61+
62+
Execute (does not detect an anagram if the original word is repeated):
63+
let g:candidates = ['goGoGO']
64+
let g:subject = "go"
65+
let g:expected = []
66+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
6067

6168
Execute (anagrams must use all letters exactly once):
62-
let candidates = ['patter']
63-
let subject = "tapper"
64-
let expected = []
65-
AssertEqual expected, FindAnagrams(candidates, subject)
69+
let g:candidates = ['patter']
70+
let g:subject = "tapper"
71+
let g:expected = []
72+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
6673

6774
Execute (words are not anagrams of themselves):
68-
let candidates = ['BANANA']
69-
let subject = "BANANA"
70-
let expected = []
71-
AssertEqual expected, FindAnagrams(candidates, subject)
75+
let g:candidates = ['BANANA']
76+
let g:subject = "BANANA"
77+
let g:expected = []
78+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
7279

7380
Execute (words are not anagrams of themselves even if letter case is partially different):
74-
let candidates = ['Banana']
75-
let subject = "BANANA"
76-
let expected = []
77-
AssertEqual expected, FindAnagrams(candidates, subject)
81+
let g:candidates = ['Banana']
82+
let g:subject = "BANANA"
83+
let g:expected = []
84+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
7885

7986
Execute (words are not anagrams of themselves even if letter case is completely different):
80-
let candidates = ['banana']
81-
let subject = "BANANA"
82-
let expected = []
83-
AssertEqual expected, FindAnagrams(candidates, subject)
87+
let g:candidates = ['banana']
88+
let g:subject = "BANANA"
89+
let g:expected = []
90+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
8491

8592
Execute (words other than themselves can be anagrams):
86-
let candidates = ['LISTEN', 'Silent']
87-
let subject = "LISTEN"
88-
let expected = ['Silent']
89-
AssertEqual expected, FindAnagrams(candidates, subject)
93+
let g:candidates = ['LISTEN', 'Silent']
94+
let g:subject = "LISTEN"
95+
let g:expected = ['Silent']
96+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
97+
98+
Execute (handles case of greek letters):
99+
let g:candidates = ['ΒΓΑ', 'ΒΓΔ', 'γβα', 'αβγ']
100+
let g:subject = "ΑΒΓ"
101+
let g:expected = ['ΒΓΑ', 'γβα']
102+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)
103+
104+
Execute (different characters may have the same bytes):
105+
let g:candidates = ['€a']
106+
let g:subject = "a⬂"
107+
let g:expected = []
108+
AssertEqual g:expected, FindAnagrams(g:candidates, g:subject)

0 commit comments

Comments
 (0)