Skip to content

Commit c3ba209

Browse files
committed
#22 Refactor tests
1 parent 0e78f95 commit c3ba209

File tree

2 files changed

+58
-87
lines changed

2 files changed

+58
-87
lines changed

test/cls/DeclarativeCOS.BinderTests.cls

Lines changed: 57 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -15,42 +15,6 @@ ClassMethod toGlobal(word As %String)
1515
elseif ('$data(@global@("word3"))) { set @global@("word3") = word }
1616
}
1717

18-
/// @Declarative("test.map:nameNumber")
19-
ClassMethod nameNumber(value As %Numeric) As %String
20-
{
21-
return $select(value=1:"one", value=2:"two", value=3:"three", 1:"")
22-
}
23-
24-
/// @Declarative("test.find:isEven")
25-
ClassMethod isEven(value As %Numeric)
26-
{
27-
return value # 2 = 0
28-
}
29-
30-
/// @Declarative("test.filter:isOdd")
31-
ClassMethod isOdd(value As %Numeric)
32-
{
33-
return '..isEven(value)
34-
}
35-
36-
/// @Declarative("test.exists:isNameMaks")
37-
ClassMethod isNameMaks(value As %String)
38-
{
39-
return value = "Maks"
40-
}
41-
42-
/// @Declarative("test.exists:isNamePeter")
43-
ClassMethod isNamePeter(value As %String)
44-
{
45-
return value = "Peter"
46-
}
47-
48-
/// @Declarative("test.count:greateOrEqualThan2000")
49-
ClassMethod greateOrEqualThan2000(value As %Numeric)
50-
{
51-
return (value >= 2000)
52-
}
53-
5418
Method TestForEach()
5519
{
5620
set global = $name(@..#TESTGLOBALNAME@("forEach"))
@@ -75,96 +39,103 @@ Method TestForEach()
7539

7640
Method TestMap()
7741
{
78-
set (number1, number2, number3) = $lb(1, 2, 3)
79-
8042
set numbers = ##class(%ListOfDataTypes).%New()
81-
do numbers.Insert(number1)
82-
do numbers.Insert(number2)
83-
do numbers.Insert(number3)
8443

85-
set namedNumbers = $zmap(numbers, "test.map:nameNumber")
44+
for i=1:1:10 { do numbers.Insert($random(1000)) }
8645

87-
do $$$AssertEquals(numbers.Count(), namedNumbers.Count(), "Numbers collections must have the same count of items")
46+
set hexNumbers = $zmap(numbers, "examples:toHex")
8847

89-
do $$$AssertEquals(numbers.%ClassName(), namedNumbers.%ClassName(), "Numbers collections must have the same class name")
48+
for i=1:1:numbers.Count() { do numbers.SetAt($zhex(numbers.GetAt(i)), i) }
9049

91-
do $$$AssertEquals(..nameNumber(number1), namedNumbers.GetAt(number1), "1 == one")
92-
do $$$AssertEquals(..nameNumber(number2), namedNumbers.GetAt(number2), "2 == two")
93-
do $$$AssertEquals(..nameNumber(number3), namedNumbers.GetAt(number3), "3 == three")
50+
do $$$AssertEquals($zjoin(numbers, ","), $zjoin(hexNumbers, ","), "$zmap works!")
9451
}
9552

9653
Method TestFind()
9754
{
98-
set (number1, number2, number3) = $lb(1, 2, 3)
99-
10055
set numbers = ##class(%ListOfDataTypes).%New()
101-
do numbers.Insert(number1)
102-
do numbers.Insert(number2)
103-
do numbers.Insert(number3)
10456

105-
set evenNumber = $zfind(numbers, "test.find:isEven")
57+
for i=1:1:10 { do numbers.Insert($random(1000)) }
10658

107-
do $$$AssertEquals(number2, evenNumber, "2 is even")
59+
set expectedPrimeNumber = ""
10860

109-
do numbers.RemoveAt(number2)
61+
for i=1:1:numbers.Count() {
62+
set number = numbers.GetAt(i)
11063

111-
do $$$AssertNotTrue($zfind(numbers, "test.find:isEven"), "Numbers collection has no even numbers now")
64+
if (##class(DeclarativeCOS.Examples).isPrime(number)) {
65+
set expectedPrimeNumber = number
66+
}
67+
68+
quit:expectedPrimeNumber'=""
69+
}
70+
71+
set actualPrimeNumber = $zfind(numbers, "examples:isPrime")
72+
73+
do $$$AssertEquals(expectedPrimeNumber, actualPrimeNumber, "$zfind works!")
11274
}
11375

11476
Method TestFilter()
11577
{
116-
set $lb(number1, number2, number3) = $lb(1, 2, 3)
117-
11878
set numbers = ##class(%ListOfDataTypes).%New()
119-
do numbers.Insert(number1)
120-
do numbers.Insert(number2)
121-
do numbers.Insert(number3)
12279

123-
set oddNumbers = $zfilter(numbers, "test.filter:isOdd")
80+
for i=1:1:10 { do numbers.Insert($random(1000)) }
12481

125-
do $$$AssertEquals(numbers.Count() - 1, oddNumbers.Count(), "Numbers collections contains only one even number")
82+
set expectedFilteredNumbers = ##class(%ListOfDataTypes).%New()
12683

127-
do $$$AssertEquals(numbers.%ClassName(), oddNumbers.%ClassName(), "Numbers collections must have the same class name")
84+
for i=1:1:numbers.Count() {
85+
set number = numbers.GetAt(i)
12886

129-
do $$$AssertEquals(number1, oddNumbers.GetAt(1), "1 is odd")
130-
do $$$AssertEquals(number3, oddNumbers.GetAt(2), "3 is odd")
87+
if (##class(DeclarativeCOS.Examples).isOdd(number)) {
88+
do expectedFilteredNumbers.Insert(number)
89+
}
90+
}
91+
92+
set actualFilteredNumbers = $zfilter(numbers, "examples:isOdd")
93+
94+
do $$$AssertEquals($zjoin(expectedFilteredNumbers, ","), $zjoin(actualFilteredNumbers, ","), "$zfilter works!")
13195
}
13296

13397
Method TestExists()
13498
{
135-
set $lb(nameMaks, nameJohn, nameDonny) = $lb("Maks", "John", "Donny")
99+
set numbers = ##class(%ListOfDataTypes).%New()
100+
101+
for i=1:1:10 { do numbers.Insert($random(1000)) }
136102

137-
set names = ##class(%ListOfDataTypes).%New()
138-
do names.Insert(nameMaks)
139-
do names.Insert(nameJohn)
140-
do names.Insert(nameDonny)
103+
set expectedHasEvenNumber = $$$NO
141104

142-
set isNameMaksExist = $zexists(names, "test.exists:isNameMaks")
105+
for i=1:1:numbers.Count() {
106+
set number = numbers.GetAt(i)
143107

144-
do $$$AssertTrue(isNameMaksExist, """Maks"" exists in names collection")
108+
if (##class(DeclarativeCOS.Examples).isEven(number)) {
109+
set expectedHasEvenNumber = $$$YES
110+
}
145111

146-
set isNamePeterExist = $zexists(names, "test.exists:isNamePeter")
112+
quit:expectedHasEvenNumber'=""
113+
}
147114

148-
do $$$AssertNotTrue(isNamePeterExist, """Peter"" doesn't exists in names collection")
115+
set actualHasEvenNumber = $zexists(numbers, "examples:isEven")
116+
117+
do $$$AssertEquals(expectedHasEvenNumber, actualHasEvenNumber, "$zexists works!")
149118
}
150119

151120
Method TestCount()
152121
{
153-
set $lb(year1998, year1999, year2000, year2001) = $lb(1998, 1999, 2000, 2001)
122+
set numbers = ##class(%ListOfDataTypes).%New()
123+
124+
for i=1:1:10 { do numbers.Insert($random(1000)) }
125+
126+
set expectedPalindromicNumbersCount = 0
154127

155-
set years = ##class(%ListOfDataTypes).%New()
156-
do years.Insert(year1998)
157-
do years.Insert(year1999)
158-
do years.Insert(year2000)
159-
do years.Insert(year2001)
128+
for i=1:1:numbers.Count() {
129+
set number = numbers.GetAt(i)
160130

161-
set expectedFilteredYears = ##class(%ListOfDataTypes).%New()
162-
do expectedFilteredYears.Insert(year2000)
163-
do expectedFilteredYears.Insert(year2001)
131+
if (##class(DeclarativeCOS.Examples).isPalindromic(number)) {
132+
set expectedPalindromicNumbersCount = $increment(expectedPalindromicNumbersCount)
133+
}
134+
}
164135

165-
set filteredYearsCount = $zcount(years, "test.count:greateOrEqualThan2000")
136+
set actualPalindromicNumbersCount = $zcount(numbers, "examples:isPalindromic")
166137

167-
do $$$AssertEquals(expectedFilteredYears.Count(), filteredYearsCount, "Only two years should be filtered")
138+
do $$$AssertEquals(expectedPalindromicNumbersCount, actualPalindromicNumbersCount, "$zcount works!")
168139
}
169140

170141
}

test/cls/DeclarativeCOS.JoinerTests.cls

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Method TestJoin()
88
do words.Insert("is")
99
do words.Insert("awesome!")
1010

11-
do $$$AssertEquals("DeclarativeCOS is awesome!", $zjoin(words, " "), "$zjoin must concatenate collection using separator")
11+
do $$$AssertEquals("DeclarativeCOS is awesome!", $zjoin(words, " "), "$zjoin works!")
1212
}
1313

1414
}

0 commit comments

Comments
 (0)