refactor variation testing in test/cases/prims.bqn

This commit is contained in:
dzaima 2023-12-27 19:57:37 +02:00
parent b27618b5fa
commit 629a7602b3

View File

@ -1,6 +1,7 @@
%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 eqvar %USE tvar _eqvar {r 𝕨 𝔽 _tvar 𝕩 r !¨ r r}
%DEF eqvar %USE tvar _eqvar {r 𝕨 𝔽 _tvar 𝕩 !(r)¨ r r}
%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}}
%DEF k _k {𝔽•internal.Keep}
# batch checks
@ -68,7 +69,7 @@
!"/: Lengths of components of 𝕨 must match 𝕩 (3 ≠ 4)" % 123/4567
!"Expected non-negative integer, got ¯1000" % (4/1000¯1000) / 81
!"Expected non-negative integer, got ¯1000" % (4/1000¯1000) / 81
%USE tvar 24e19 0/(•CurrentError@) _tvar 2 %% "Integer out of range: 4e19"
!"Integer out of range: 4e19" % %USE evar 24e19 /_evar 2
!"𝕨/𝕩: Length of compound 𝕨 must be at most rank of 𝕩" % 1/3
!"𝕨/𝕩: Length of compound 𝕨 must be at most rank of 𝕩" % 1/<"ab"
@ -92,9 +93,9 @@
!"Expected non-negative integer, got ¯1000" % / 4/1000¯1000
!"/: Argument must have rank 1 (3‿3 ≡ ≢𝕩)" % /33
!"/: Argument must have rank 1 (⟨⟩ ≡ ≢𝕩)" % /0
%USE tvar 0/•CurrentError _tvar ¯1(100) 20010 %% "Expected non-negative integer, got ¯1"
%USE tvar 0/•CurrentError _tvar 1e2262 %% "Sum too big"
%USE tvar 0/•CurrentError _tvar 1e20(100) 20010 %% "Integer out of range: 1e20"
!"Expected non-negative integer, got ¯1" % %USE evar /_evar ¯1(100) 20010
!"Sum too big" % %USE evar /_evar 1e2262
!"Integer out of range: 1e20" % %USE evar /_evar 1e20(100) 20010
! (//)81525329010115516558459489491213121328135013671391140714691486155915661576158215921599160916161626163540864093411441224141414941694177
# 𝕨⊏𝕩
@ -114,13 +115,13 @@
!"⊏: Indexing out-of-bounds (2∊𝕨, 2≡≠𝕩)" % (1+9=10)12,3
%USE tvar !¨ {𝕨 (•CurrentError) _tvar 𝕩}´¨ 01, 0 01, "?" 01, 01
a2 ! "e" (10){baaaaaaaaaa 𝕨"e"𝕩}12,34 ! 01 a
%USE tvar {!¨ 1¯1 {t•internal.ElType 𝕩 r𝕨𝕩 t•internal.ElType r r}_tvar 𝕩}¨ 2, 4, "hello", "ab", "cd", "ef", 4
%USE eqvar {1¯1 {r𝕨𝕩 ! 𝕩 •internal.ElType r r}_eqvar 𝕩}¨ 2, 4, "hello", "ab", "cd", "ef", 4
# 𝕨⊑𝕩
!"⊑: 𝕨 contained a non-integer" % 0.13
!"⊑: 𝕨 contained a non-integer" % 2803
%USE tvar !¨ 'e'= (12) {𝕨𝕩}'e'_tvar 55
%USE tvar !¨ 12¨ (12) _tvar 55
!"⊑: Leaf arrays in 𝕨 must have rank 1 (element: (1‿2⥊1‿2))" % %USE evar (12) {𝕨𝕩}_evar 55
%USE eqvar 12 _eqvar 55 %% 12
# comparison
w111 x121 {! (•Repr𝕩,": Expected equal shape prefix (1‿1 ≡ ≢𝕨, 1‿2 ≡ ≢𝕩)") w 𝕏(•CurrentError@) x}¨ =<>
@ -204,7 +205,7 @@ w←1‿1⥊1 ⋄ x←2⥊1 ⋄ w‿x <¨↩ ⋄ {! (∾⟨•Repr𝕩,": Expe
# ≍𝕩
!"≍: Result rank too large (255≡=𝕩)" % 256 1
%USE tvar 1234564 {c𝕊e: {!¨ _tvar´ 𝕩}¨ 4c, c ({𝕩<e}¨) 0c, 1c, c} 1, 'a', 12
%USE eqvar 1234564 {c𝕊e: _eqvar´¨ 4c, c ({𝕩<e}¨) 0c, 1c, c} 1, 'a', 12
# « & »
!"shift: Lengths not matchable (⟨2⟩ ≡ ≢𝕨, 3‿3 ≡ ≢𝕩)" % 12»33
@ -317,9 +318,9 @@ w←1‿1⥊1 ⋄ x←2⥊1 ⋄ w‿x <¨↩ ⋄ {! (∾⟨•Repr𝕩,": Expe
# ⍟
%USE tvar a¯5+10 !¨ (¨ 5+10)¨ {1+𝕩 10}_tvar a
%USE tvar a¯5+10 !¨ (¨ 5+10)¨ {1+𝕩 10}_tvar a
%USE tvar a¯5+10 !¨ (¨ 5+10)¨ {1+(𝕩{!𝕩10 𝕗}) 10}_tvar a
%USE eqvar a¯5+10 {1+𝕩 10}_eqvar a %% ¨ 5+10
%USE eqvar a¯5+10 {1+𝕩 10}_eqvar a %% ¨ 5+10
%USE eqvar a¯5+10 {1+(𝕩{!𝕩10 𝕗}) 10}_eqvar a %% ¨ 5+10
# ◶
!"◶: 𝕘 must have rank 1 when index is a number" % 1[12,34] 3