avoid needing to mutate LV for eqvar tests

This commit is contained in:
dzaima 2025-05-28 00:46:04 +03:00
parent 368fe11155
commit e2c12d0ade
6 changed files with 18 additions and 13 deletions

View File

@ -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 𝕩 {okr? !"TEST FAIL: variation didn't error"; ("TEST FAIL: varying error messages" ! 1=)r (r)!0}}
%DEF eqerr %USE eqvar _eqerr {ok{} r𝕨 ok𝔽{𝕊: •CurrentError@} 𝕩 {okr? !"TEST FAIL: case didn't error"; ("TEST FAIL: varying error messages" ! 1=)r (r)!0}}
%DEF k _k {𝔽•internal.Keep}

View File

@ -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 𝕩} 1x
w {𝕨˘ 𝕩}_eqvar x
w {𝕨˘ 𝕩}_eqvarv_"" x
}
Test¨ 1000

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 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 𝕩 {okr? !"TEST FAIL: variation didn't error"; ("TEST FAIL: varying error messages" ! 1=)r (r)!0}}
%DEF eqerr %USE eqvar _eqerr {ok{} r𝕨 ok𝔽{𝕊: •CurrentError@} 𝕩 {okr? !"TEST FAIL: case didn't error"; ("TEST FAIL: varying error messages" ! 1=)r (r)!0}}
%DEF k _k {𝔽•internal.Keep}

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 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
! 0123456788123456788 {•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 10010 %% "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" 10010 %% "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

View File

@ -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 𝕩 {okr? !"TEST FAIL: variation didn't error"; ("TEST FAIL: varying error messages" ! 1=)r (r)!0}}
%DEF eqerr %USE eqvar _eqerr {ok{} r𝕨 ok𝔽{𝕊: •CurrentError@} 𝕩 {okr? !"TEST FAIL: case didn't error"; ("TEST FAIL: varying error messages" ! 1=)r (r)!0}}
# ¨ & ˘

View File

@ -209,7 +209,7 @@ Run ← { 𝕊 testname:
}
helpers {
TVVariation, CLRClearRefs, HasFill, EEqual •internal
TVVariation, CLRClearRefs, HasFill, EEqual, ListVariations •internal
indistinguishable {IIndistinguishable: 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