aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-06-29 19:35:05 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-06-29 19:35:05 -0400
commitfba84369ae9fe7bdf0fa19c85076a52dbe2ce058 (patch)
treef4901474848e17283b6c2398113974e40e9b88bb
parentc689914c958fe6ec978ff1996a216cbd3f7313d9 (diff)
First two layers of dzaima+reference testing
-rwxr-xr-xspec/dzref4
-rw-r--r--test/testref.bqn138
2 files changed, 140 insertions, 2 deletions
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
+⟩