Skip to content

Commit 699f2bd

Browse files
committed
add tests for char separately
1 parent a2b1026 commit 699f2bd

File tree

1 file changed

+46
-15
lines changed

1 file changed

+46
-15
lines changed

tests/modified_assignment.apln

Lines changed: 46 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
Ints←#.random.Ints
1414
Chars←#.random.Chars
1515
⎕DIV←1
16-
16+
⎕IO←1
1717

1818
⍝ data
1919
case←⍬
@@ -23,13 +23,6 @@
2323
data_i2←100 Ints 16
2424
data_i4←100 Ints 32
2525

26-
⍝ data_char0←⎕AV ⍝ 82: DyalogAPL classic char set
27-
⍝ :If ~#.utils.isClassic
28-
⍝ data_char1←100 Chars 8 ⍝ 80: 8 bits character
29-
⍝ data_char2←100 Chars 16 ⍝ 160: 16 bits character
30-
⍝ data_char3←100 Cha2rs 32 ⍝ 320: 32 bits character
31-
⍝ ⍝ data_char_ptr←data_char1 data_char2 data_char3⍝ 326: Pointer (32-bit or 64-bit as appropriate)
32-
⍝ :EndIf
3326
⍝ data_ptr←data_i1 data_i2 data_i4 ⍝ 326: Pointer (32-bit or 64-bit as appropriate)
3427
data_dbl←{⍵,-⍵}data_i4+0.1 ⍝ 645: 64 bits Floating
3528
data_cmplx←{⍵,-⍵}(0J1×⍳100)+⌽⍳100 ⍝ 1289: 128 bits Complex
@@ -49,13 +42,11 @@
4942
data_Hfl←{⍵,-⍵}200000000000000000000000000000+(10000000000000000×⍳10)
5043
⎕FR←#.utils.fr_dbl
5144

45+
caselist←⎕NL ¯2
46+
caselist←caselist⌿⍨{'data_'⊃⍤⍷⍵}¨caselist
5247
:For fr :In 1 2
5348
⎕FR←fr⊃#.utils.(fr_dbl fr_decf)
54-
⎕IO←1
5549

56-
⍝ quadparams←⎕CT ⎕DCT ⎕FR ⎕IO ⎕DIV
57-
caselist←⎕NL ¯2
58-
caselist←caselist⌿⍨{'data_'⊃⍤⍷⍵}¨caselist
5950

6051
:For f :In '+' '-' '×' '÷' ','
6152
:For case :In caselist
@@ -77,7 +68,7 @@
7768
b←a←(?≢data)⊃data
7869
c←(?≢data2)⊃data2
7970

80-
⍝ uses model to test modified assignment on all of the functions
71+
⍝ uses model to test modified assignment on all of the functions
8172
r,←('TCross1',f)desc Assert 3⊃(a(⍎f)←c ⋄ b←b(⍎f)model c ⋄ a≡b)
8273
⍝ array w scalar
8374
b←a←data
@@ -87,17 +78,20 @@
8778
data data2←data(#.utils.stripToSameLen)data2
8879
b←a←data
8980
c←data2
90-
r,←('TCross2',f)desc Assert 3⊃(a(⍎f)←c ⋄ b←b(⍎f)model c ⋄ a≡b)
81+
r,←('TCross3',f)desc Assert 3⊃(a(⍎f)←c ⋄ b←b(⍎f)model c ⋄ a≡b)
9182
:EndFor
9283

9384
⍝ array w array of different shape and length - should error
85+
:If f≡','
86+
:Continue
87+
:EndIf
9488
len←(1+?≢data)
9589
a←len↑data
9690
c←(len+2)↑data
9791

9892
flag←0 ⍝ flag
9993
:Trap 5 ⍝ 5: Length error
100-
a+←c
94+
a(⍎f)←c
10195
:Else
10296
flag←1
10397
m←⎕DMX.Message
@@ -106,5 +100,42 @@
106100
:EndFor
107101
:EndFor
108102
:EndFor
103+
104+
⍝ test character data separately as only , is allowed
105+
data_char0←⎕AV ⍝ 82: DyalogAPL classic char set
106+
:If ~#.utils.isClassic
107+
data_char1←100 Chars 8 ⍝ 80: 8 bits character
108+
data_char2←100 Chars 16 ⍝ 160: 16 bits character
109+
data_char3←100 Chars 32 ⍝ 320: 32 bits character
110+
⍝ data_char_ptr←data_char1 data_char2 data_char3⍝ 326: Pointer (32-bit or 64-bit as appropriate)
111+
:EndIf
112+
113+
caselist←⎕NL ¯2
114+
caselist←caselist⌿⍨{'data_char'⊃⍤⍷⍵}¨caselist
115+
:For case :In caselist
116+
data←⍎case
117+
desc←testDesc
118+
b←a←(?≢data)⊃data
119+
c←(?≢data2)⊃data2
120+
121+
⍝ scalars
122+
r,←('TCharCross1',f)desc Assert 3⊃(a,←c ⋄ b←b,model c ⋄ a≡b)
123+
124+
⍝ array w scalar
125+
b←a←data
126+
r,←('TCharCross2',f)desc Assert 3⊃(a,←c ⋄ b←b,model c ⋄ a≡b)
127+
128+
⍝ array w array of same length
129+
data data2←data(#.utils.stripToSameLen)data2
130+
b←a←data
131+
c←data2
132+
r,←('TCharCross3',f)desc Assert 3⊃(a,←c ⋄ b←b,model c ⋄ a≡b)
133+
134+
⍝ array w array of different shape and length - should error
135+
len←(1+?≢data)
136+
b←a←len↑data
137+
c←(len+2)↑data
138+
r,←('TCharCross4',f)desc Assert 3⊃(a,←c ⋄ b←b,model c ⋄ a≡b)
139+
:EndFor
109140
110141
:EndNamespace

0 commit comments

Comments
 (0)