test an arithmetic function in test/cells.bqn
This commit is contained in:
parent
048352f587
commit
2c207dbebc
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user