From e2c12d0ade1f8ea91d0fad86704dca4c6cbf3049 Mon Sep 17 00:00:00 2001 From: dzaima Date: Wed, 28 May 2025 00:46:04 +0300 Subject: [PATCH] avoid needing to mutate LV for eqvar tests --- test/cases/cells.bqn | 2 +- test/cases/fuzz/select-cells.bqn | 8 ++++---- test/cases/prims.bqn | 3 ++- test/cases/system.bqn | 11 ++++++----- test/cases/under.bqn | 2 +- test/run.bqn | 5 ++++- 6 files changed, 18 insertions(+), 13 deletions(-) diff --git a/test/cases/cells.bqn b/test/cases/cells.bqn index 17a5c765..7212db97 100644 --- a/test/cases/cells.bqn +++ b/test/cases/cells.bqn @@ -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} diff --git a/test/cases/fuzz/select-cells.bqn b/test/cases/fuzz/select-cells.bqn index e92fd8b6..4cf16568 100644 --- a/test/cases/fuzz/select-cells.bqn +++ b/test/cases/fuzz/select-cells.bqn @@ -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 diff --git a/test/cases/prims.bqn b/test/cases/prims.bqn index 9e0ad7b6..da3c7e36 100644 --- a/test/cases/prims.bqn +++ b/test/cases/prims.bqn @@ -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} diff --git a/test/cases/system.bqn b/test/cases/system.bqn index ece41491..65c271ca 100644 --- a/test/cases/system.bqn +++ b/test/cases/system.bqn @@ -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 diff --git a/test/cases/under.bqn b/test/cases/under.bqn index 46ad24d9..4c78a99f 100644 --- a/test/cases/under.bqn +++ b/test/cases/under.bqn @@ -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}} # ¨ & ˘ diff --git a/test/run.bqn b/test/run.bqn index 38b58a43..da1b5930 100644 --- a/test/run.bqn +++ b/test/run.bqn @@ -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