From 2c207dbebca672b6c00f6fef4e4d9a5f58a4ae02 Mon Sep 17 00:00:00 2001 From: dzaima Date: Sun, 30 Apr 2023 00:53:05 +0300 Subject: [PATCH] test an arithmetic function in test/cells.bqn --- test/cells.bqn | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/test/cells.bqn b/test/cells.bqn index 23ae1e8f..5e2abfc3 100644 --- a/test/cells.bqn +++ b/test/cells.bqn @@ -23,6 +23,16 @@ GetTests ← { 𝕊: AddTests ← {tests∾↩ 𝕩 ⋄ @} Prod ← {⥊ (<⟨⟩) <⊸∾⌜´ 𝕩} + FOk ← { w‿F‿g‿x: # filter out tests that'd immediately error due to bad shapes, or would + g ↩ (@≡g)⊑g‿¯1 + r ← =¨w‿x + s ← ≢¨w‿x + k ← 0⌈r-0⌈(⊢+r×0⊸>) 1↓⌽3⥊⌽⥊g + # •Show k + ok ← ≡´ (⌊´k) ↑¨ s + # {𝕊: ! w 0∘(F⎉g)⎊1 x}⍟¬ ok + ok ∧ k≢0‿0 + }¨⊸/ # generating random numerical arrays: # )r N←{⟨⟩:"1";•Repr⊑⍟(1=≠)𝕩} ⋄ J←{(⊣∾𝕨∾⊢)´𝕩} ⋄ •Out '⟨'∾'⟩'∾˜','J ("⥊"J≢⋈○N⥊)¨ 15↑ ⍷ {𝕊: ((1+•rand.Range 4)•rand.Range 4)•rand.Range 10}¨ ↕100 @@ -50,37 +60,44 @@ GetTests ← { 𝕊: ws ← ⟨0, 1, 2, 3, ¯1, ¯2, <1⟩ xs ← ⟨2‿2⥊"a"‿1‿"b"‿"cd", 3‿3‿3⥊'a'+↕27, 3‿6⟩∾ {𝕩⥊↕×´⥊𝕩}¨ ⟨2‿3, 2‿0, 2‿3‿4, 2‿2‿3‿4, 3‿4⟩ ks ← ⟨0, 1, 2, 3, 4, 0‿1, 0‿2⟩ - AddTests Prod ⟨ws, ⊏‿⊑, ks, xs⟩ - AddTests Prod ⟨0‿100‿¯100‿∞, ⊏‿⊑, 0‿1‿2, xs∾⟨0,<4⟩⟩ + AddTests FOk Prod ⟨ws, ⊏‿⊑, ks, xs⟩ + AddTests FOk Prod ⟨0‿100‿¯100‿∞, ⊏‿⊑, 0‿1‿2, xs∾⟨0,<4⟩⟩ }⍟⊢ 1 { 𝕊: # w ≡⎉k x xs ← ⟨0, 2‿3⥊@+↕6⟩∾ {𝕩⥊↕×´⥊𝕩}¨ ⟨1, 2‿3, 0‿3, 2‿0‿3, 4‿2‿3, 2‿4‿2‿3, 3‿1⟩ ks ← ⟨¯∞, ¯1, 0, 1, 2, 3, 4, 0‿1, 2‿1⟩ - AddTests Prod ⟨xs, ≡, ks, xs⟩ + AddTests FOk Prod ⟨xs, ≡, ks, xs⟩ xs2 ← ⟨2‿3⥊175, [¯81‿¯81‿¯81, 0‿0‿0]⟩∾{𝕩-˜𝕩+2‿3⥊'¯'}¨ 0‿100‿100000 - AddTests Prod ⟨xs2, ≡, ks, xs2⟩ + AddTests FOk Prod ⟨xs2, ≡, ks, xs2⟩ }⍟⊢ 1 { 𝕊: # w ⍉⎉k x ws ← ⟨0, 1, 2, 3, 4, ¯1, 1‿0⟩ xs ← ⟨2‿2‿2⥊"a"‿1‿"b", 3‿3‿3⥊'a'+↕27, 3‿6⟩∾ {𝕩⥊↕×´⥊𝕩}¨ ⟨2‿3, 2‿0, 2‿3‿4, 2‿2‿3‿4, 3‿4, 3‿2‿1‿2‿2⟩ ks ← ⟨0, 1, 2, 3, 4, 5, 0‿1, 0‿2⟩ - AddTests Prod ⟨ws, ⍉, ks, xs⟩ + AddTests FOk Prod ⟨ws, ⍉, ks, xs⟩ }⍟⊢ 1 { 𝕊: # w »⎉k x / w «⎉k x ws ← ⟨0, 1, 'a', "ab", <"h"‿2⟩ xs ← ⟨2‿2‿2⥊"a"‿1‿"b", 3‿3‿3⥊'a'+↕27, 3‿6⟩∾ {𝕩⥊↕×´⥊𝕩}¨ ⟨2‿3, 2‿0, 2‿3‿4, 2‿2‿3‿4, 3‿4, 3‿2‿1‿2‿2⟩ ks ← ⟨0, 1, 2, 3, 4, @, 0‿1, 0‿2⟩ - AddTests Prod ⟨ws, «‿», ks, xs⟩ + AddTests FOk Prod ⟨ws, «‿», ks, xs⟩ }⍟⊢ 1 { 𝕊: # w ↑⎉k x / w ↓⎉k x ws ← ⟨0,1,2,¯1,¯2,10,1‿1⟩ xs ← ⟨2‿2‿2⥊"a"‿1‿"b", 3‿3‿3⥊'a'+↕27, 3‿6⟩∾ {𝕩⥊↕×´⥊𝕩}¨ ⟨2‿3, 0‿2, 2‿0, 2‿3‿4, 2‿2‿3‿4, 3‿4, 3‿2‿1‿2‿2⟩ ks ← ⟨0, 1, 2, 3, 4, @, 0‿1, 0‿2, 1‿¯1⟩ - AddTests Prod ⟨ws, ↑‿↓, ks, xs⟩ + AddTests FOk Prod ⟨ws, ↑‿↓, ks, xs⟩ + }⍟⊢ 1 + + { 𝕊: # w -⎉k x + xs ← {𝕩⥊↕×´⥊𝕩}¨ ⟨2‿3‿4, 2‿3, 3‿4, 2, 3, 4, 2‿2‿3‿4, 3‿2‿1‿2‿2⟩ + ks ← ⟨0, 1, 2, 3, 4, ¯1, ¯2, 0‿1, 0‿2, 1‿0, 2‿0, 2‿1, 1‿2⟩ + AddTests FOk Prod ⟨xs, -, ks, xs⟩ + AddTests Prod ⟨xs, -, ∞, xs⟩ # test regular leading axis behavior }⍟⊢ 1 tests