summaryrefslogtreecommitdiff
path: root/test/cases/under.bqn
blob: e3b8fff164b930707a96b040cf2cf5f2e235dae3 (plain)
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
%DEF var V•internal.Variation  LV•internal.ListVariations  CLR•internal.ClearRefs
%DEF tvar %USE var  _tvar  {F _𝕣 x: (CLR@)  {F 𝕩 V x}¨ LV 𝕩; w F _𝕣 x: (CLR@)  (LV 𝕨) {(𝕨 V w) F 𝕩 V x} LV 𝕩}
%DEF evar %USE tvar  _evar  {ok{}  r𝕨 ok𝔽{𝕊: •CurrentError@} _tvar 𝕩  {okr? !"TEST FAIL: variation didn't error"; ("TEST FAIL: varying error messages" ! 1=≠)r  !⊑r}}
# ¨ & ˘
# !% ⊢⌾(⊢¨) 4 # TODO enable
# !% ⊢⌾(⊢˘) 4 # TODO enable

# ⊏ & ⊑
!"𝔽⌾(a⊸⊑): Incompatible result elements" % 1020(12,12) 45⥊↕9
!"𝔽⌾(a⊸⊏): Incompatible result elements" % 1020(33) 10
!"𝔽⌾(a⊸⊏)𝕩: 𝔽 must return an array with the same shape as its input (expected ⟨2⟩, got ⟨3⟩)" % 102030(23) 10
!"𝔽⌾(a⊸⊏)𝕩: 𝔽 must return an array with the same shape as its input (expected ⟨2⟩, got ⟨3⟩)" % 1(23) 10
!"𝔽⌾(a⊸⊑)𝕩: 𝔽 must return an array with the same shape as its input (expected ⟨2⟩, got ⟨3⟩)" % 102030(12,21) 44⥊↕16
!"𝔽⌾(a⊸⊑)𝕩: 𝔽 must return an array with the same shape as its input (expected ⟨2⟩, got ⟨3⟩)" % 1(12,21) 44⥊↕16


# ⊑
!"𝔽⌾(n⊸⊑)𝕩: reading out-of-bounds (n≡¯10, 3≡≠𝕩)" % 1+(¯10) 3
!"⊑: 𝕨 contained list with mixed-type elements" % 'a'(1'a') 45⥊↕9
!"⊑: Indexing out-of-bounds (index 1‿5 in array of shape 4‿5)" % 'a'(15) 45⥊↕9
10,2030(12,⟨13,21⟩⟩) 45⥊↕9 %% 4501234561020013034567801
!"⊑: Picking item at wrong rank (index 1‿1‿1 in array of shape 10‿10)" % 1¨(111) 10101
!"⊑: Picking item at wrong rank (index ⟨1⟩ in array of shape 10‿10)" % 1¨(1) 10101
a101010⥊↕1000  ! a  a((↕≢a)) a
{𝕊: a(1+•rand.Range 200)•rand.Range 2  i•rand.Range≠a  ! a  (ia)(i) 2(i) a}¨10000
100+(5) ⥊↕44 %% (100×5=↕16) + ⥊↕44
100+(¯5) ⥊↕44 %% (100×11=↕16) + ⥊↕44
100+ ⥊↕44 %% (100×161) + ⥊↕44
1+(¯2) ⥊↕4 %% 0133
1+(¯2) 0.5+↕4 %% 0.51.53.53.5
# !% ⊢⌾⊑ 4 # TODO enable
# !% ⊢⌾(⊑⊑) 4 # TODO enable

# ⊏
n500  an  i(-n)+↕2×n  r(2×n)a  ! (a)  r(i) a
!"𝔽⌾(a⊸⊏)𝕩: Indexing out-of-bounds (¯11∊a, ⟨10⟩≡≢𝕩)" % %USE evar  5¯11 {01(𝕨)𝕩}_evar 10101
!"𝔽⌾(a⊸⊏)𝕩: Indexing out-of-bounds (10∊a, ⟨10⟩≡≢𝕩)"  % %USE evar  910  {01(𝕨)𝕩}_evar 10101
!"𝔽⌾(a⊸⊏)𝕩: Indexing out-of-bounds (10∊a, ⟨10⟩≡≢𝕩)"  % %USE evar  "ab" {𝕨(910)𝕩}_evar 10"foo"
100+(124) <¨10 %% <¨ 0101102310456789
100+(124) <¨10   %% <¨ 0101102310456789
100+(124) 10     %%    0101102310456789
100+¨(124) 10    %%    0101102310456789
100+(12¯4) <¨10  %% <¨ 0101102345106789
100+(12¯4) 10    %%    0101102345106789
10+(12) 0a4, a %% 011123,0123
%USE tvar  !¨ 0011 {𝕨(1245) 𝕩} _tvar 101010110 %% 100011110
!"𝔽⌾(a⊸⊏): Incompatible result elements" % 34(11) 10
!"𝔽⌾(a⊸⊏): Incompatible result elements" % 34(1¯9) 10
!"𝔽⌾(a⊸⊏): Incompatible result elements" % %USE evar  34  {𝕨(1¯9) 𝕩}_evar 10
!"𝔽⌾(a⊸⊏): Incompatible result elements" % %USE evar  "ab" {𝕨(1¯9) 𝕩}_evar 'a'+↕10
!"𝔽⌾(a⊸⊏): Incompatible result elements" % 345(112) 10
!"𝔽⌾(a⊸⊏): Incompatible result elements" % 345(112) <¨10
!"𝔽⌾(a⊸⊏): Incompatible result elements" % 345(112) a<¨10  •internal.Keep a
!"𝔽⌾(a⊸⊏): Incompatible result elements" % 34(("Ah"•internal.Variation 11)) <¨10
2020(11) 10 %% 0202+↕8
100+(12¯1) 5 %% 01011023104
100+(12¯1) <¨5 %% <¨ 01011023104
1+(((100⥊↕10)10/↕10)) 10 %% 1+↕10


# ⥊
!"𝔽⌾⥊: 𝔽 must return an array with the same shape as its input (16 ≡ ≢⥊𝕩, ⟨17⟩ ≡ shape of result of 𝔽)" % 1 44⥊↕16
1+ 5      %% (<6)
1+ <5     %% (<6)
1+ 5     %% (6)
1+ 2     %% 12
1+ 23⥊↕6 %% (1+23⥊↕6)
 23⥊↕6   %% (23⥊⌽↕6)
!"𝔽⌾⥊: 𝔽 must return an array with the same shape as its input (1 ≡ ≢⥊𝕩, ⟨2⟩ ≡ shape of result of 𝔽)" % 1 4
!"𝔽⌾⥊: 𝔽 must return an array with the same shape as its input (1 ≡ ≢⥊𝕩, ⟨2⟩ ≡ shape of result of 𝔽)" % 1 <4
!"𝔽⌾⥊: 𝔽 must return an array with the same shape as its input (1 ≡ ≢⥊𝕩, ⟨2⟩ ≡ shape of result of 𝔽)" % 1 4
!"𝔽⌾⥊: 𝔽 must return an array with the same shape as its input (2 ≡ ≢⥊𝕩, ⟨3⟩ ≡ shape of result of 𝔽)" % 1 12
!"𝔽⌾⥊: 𝔽 must return an array with the same shape as its input (6 ≡ ≢⥊𝕩, ⟨7⟩ ≡ shape of result of 𝔽)" % 1 23⥊↕6
!"𝔽⌾⥊: 𝔽 must return an array with the same shape as its input (1 ≡ ≢⥊𝕩, ⟨⟩ ≡ shape of result of 𝔽)" %  4
!"𝔽⌾⥊: 𝔽 must return an array with the same shape as its input (1 ≡ ≢⥊𝕩, ⟨⟩ ≡ shape of result of 𝔽)" %  <4
!"𝔽⌾⥊: 𝔽 must return an array with the same shape as its input (1 ≡ ≢⥊𝕩, ⟨⟩ ≡ shape of result of 𝔽)" %  4
!"𝔽⌾⥊: 𝔽 must return an array with the same shape as its input (2 ≡ ≢⥊𝕩, 2‿1 ≡ shape of result of 𝔽)" % 21 12
# !% ⊢⌾⥊ 4 # TODO enable
# !% ⊢⌾(3⥊⊢) 4 # TODO enable


# /
!"/: Lengths of components of 𝕨 must match 𝕩 (3 ≠ 10)" % 1(101/) 10
10+(1,01/)22 %% 2200,1011,10,1111
!"𝔽⌾(a⊸/): Incompatible result elements" % 12(20/)2
1+((10)/) 10 %% ×+ 10

# ↓ & ↑
!"𝔽⌾(n⊸↑)𝕩: 𝔽 must return an array with the same shape as its input (2 ≡ n, ⟨1⟩ ≡ shape of result of 𝔽)" % 1(2) 4
!"𝔽⌾(n⊸↓)𝕩: 𝔽 must return an array with the same shape as its input (2 ≡ n, ⟨1⟩ ≡ shape of result of 𝔽)" % 1(2) 4
!"𝔽⌾(n⊸↑)𝕩: 𝔽 must return an array with the same shape as its input (¯2 ≡ n, ⟨3⟩ ≡ shape of result of 𝔽)" % 1(¯2) 4
!"𝔽⌾(n⊸↓)𝕩: 𝔽 must return an array with the same shape as its input (¯2 ≡ n, ⟨3⟩ ≡ shape of result of 𝔽)" % 1(¯2) 4
!"𝔽⌾(n⊸↓)𝕩: 𝔽 must return an array with the same shape as its input (5 ≡ n, ⟨1⟩ ≡ shape of result of 𝔽)" % 1(5) 4
!"𝔽⌾(n⊸↓)𝕩: 𝔽 must return an array with the same shape as its input (1 ≡ n, 4‿5‿2 ≡ shape of result of 𝔽)" % (1) 345⥊↕60
!"𝔽⌾(n⊸↑)𝕩: 𝔽 must return an array with the same shape as its input (¯2 ≡ n, 4‿5‿2 ≡ shape of result of 𝔽)" % (¯2) 345⥊↕60
!"𝔽⌾(n⊸↑)𝕩: Cannot modify fill with Under (5 ≡ n, ⟨4⟩ ≡ ≢𝕩)" % (5) 4
⟨⟩(4) 4 %% 4
⟨⟩(5) 4 %% 4
•internal.Keep(¯5) 4 %% 4
{!(a×1+9× 012𝕩+↕3)  10×(𝕩) a345⥊↕60}¨ ¯5+↕10
{!(a×1+9׬012𝕩+↕3)  10×(𝕩) a345⥊↕60}¨ ¯3+↕7