avoid needing to mutate LV for eqvar tests
This commit is contained in:
parent
368fe11155
commit
e2c12d0ade
@ -1,6 +1,6 @@
|
||||
%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 LV←•internal.ListVariations ⋄ ⟨_eqvar0_⟩←⊑•args ⋄ _eqvar ← {𝔽 _eqvar0_ LV}
|
||||
%DEF eqvar ⟨_eqvar⟩←⊑•args
|
||||
%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)!0}}
|
||||
%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)!0}}
|
||||
%DEF k _k ← {𝔽○•internal.Keep}
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
%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 LV←•internal.ListVariations ⋄ ⟨_eqvar0_⟩←⊑•args ⋄ _eqvar ← {𝔽 _eqvar0_ LV}
|
||||
%DEF eqvar ⟨_eqvar⟩←⊑•args
|
||||
%DEF eqvarv ⟨_eqvarv_⟩←⊑•args
|
||||
|
||||
(
|
||||
%USE eqvar
|
||||
LV ↩ ""⊸LV
|
||||
%USE eqvarv
|
||||
Test ← { 𝕊:
|
||||
x ← (2•rand.Range 50)•rand.Range 100
|
||||
w ← {0: ↕0; (1+•rand.Range 50) •rand.Range 𝕩} 1⊑≢x
|
||||
w {𝕨⊸⊏˘ 𝕩}_eqvar x
|
||||
w {𝕨⊸⊏˘ 𝕩}_eqvarv_"" x
|
||||
}
|
||||
|
||||
Test¨ ↕1000
|
||||
|
||||
@ -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 LV←•internal.ListVariations ⋄ ⟨_eqvar0_⟩←⊑•args ⋄ _eqvar ← {𝔽 _eqvar0_ LV}
|
||||
%DEF eqvar ⟨_eqvar⟩←⊑•args
|
||||
%DEF eqvarv ⟨_eqvarv_⟩←⊑•args
|
||||
%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)!0}}
|
||||
%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)!0}}
|
||||
%DEF k _k ← {𝔽○•internal.Keep}
|
||||
|
||||
@ -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 LV←•internal.ListVariations ⋄ ⟨_eqvar0_⟩←⊑•args ⋄ _eqvar ← {𝔽 _eqvar0_ LV}
|
||||
%DEF eqvar ⟨_eqvar⟩←⊑•args
|
||||
%DEF eqvarv ⟨_eqvarv_⟩←⊑•args
|
||||
# not tested here: •Out •Show •Exit •GetLine •Cmp •CurrentError •FFI •internal.HeapDump
|
||||
|
||||
|
||||
@ -387,10 +388,10 @@ Str ← {!=𝕩 ⋄ !×≠𝕩 ⋄ ! ∧´2=•Type¨𝕩} ⋄ Str •platform.o
|
||||
! 0‿1‿2‿3‿4‿5‿6‿7‿8‿8‿1‿2‿3‿4‿5‿6‿7‿8‿8 ≡ {•internal.ElType 𝕩 •internal.Variation ⟨⟩}¨ var
|
||||
# TODO test •internal.ListVariations
|
||||
)
|
||||
%USE eqvar ⋄ LV↩"i"⊸LV ⋄ •internal.ListVariations _eqvar π×↕10 %% ⟨"Af64","Sf64","Af64Inc","Sf64Inc","Ah","Sh","AhInc","ShInc","Af","Sf","AfInc","SfInc"⟩
|
||||
%USE eqvar ⋄ LV↩"i"⊸LV ⋄ •internal.ListVariations _eqvar (π×↕10)∾{⇐} %% ⟨"Ah","Sh","AhInc","ShInc","Af","Sf","AfInc","SfInc"⟩
|
||||
%USE eqvar ⋄ LV↩"i"⊸LV ⋄ •internal.ListVariations _eqvar ↕1000 %% ⟨"Ai16","Si16","Ai16Inc","Si16Inc","Ai32","Si32","Ai32Inc","Si32Inc","Af64","Sf64","Af64Inc","Sf64Inc","Ah","Sh","AhInc","ShInc","Af","Sf","AfInc","SfInc"⟩
|
||||
%USE eqvar ⋄ LV↩"i"⊸LV ⋄ •internal.ListVariations _eqvar 100⥊1‿0 %% ⟨"Ab","AbInc","Ai8","Si8","Ai8Inc","Si8Inc","Ai16","Si16","Ai16Inc","Si16Inc","Ai32","Si32","Ai32Inc","Si32Inc","Af64","Sf64","Af64Inc","Sf64Inc","Ah","Sh","AhInc","ShInc","Af","Sf","AfInc","SfInc"⟩
|
||||
%USE eqvarv ⋄ •internal.ListVariations _eqvarv_"i" π×↕10 %% ⟨"Af64","Sf64","Af64Inc","Sf64Inc","Ah","Sh","AhInc","ShInc","Af","Sf","AfInc","SfInc"⟩
|
||||
%USE eqvarv ⋄ •internal.ListVariations _eqvarv_"i" (π×↕10)∾{⇐} %% ⟨"Ah","Sh","AhInc","ShInc","Af","Sf","AfInc","SfInc"⟩
|
||||
%USE eqvarv ⋄ •internal.ListVariations _eqvarv_"i" ↕1000 %% ⟨"Ai16","Si16","Ai16Inc","Si16Inc","Ai32","Si32","Ai32Inc","Si32Inc","Af64","Sf64","Af64Inc","Sf64Inc","Ah","Sh","AhInc","ShInc","Af","Sf","AfInc","SfInc"⟩
|
||||
%USE eqvarv ⋄ •internal.ListVariations _eqvarv_"i" 100⥊1‿0 %% ⟨"Ab","AbInc","Ai8","Si8","Ai8Inc","Si8Inc","Ai16","Si16","Ai16Inc","Si16Inc","Ai32","Si32","Ai32Inc","Si32Inc","Af64","Sf64","Af64Inc","Sf64Inc","Ah","Sh","AhInc","ShInc","Af","Sf","AfInc","SfInc"⟩
|
||||
|
||||
# •internal.Keep
|
||||
•internal.Keep ↕10 %% ↕10
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
%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 LV←•internal.ListVariations ⋄ ⟨_eqvar0_⟩←⊑•args ⋄ _eqvar ← {𝔽 _eqvar0_ LV}
|
||||
%DEF eqvar ⟨_eqvar⟩←⊑•args
|
||||
%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)!0}}
|
||||
%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)!0}}
|
||||
# ¨ & ˘
|
||||
|
||||
@ -209,7 +209,7 @@ Run ← { 𝕊 testname:
|
||||
}
|
||||
|
||||
helpers ← {
|
||||
⟨TV⇐Variation, CLR⇐ClearRefs, HasFill, EEqual⟩ ← •internal
|
||||
⟨TV⇐Variation, CLR⇐ClearRefs, HasFill, EEqual, ListVariations⟩ ← •internal
|
||||
indistinguishable ← {⟨I⇐Indistinguishable⟩: I; EEqual} •internal
|
||||
_tvar0_ ⇐ {
|
||||
F _𝕣_ LV x: (CLR@) ⊢ { F 𝕩 TV x}¨ LV 𝕩;
|
||||
@ -241,6 +241,9 @@ helpers ← {
|
||||
}¨ class ⊔ r
|
||||
⊑r
|
||||
}
|
||||
|
||||
_eqvar ⇐ {𝔽 _eqvar0_ ListVariations}
|
||||
_eqvarv_ ⇐ {𝔽 _eqvar0_ (𝕘⊸ListVariations)}
|
||||
}
|
||||
|
||||
Run¨ SearchRefine o.files
|
||||
|
||||
Loading…
Reference in New Issue
Block a user