From fba84369ae9fe7bdf0fa19c85076a52dbe2ce058 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Mon, 29 Jun 2020 19:35:05 -0400 Subject: First two layers of dzaima+reference testing --- spec/dzref | 4 +- test/testref.bqn | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+), 2 deletions(-) create mode 100644 test/testref.bqn diff --git a/spec/dzref b/spec/dzref index 4a4849f1..6efe53f4 100755 --- a/spec/dzref +++ b/spec/dzref @@ -11,11 +11,10 @@ impl ← "β—Ά ← {𝕨((𝕨𝔽𝕩)βŠ‘π•˜){𝔽}𝕩} ⍝ LIMITED to num ⟜ ← {(π•¨βŠ£π•©)𝔽𝔾𝕩} ⍝ {(𝔽{𝕨𝔽𝔾𝕩}𝔾)˜˜} ⍝ {F←𝔽 β‹„ G←𝔾 β‹„ {𝕨F G𝕩}˜˜} ⍝ {𝕨𝔽𝔾𝕩}˜˜ ⍝ LIMITED to numeric arguments for scalar cases -√ ← 2⊸√ ⊘ (β‹†βŸœΓ·Λœ) +√ ← β‹†βŸœ(Γ·2) ⊘ (β‹†βŸœΓ·Λœ) ∧ ← Γ— ∨ ← (+-Γ—) Β¬ ← 1+- -| ← Γ—βŸœΓ— ⊘ {𝕩-π•¨Γ—βŒŠπ•©Γ·π•¨} < ← {⟨⟩β₯ŠβŸ¨π•©βŸ©} ⊘ (Β¬β‰€Λœ) > ← (¬≀) β‰₯ ← !∘0 ⊘ (β‰€Λœ) @@ -23,6 +22,7 @@ impl ← "β—Ά ← {𝕨((𝕨𝔽𝕩)βŠ‘π•˜){𝔽}𝕩} ⍝ LIMITED to num Length ← (0<0βŠ‘β‰’)β—ΆβŸ¨1β‹„0βŠ‘βŠ’βŸ©βˆ˜β‰’ β‰  ← Length ⊘ (¬∘=) Γ— ↩ 0⊸(<->) ⊘ Γ— +| ← Γ—βŸœΓ— ⊘ {𝕩-π•¨Γ—βŒŠπ•©Γ·π•¨} _eachm←{ r←β₯Šπ•© β‹„ F←𝔽 diff --git a/test/testref.bqn b/test/testref.bqn new file mode 100644 index 00000000..635514dc --- /dev/null +++ b/test/testref.bqn @@ -0,0 +1,138 @@ +⍝ Tests of primitive functionality +⍝ Ordering matches the reference implementations + +‒←/¬∾´⟨ +{⟨ + ⍝ LAYER 0 + ⍝ [0,34) + 0≑¯2+2 + 1e4≑5e3+5e3 + Β―βˆžβ‰‘1e6-∞ + 4≑-Β―4 + Β―βˆžβ‰‘-∞ + βˆžβ‰‘-¯∞ + 4≑9-5 + 1.5≑3Γ—0.5 + 4≑÷0.25 + βˆžβ‰‘Γ·0 + 0β‰‘Γ·βˆž + 1≑⋆0 + Β―1≑¯1⋆5 + 1≑¯1⋆¯6 + 3β‰‘βŒŠ3.9 + Β―4β‰‘βŒŠΒ―3.9 + βˆžβ‰‘βŒŠβˆž + Β―βˆžβ‰‘βŒŠΒ―βˆž + Β―1e30β‰‘βŒŠΒ―1e30 + 1≑1=1 + 0≑¯1=∞ + 1≑1≀1 + 1β‰‘Β―βˆžβ‰€Β―1e3 + 0β‰‘βˆžβ‰€Β―βˆž + βŸ¨βŸ©β‰‘β‰’<2 + ⟨3βŸ©β‰‘β‰’"abc" + ⟨2,3βŸ©β‰‘β‰’>"abc"β€Ώ"fed" + ⟨2,3,4,5βŸ©β‰‘β‰’2β€Ώ3β€Ώ4β€Ώ5β₯Šβ†•120 + ⟨6βŸ©β‰‘β‰’β₯Š>"abc"β€Ώ"fed" + "abc"≑0βŠ‘"abc"β€Ώ"de" + "de"≑1βŠ‘"abc"β€Ώ"de" + βŸ¨βŸ©β‰‘β†•0 + ⟨0βŸ©β‰‘β†•1 + ⟨0,1,2,3,4,5,6βŸ©β‰‘β†•7 +βŸ©βŠ£π•©}0 + +{⟨ + ⍝ LAYER 1 + ⍝ [34,56) + 3≑4>β—Ά+β€Ώ-1 + 3≑4βŠ’β—Ά+β€Ώ-1 + 3≑4 1β—Ά+β€Ώ-1 + 5≑4<β—Ά+β€Ώ-1 + 5≑4 0β—Ά+β€Ώ-1 + 1≑-⊘0 Β―1 + 1≑¯1-⊘+2 + "abc"β‰‘βŠ’"abc" + ""≑3⊒"" + βŸ¨βŸ©β‰‘βŠ£βŸ¨βŸ© + "ab"≑"ab"⊣⟨⟩ + 4≑+˜2 + 3≑1-˜4 + 1≑-βˆ˜Γ—Β―6 + Β―6≑2-βˆ˜Γ—3 + 1≑-β—‹Γ—Β―7 + 2≑5-β—‹Γ—Β―7 + Β―20≑1⊸-βŠΈΓ—5 + (0β€Ώ2+⌜0β€Ώ1)≑(>⟨"ab","cd"⟩)β‰’βŠΈβ₯Šβ†•4 + 20β‰‘Γ—βŸœ(-⟜1)5 + 4≑5+βŸœΓ—Β―3 + 7≑5+⟜2 Β―3 + ⍝ [56,95) + 2β‰‘βˆš4 + 3≑3√27 + 6≑2∧3 + 0≑¯2∧0 + 0.75β‰‘βˆ¨Λœ0.5 + 1.75≑2∨0.25 + 0≑¬1 + 1≑¬0 + 2≑¬¯1 + 0≑3Β¬4 + 2≑4Β¬3 + 4≑5Β¬2 + 0≑|0 + 5≑|Β―5 + 6≑|6 + βˆžβ‰‘|¯∞ + 2≑3|8 + 2≑3|Β―7 + Β―1≑¯3|8 + "a"≑β₯Š<'a' + "abcd"β‰‘βŠ‘<"abcd" + βŸ¨βŸ©β‰‘β‰’<⟨2,⟨3,4⟩⟩ + 0≑4<2 + 0≑5>5 + 0≑3β‰₯4 + 0≑≠"" + 1≑≠"a" + 1≑≠'a' + 2≑≠"ab" + 25≑≠↕25 + 1≑×5 + Β―1≑ׯ2.5 + 3≑3⌊4 + Β―3≑¯3⌊∞ + 4≑3⌈4 + 1≑1⌈¯1 + 5β‰‘βŒˆ4.01 + βŸ¨βŸ©β‰‘β‰’'a' + βŸ¨βŸ©β‰‘β‰’0 + ⍝ [95,104) + ⟨0βŸ©β€ΏβŸ¨1βŸ©β€ΏβŸ¨2βŸ©β‰‘β₯ŠΒ¨β†•3 + (↕6)β‰‘βŸœ(β‰ Β¨)β—‹(2β€Ώ3⊸β₯Š)βŸ¨βŸ©β€Ώ"a"β€Ώ"ab"β€Ώ"abc"β€Ώ"abcd"β€Ώ"abcde"β€Ώ"abcdef" + β‰‘βŸœ(β‰ Β¨)4β€Ώ0β€Ώ2β₯Šβ†•0 + 6≑+´↕4 + (βŠ‘β‰‘βŠ£Β΄)"a"β€Ώ2β€Ώ(3β€Ώ"d") + 0(βŠ‘β‰‘βŠ£Β΄)"a"β€Ώ2β€Ώ(3β€Ώ"d") + (2βŠΈβŠ‘β‰‘βŠ’Β΄)"a"β€Ώ2β€Ώ(3β€Ώ"d") + 2(βŠ£β‰‘βŠ’Β΄)"a"β€Ώ2β€Ώ(3β€Ώ"d") + 7β€Ώ10≑+¨´⟨⟨2,3⟩,⟨5,7⟩⟩ +βŸ©βŠ£π•©}0 + +{⟨ + ⍝ LAYER 2 + ⍝ [104,117) + βŸ¨βŸ©β‰‘βŸ¨βŸ©βˆΎ"" + "a"β‰‘βŸ¨βŸ©βˆΎ"a" + "a"≑"a"∾⟨⟩ + "aBCD"≑"a"∾"BCD" + ((+βŒœΛœβ‰ Β¨)≑(β‰ Β¨βˆΎβŒœΛœ))""β€ΏβŸ¨2,3βŸ©β€Ώ"abcde" + (β₯ŠβŸœ(↕×´)≑(Γ—βŸœ4)⊸(+⌜)○↕´)3β€Ώ4 + (β₯ŠβŸœ(↕×´)≑(Γ—βŸœ4)⊸(+⌜)○↕´)0β€Ώ4 + (3β€Ώ2β€Ώ0β₯Š"")≑(3β€Ώ2β₯Šβ†•6)+⌜"" + (<<2)≑<Β¨2 + ⟨1,⟨3,2,2β€Ώ2β₯ŠβŸ¨1,0,2,0⟩⟩,⟨5,4βŸ©βŸ©β‰‘-⟨-1,⟨-3,-2,-Β¨2β€Ώ2β₯ŠβŸ¨1,0,2,0⟩⟩,⟨-5,-4⟩⟩ + 3(+¨≑+⌜)↕6 + 3β€Ώ4β€Ώ5β€Ώ6β€Ώ6≑{F:F⍟(×≑)⊸∾⟜β₯ŠΒ΄π•©}⟨2,1⟩+⟨⟨⟨⟨1,2⟩,3⟩,4⟩,5⟩ + (=¨⟜(β₯ŠβŸœ(↕×´)3β€Ώ4)≑(↕4)=⌜˜4|⊒)1β€Ώ6β€Ώ8 +βŸ©βŠ£π•©}0 +⟩ -- cgit v1.2.3