some more tests of NaN⌾(a⊸/) & NaN⌾(a⊸⊏)
This commit is contained in:
parent
a37166975c
commit
28f5896350
@ -1,6 +1,6 @@
|
|||||||
%DEF var V←•internal.Variation ⋄ LV←•internal.ListVariations ⋄ CLR←•internal.ClearRefs
|
%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 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 𝕩 ⋄ !∘•internal.EEqual⟜(⊑r)¨ r ⋄ ⊑r}
|
||||||
%DEF evar %USE tvar ⋄ _evar ← {ok←{⇐} ⋄ r←⥊𝕨 ok∘𝔽⎊{𝕊: •CurrentError@} _tvar 𝕩 ⋄ {⊑ok∊r? !"TEST FAIL: variation didn't error"; ("TEST FAIL: varying error messages"⊸⋈ ! 1=≠)⍷r ⋄ !⊑r}}
|
%DEF evar %USE tvar ⋄ _evar ← {ok←{⇐} ⋄ r←⥊𝕨 ok∘𝔽⎊{𝕊: •CurrentError@} _tvar 𝕩 ⋄ {⊑ok∊r? !"TEST FAIL: variation didn't error"; ("TEST FAIL: varying error messages"⊸⋈ ! 1=≠)⍷r ⋄ !⊑r}}
|
||||||
%DEF eqerr %USE eqvar ⋄ _eqerr ← {ok←{⇐} ⋄ r←⥊𝕨 ok∘𝔽⎊{𝕊: •CurrentError@}⌜ 𝕩 ⋄ {⊑ok∊r? !"TEST FAIL: case didn't error"; ("TEST FAIL: varying error messages"⊸⋈ ! 1=≠)⍷r ⋄ !⊑r}}
|
%DEF eqerr %USE eqvar ⋄ _eqerr ← {ok←{⇐} ⋄ r←⥊𝕨 ok∘𝔽⎊{𝕊: •CurrentError@}⌜ 𝕩 ⋄ {⊑ok∊r? !"TEST FAIL: case didn't error"; ("TEST FAIL: varying error messages"⊸⋈ ! 1=≠)⍷r ⋄ !⊑r}}
|
||||||
# ¨ & ˘
|
# ¨ & ˘
|
||||||
@ -208,3 +208,53 @@ n←500 ⋄ a←↕n ⋄ i←(-n)+↕2×n ⋄ r←⌽(2×n)⥊a ⋄ ! (⌽a) ≡
|
|||||||
!"𝕨⌽⁼𝕩: 𝕩 must have rank at least 1" % 1⌾(2⊸⌽) ↕10
|
!"𝕨⌽⁼𝕩: 𝕩 must have rank at least 1" % 1⌾(2⊸⌽) ↕10
|
||||||
⊏⌾(2⊸⌽) 10‿10⥊↕100 %% 28‿29‿20‿21‿22‿23‿24‿25‿26‿27
|
⊏⌾(2⊸⌽) 10‿10⥊↕100 %% 28‿29‿20‿21‿22‿23‿24‿25‿26‿27
|
||||||
≍⌾(1‿2⊸⌽) 5‿5⥊↕25 %% 1‿5‿5⥊22‿23‿24‿20‿21‿2‿3‿4‿0‿1‿7‿8‿9‿5‿6‿12‿13‿14‿10‿11‿17‿18‿19‿15‿16
|
≍⌾(1‿2⊸⌽) 5‿5⥊↕25 %% 1‿5‿5⥊22‿23‿24‿20‿21‿2‿3‿4‿0‿1‿7‿8‿9‿5‿6‿12‿13‿14‿10‿11‿17‿18‿19‿15‿16
|
||||||
|
|
||||||
|
# NaN things
|
||||||
|
(
|
||||||
|
%USE eqvar
|
||||||
|
_test ← { set Repl _𝕣 exp:
|
||||||
|
# •Show ⟨"test", set, Repl, exp⟩
|
||||||
|
bad ⇐ {⇐}
|
||||||
|
_mod ← {exp? 𝔽; {"Expected error!"!bad≢𝕩⋄𝕩}∘(bad∘𝔽⎊{𝕊: •CurrentError@})}
|
||||||
|
|
||||||
|
HasMsg ← {⟨"mismatched result/error message", exp, 𝕨, 𝕩⟩ ! (¬exp) ≡ 𝕨≡𝕩}
|
||||||
|
|
||||||
|
exp {
|
||||||
|
@𝕊·: @;
|
||||||
|
𝕨𝕊0:
|
||||||
|
(1‿0‿1‿1∾6⥊0) {Repl⌾(𝕨⊸/) 𝕩}_eqvar 10⥊0‿1
|
||||||
|
"𝔽⌾(a⊸/): Incompatible result elements" HasMsg (1‿0‿2∾7⥊0) {Repl⌾(𝕨⊸/) 𝕩} _mod _eqvar 10⥊0‿1
|
||||||
|
|
||||||
|
1‿2‿5 {Repl⌾(𝕨⊸⊏) 𝕩}_eqvar 10⥊0‿1
|
||||||
|
"𝔽⌾(a⊸⊏): Incompatible result elements" HasMsg 1‿4‿4 {Repl⌾(𝕨⊸⊏) 𝕩} _mod _eqvar 10⥊0‿1
|
||||||
|
;
|
||||||
|
𝕨𝕊1:
|
||||||
|
"⌾: Incompatible result elements in structural Under" HasMsg 1‿2‿2 {Repl⌾⊑⌾(𝕨⊸⊏¨) ⋈𝕩} _mod 0‿1‿0
|
||||||
|
} set
|
||||||
|
}
|
||||||
|
Batch ← { expNative‿expRuntime‿Get:
|
||||||
|
val ← Get@
|
||||||
|
{ 𝕊 rt:
|
||||||
|
# •Show ⟨"batch", get, val, rt⟩
|
||||||
|
expNew‿expSame ← {rt? expRuntime; expNative}
|
||||||
|
rt (Get¨ ) _test expNew
|
||||||
|
rt (Get¨ ↕3) _test expNew
|
||||||
|
rt {𝕊: 3⥊<val} _test expSame
|
||||||
|
rt ( 3⥊<val) _test expSame
|
||||||
|
rt (val˙¨ ) _test expSame
|
||||||
|
}¨ 0‿1
|
||||||
|
}
|
||||||
|
ShouldNotBeCalled ← { 𝕊:
|
||||||
|
! •Show "I should not be called!"
|
||||||
|
}
|
||||||
|
Batch¨ ⟨
|
||||||
|
⟨0‿0, 0‿0, 0÷0⟩
|
||||||
|
⟨0‿0, 0‿0, <0÷0⟩
|
||||||
|
⟨0‿0, 0‿0, ⟨3,0÷0,4⟩⟩
|
||||||
|
⟨1‿1, @‿@, {𝕊: ShouldNotBeCalled}⟩
|
||||||
|
⟨1‿1, @‿@, ShouldNotBeCalled˙⟩
|
||||||
|
⟨0‿1, @‿@, {𝕊: ShouldNotBeCalled⟜(0÷0)}⟩
|
||||||
|
⟨1‿1, @‿@, ShouldNotBeCalled⟜(0÷0)˙⟩
|
||||||
|
⟨1‿1, 1‿1, ∞⟩
|
||||||
|
⟩
|
||||||
|
)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user