aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2020-06-29 20:37:51 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2020-06-29 20:37:51 -0400
commit5cfbc5909bd33b5927f7b1fdb44944819563a385 (patch)
tree2a1f64203e0f92647c426833c5d4292146cef885
parent4eeb808545e8dd7ba3a8e0f89af3c875fce88af4 (diff)
Layer 3 tests
-rwxr-xr-xspec/dzref26
-rw-r--r--spec/reference.bqn2
-rw-r--r--test/testref.bqn48
3 files changed, 51 insertions, 25 deletions
diff --git a/spec/dzref b/spec/dzref
index 8c41eba4..997e5d58 100755
--- a/spec/dzref
+++ b/spec/dzref
@@ -1,6 +1,7 @@
#!/usr/bin/env dbqn
-impl ← "√ ← ⋆⟜(÷2) ⊘ (⋆⟜÷˜)
+impl ← "◶ ← {𝕨((𝕨𝔽𝕩)⊑𝕘){𝔽}𝕩}
+√ ← ⋆⟜(÷2) ⊘ (⋆⟜÷˜)
∧ ← ×
∨ ← (+-×)
> ← (¬≤)
@@ -64,12 +65,6 @@ _perv←{ ⍝ Pervasion
Int←IsArray◶⟨⌊⊸=,0⟩
Nat←IsArray◶⟨0⊸≤∧⌊⊸=,0⟩
-Range←{
- I←{!Nat𝕩⋄↕𝕩}
- M←{!1=≠≢𝕩⋄(<⟨⟩)⥊⊸∾⌜´I¨𝕩}
- IsArray◶I‿M 𝕩
-}
-
Pick1←{
! 1=≠≢𝕨
! 𝕨=○≠s←≢𝕩
@@ -78,23 +73,13 @@ Pick1←{
𝕨↩𝕨+s×𝕨<0
(⥊𝕩)⊑˜0(⊑⟜𝕨+⊑⟜s×⊢)´-↕⊸¬≠𝕨
}
-Pickd←(0∨´IsArray¨∘⊣)◶Pick1‿{Pickd⟜𝕩¨𝕨}
+Pickd←(0∨´⟜⥊IsArray¨∘⊣)◶Pick1‿{Pickd⟜𝕩¨𝕨}
Pick←IsArray◶⥊‿⊢⊸Pickd
-match←{¬∘(0⊑𝕨)◶(1⊑𝕨)‿𝕩}´⟨
- ⟨≠○IsArray , 0⟩
- ⟨¬IsArray∘⊢, =⟩
- ⟨≠○(≠≢) , 0⟩
- ⟨0∨´≠○≢ , 0⟩
- {∧´⥊𝕨Match¨𝕩}
-⟩
-
Depth←IsArray◶0‿{1+0⌈´Depth¨⥊𝕩}
⊑ ↩ (0¨∘≢)⊸Pick ⊘ Pick
-↕ ↩ Range
-
-≡ ← Depth ⊘ Match
+≡ ← Depth ⊘ ≡
⍝⌜
@@ -336,7 +321,7 @@ ProgressiveIndexOf ← {𝕨⊐○(≍˘⟜OccurrenceCount𝕨⊸⊐)𝕩}
names ← ⥊"AB"∾⌜•a
f_chr ← "!√∧∨|>≡∾≍↑↓↕⌽⍉/⍋⍒⊏⊑⊐⊒∊⍷⊔"
m_chr ← "˘¨⌜´`"
- d_chr ← "⌾⎉⚇⍟"
+ d_chr ← "⌾⎉⚇⍟◶"
f_itr ← 0⥊˜≠f_chr
m_itr ← 0⥊˜≠m_chr
@@ -373,6 +358,7 @@ ProgressiveIndexOf ← {𝕨⊐○(≍˘⟜OccurrenceCount𝕨⊸⊐)𝕩}
'!' Mod_f "{𝕩 ⋄ ≤1}⍟¬"
'⊑' Mod_f "⊑"
'↕' Mod_f "↕"
+ '≡' Mod_f "≡"
E_isdef ← ⊢ ≢ ("^["∾f_chr∾m_chr∾d_chr∾"] [←↩]")•_R_'_' ⍝ checks if line is a builtin redefinition
diff --git a/spec/reference.bqn b/spec/reference.bqn
index 6b4f9f1f..6ecf59d3 100644
--- a/spec/reference.bqn
+++ b/spec/reference.bqn
@@ -151,7 +151,7 @@ Pick1←{
𝕨↩𝕨+s×𝕨<0
(⥊𝕩)⊑˜0(⊑⟜𝕨+⊑⟜s×⊢)´-↕⊸¬≠𝕨
}
-Pickd←(∨´IsArray¨∘⊣)◶Pick1‿{Pickd⟜𝕩¨𝕨}
+Pickd←(∨´∘⥊IsArray¨∘⊣)◶Pick1‿{Pickd⟜𝕩¨𝕨}
Pick←IsArray◶⥊‿⊢⊸Pickd
match←{¬∘(0⊑𝕨)◶(1⊑𝕨)‿𝕩}´⟨
diff --git a/test/testref.bqn b/test/testref.bqn
index dfcf739a..066ca277 100644
--- a/test/testref.bqn
+++ b/test/testref.bqn
@@ -39,7 +39,7 @@
⟨⟩≡↕0
⟨0⟩≡↕1
⟨0,1,2,3,4,5,6⟩≡↕7
-⟩⊣𝕩}0
+⟩⊣𝕩}⍟1 34⥊1
{⟨
⍝ LAYER 1
@@ -77,7 +77,7 @@
1≡¬0
2≡¬¯1
0≡3¬4
-⟩⊣𝕩}0
+⟩⊣𝕩}⍟1 32⥊1
{⟨
2≡4¬3
4≡5¬2
@@ -118,7 +118,7 @@
(2⊸⊑≡⊢´)"a"‿2‿(3‿"d")
2(⊣≡⊢´)"a"‿2‿(3‿"d")
7‿10≡+¨´⟨⟨2,3⟩,⟨5,7⟩⟩
-⟩⊣𝕩}0
+⟩⊣𝕩}⍟1 38⥊1
{⟨
⍝ LAYER 2
@@ -136,5 +136,45 @@
3(+¨≡+⌜)↕6
3‿4‿5‿6‿6≡{F:F⍟(×≡)⊸∾⟜⥊´𝕩}⟨2,1⟩+⟨⟨⟨⟨1,2⟩,3⟩,4⟩,5⟩
(=¨⟜(⥊⟜(↕×´)3‿4)≡(↕4)=⌜˜4|⊢)1‿6‿8
-⟩⊣𝕩}0
+⟩⊣𝕩}⍟1 13⥊1
+
+{⟨
+ ⍝ LAYER 3
+ ⍝ [117,152)
+ 2≡⊑⟨2⟩
+ "ab"≡⊑⟨"ab"⟩
+ 0≡⊑↕20
+ 4≡⊑3‿2‿1⥊4⥊⊸∾5⥊0
+ 'c'≡2⊑"abcd"
+ 'c'≡¯2⊑"abcd"
+ 7≡7⊑↕10
+ 21≡2‿¯3⊑(10×↕3)+⌜↕4
+ 21‿12‿03≡⟨2‿¯3,1‿2,0‿¯1⟩⊑(10×↕3)+⌜↕4
+ "dfeb"≡(⥊¨-⟨3,1,2,5⟩)⊑"abcdef"
+ "abc"≡⟨⟩⊑<"abc"
+ ⟨7,7‿7,7⟩≡⟨⟨⟩,⟨⟨⟩,⟨⟩⟩,⟨⟩⟩⊑<7
+ ⟨7,⟨7,<7⟩⟩≡⟨⟨⟩,⟨⟨⟩,<⟨⟩⟩⟩⊑7
+ "abcfab"≡⥊(↕2‿3)⊑5‿5⥊"abcdef"
+ "aedcaf"≡⥊(-↕2‿3)⊑5‿5⥊"abcdef"
+ (<6⥊0)(⊑≡<∘⊑∘⊢)(6⥊1)⥊5
+ ¯6≡1‿0◶(2‿2⥊0‿0‿-‿0)6
+ ⟨3⟩≡⥊3
+ ⟨3,3,3⟩≡3⥊3
+ 6(⊢⌜≡∾○≢⥊⊢)○↕3
+ (<≡↕)⟨⟩
+ (↕∘⥊≡⥊¨∘↕)9
+ ¬'a'≡<'a'
+ ¬"a"≡≍"a"
+ ¬⟨1,2,⟨4,4⟩,5⟩≡○(2‿2⊸⥊)⟨1,2,⟨3,4⟩,5⟩
+ ¬2‿3‿4≡2‿3
+ ¬1.001≡1.002
+ 'a'≢2
+ 0≡≡'a'
+ 1≡≡↕6
+ 2≡≡↕2‿4
+ 3≡≡<<<4
+ (1¨≡-○≡˜⟜↕¨)⟨0,⟨⟩,⟨1⟩,2,⟨3,4⟩⟩
+ 2≡≡⟨5,⟨'c',+,2⟩⟩
+ 0≡≡⊑⟨-⟩
+⟩⊣𝕩}⍟1 35⥊1