get tests to pass with PROPER_FILLS
This commit is contained in:
parent
36e8ad59f7
commit
1b1cda8a90
@ -43,6 +43,8 @@ tests:
|
||||
|
||||
# flags addable anywhere in code:
|
||||
%SLOW # enable only if 'slow' argument present
|
||||
%NDEBUG # disable if 'debug' argument present
|
||||
%NHEAPVERIFY # disable if 'heapverify' argument present
|
||||
%!DEBUG # disable if 'debug' argument present
|
||||
%!HEAPVERIFY # disable if 'heapverify' argument present
|
||||
%!PROPER_FILLS # enable only if has PROPER_FILLS==0
|
||||
%PROPER_FILLS # enable only if has PROPER_FILLS==1
|
||||
```
|
||||
@ -1,9 +1,9 @@
|
||||
%DEF fill Fill←•internal.HasFill◶'e'‿{⊑1↑0⥊𝕩}
|
||||
|
||||
%USE fill ⋄ F←⌊ ⋄ ⟨0,1,{⇐},+,@,'𝕩'⟩ Fill∘F⌜ ⟨⟨⟩, ↕0‿0, ↕0, 0‿2⥊↕0, "", 2‿0⥊""⟩ %NHEAPVERIFY %% 2‿4/[⟨'e',0‿0,0,0,'e','e'⟩,⟨'e','e','e','e','e','e'⟩]
|
||||
%USE fill ⋄ F←+ ⋄ ⟨0,1,{⇐},+,@,'𝕩'⟩ Fill∘F⌜ ⟨⟨⟩, ↕0‿0, ↕0, 0‿2⥊↕0, "", 2‿0⥊""⟩ %NHEAPVERIFY %% 6‿6⥊⟨'e',0‿0,0,0,' ',' ','e',0‿0,0,0,' ',' ','e','e','e','e','e','e','e','e','e','e','e','e','e'," ",' ',' ','e','e','e'," ",' ',' ','e','e'⟩
|
||||
%USE fill ⋄ F←- ⋄ ⟨0,1,{⇐},+,@,'𝕩'⟩ Fill∘F⌜ ⟨⟨⟩, ↕0‿0, ↕0, 0‿2⥊↕0, "", 2‿0⥊""⟩ %NHEAPVERIFY %% 6‿6⥊⟨'e',0‿0,0,0,'e','e','e',0‿0,0,0,'e','e','e','e','e','e','e','e','e','e','e','e','e','e','e'," ",' ',' ',0,0,'e'," ",' ',' ',0,0⟩
|
||||
%USE fill ⋄ F←-˜ ⋄ ⟨0,1,{⇐},+,@,'𝕩'⟩ Fill∘F⌜ ⟨⟨⟩, ↕0‿0, ↕0, 0‿2⥊↕0, "", 2‿0⥊""⟩ %NHEAPVERIFY %% 6‿6⥊⟨'e',0‿0,0,0,' ',' ','e',0‿0,0,0,' ',' ','e','e','e','e','e','e','e','e','e','e','e','e','e','e','e','e',0,0,'e','e','e','e',0,0⟩
|
||||
%USE fill ⋄ F←⌊ ⋄ ⟨0,1,{⇐},+,@,'𝕩'⟩ Fill∘F⌜ ⟨⟨⟩, ↕0‿0, ↕0, 0‿2⥊↕0, "", 2‿0⥊""⟩ %!HEAPVERIFY %% 2‿4/[⟨'e',0‿0,0,0,'e','e'⟩,⟨'e','e','e','e','e','e'⟩]
|
||||
%USE fill ⋄ F←+ ⋄ ⟨0,1,{⇐},+,@,'𝕩'⟩ Fill∘F⌜ ⟨⟨⟩, ↕0‿0, ↕0, 0‿2⥊↕0, "", 2‿0⥊""⟩ %!HEAPVERIFY %% 6‿6⥊⟨'e',0‿0,0,0,' ',' ','e',0‿0,0,0,' ',' ','e','e','e','e','e','e','e','e','e','e','e','e','e'," ",' ',' ','e','e','e'," ",' ',' ','e','e'⟩
|
||||
%USE fill ⋄ F←- ⋄ ⟨0,1,{⇐},+,@,'𝕩'⟩ Fill∘F⌜ ⟨⟨⟩, ↕0‿0, ↕0, 0‿2⥊↕0, "", 2‿0⥊""⟩ %!HEAPVERIFY %% 6‿6⥊⟨'e',0‿0,0,0,'e','e','e',0‿0,0,0,'e','e','e','e','e','e','e','e','e','e','e','e','e','e','e'," ",' ',' ',0,0,'e'," ",' ',' ',0,0⟩
|
||||
%USE fill ⋄ F←-˜ ⋄ ⟨0,1,{⇐},+,@,'𝕩'⟩ Fill∘F⌜ ⟨⟨⟩, ↕0‿0, ↕0, 0‿2⥊↕0, "", 2‿0⥊""⟩ %!HEAPVERIFY %% 6‿6⥊⟨'e',0‿0,0,0,' ',' ','e',0‿0,0,0,' ',' ','e','e','e','e','e','e','e','e','e','e','e','e','e','e','e','e',0,0,'e','e','e','e',0,0⟩
|
||||
%USE fill ⋄ (> !∘≡○Fill ⊢)¨ ⟨↕0, ""⟩
|
||||
%USE fill ⋄ ⟨⊢,Fill,Fill Fill⟩{𝕎𝕩}¨< 0⥊0‿1⊔2⥊<↕2 %% ⟨⟨⟩,⟨⟩,0‿0⟩
|
||||
|
||||
|
||||
@ -30,14 +30,14 @@
|
||||
%USE fastone ⋄ a←5+↕1e6 ⋄ n←{𝕊: a 1⊸+⌾⊑↩}_fastone 4 ⋄ ! (10↑a) ≡ (5+n)∾6+↕9
|
||||
|
||||
# in-place ⌾(l⊸⊏) list
|
||||
%USE fastone ⋄ a←⋈¨5+↕1e6 ⋄ n←{𝕊: a 1⊸+⌾(1‿3‿3‿¯1⊸⊏)↩}_fastone 4 ⋄ ! (⋈¨5‿6‿7‿8‿9‿1000000‿1000001‿1000002‿1000003‿1000004+0‿n‿0‿n‿0‿0‿0‿0‿0‿n) ≡ (5↑a)∾¯5↑a #%NDEBUG
|
||||
%USE fastone ⋄ a←5+↕1e6 ⋄ n←{𝕊: a 1⊸+⌾(1‿3‿3‿¯1⊸⊏)↩}_fastone 4 ⋄ ! ( 5‿6‿7‿8‿9‿1000000‿1000001‿1000002‿1000003‿1000004+0‿n‿0‿n‿0‿0‿0‿0‿0‿n) ≡ (5↑a)∾¯5↑a #%NDEBUG
|
||||
%USE fastone ⋄ a←5+1e6⥊@+↕10000 ⋄ n←{𝕊: a 1⊸+⌾(1‿3‿3‿¯1⊸⊏)↩}_fastone 4 ⋄ ! (@+5‿6‿7‿8‿9‿10000‿10001‿10002‿10003‿10004 +0‿n‿0‿n‿0‿0‿0‿0‿0‿n) ≡ (5↑a)∾¯5↑a #%NDEBUG
|
||||
%USE fastone ⋄ a←⋈¨5+↕1e6 ⋄ n←{𝕊: a 1⊸+⌾(1‿3‿3‿¯1⊸⊏)↩}_fastone 4 ⋄ ! (⋈¨5‿6‿7‿8‿9‿1000000‿1000001‿1000002‿1000003‿1000004+0‿n‿0‿n‿0‿0‿0‿0‿0‿n) ≡ (5↑a)∾¯5↑a %!DEBUG
|
||||
%USE fastone ⋄ a←5+↕1e6 ⋄ n←{𝕊: a 1⊸+⌾(1‿3‿3‿¯1⊸⊏)↩}_fastone 4 ⋄ ! ( 5‿6‿7‿8‿9‿1000000‿1000001‿1000002‿1000003‿1000004+0‿n‿0‿n‿0‿0‿0‿0‿0‿n) ≡ (5↑a)∾¯5↑a %!DEBUG
|
||||
%USE fastone ⋄ a←5+1e6⥊@+↕10000 ⋄ n←{𝕊: a 1⊸+⌾(1‿3‿3‿¯1⊸⊏)↩}_fastone 4 ⋄ ! (@+5‿6‿7‿8‿9‿10000‿10001‿10002‿10003‿10004 +0‿n‿0‿n‿0‿0‿0‿0‿0‿n) ≡ (5↑a)∾¯5↑a %!DEBUG
|
||||
|
||||
# in-place ⌾(l⊸⊏) highrank
|
||||
%USE fastone ⋄ a←∘‿2‿2⥊⋈¨5+↕1e6 ⋄ n←{𝕊: a 1⊸+⌾(1‿3‿3‿¯1⊸⊏)↩}_fastone 4 ⋄ ! a ≡ (n×⟨1,3,¯1+≠a⟩∊˜↕≠a) + ∘‿2‿2⥊⋈¨5+↕1e6 #%NDEBUG
|
||||
%USE fastone ⋄ a←∘‿2‿2⥊5+↕1e6 ⋄ n←{𝕊: a 1⊸+⌾(1‿3‿3‿¯1⊸⊏)↩}_fastone 4 ⋄ ! a ≡ (n×⟨1,3,¯1+≠a⟩∊˜↕≠a) + ∘‿2‿2⥊5+↕1e6 #%NDEBUG
|
||||
%USE fastone ⋄ a←∘‿2‿2⥊5+1e6⥊@+↕10000 ⋄ n←{𝕊: a 1⊸+⌾(1‿3‿3‿¯1⊸⊏)↩}_fastone 4 ⋄ ! a ≡ (n×⟨1,3,¯1+≠a⟩∊˜↕≠a) + ∘‿2‿2⥊5+1e6⥊@+↕10000 #%NDEBUG
|
||||
%USE fastone ⋄ a←∘‿2‿2⥊⋈¨5+↕1e6 ⋄ n←{𝕊: a 1⊸+⌾(1‿3‿3‿¯1⊸⊏)↩}_fastone 4 ⋄ ! a ≡ (n×⟨1,3,¯1+≠a⟩∊˜↕≠a) + ∘‿2‿2⥊⋈¨5+↕1e6 %!DEBUG
|
||||
%USE fastone ⋄ a←∘‿2‿2⥊5+↕1e6 ⋄ n←{𝕊: a 1⊸+⌾(1‿3‿3‿¯1⊸⊏)↩}_fastone 4 ⋄ ! a ≡ (n×⟨1,3,¯1+≠a⟩∊˜↕≠a) + ∘‿2‿2⥊5+↕1e6 %!DEBUG
|
||||
%USE fastone ⋄ a←∘‿2‿2⥊5+1e6⥊@+↕10000 ⋄ n←{𝕊: a 1⊸+⌾(1‿3‿3‿¯1⊸⊏)↩}_fastone 4 ⋄ ! a ≡ (n×⟨1,3,¯1+≠a⟩∊˜↕≠a) + ∘‿2‿2⥊5+1e6⥊@+↕10000 %!DEBUG
|
||||
|
||||
# in-place ∾⟜atom & ∾⟜list
|
||||
%USE fastone ⋄ %USE tvar2 ⋄ {𝕊v: j←<⍟(×≡) v ⋄ {a←𝕩 ⋄ n←{𝕊: a∾↩j}_fastone 4 ⋄ !( n +≠𝕩)≡≠a ⋄ !a≡v¨a}_tvar2_"f" 1e6 ⥊<𝕩}¨ ⟨1, 1‿2, 'a'⟩
|
||||
|
||||
@ -199,6 +199,7 @@ w←1‿1⥊1 ⋄ x←2⥊1 ⋄ w‿x <¨↩ ⋄ {! (∾⟨•Repr𝕩,": Expe
|
||||
∾3‿3⥊<1‿0‿3⥊0 %% 3‿0‿3⥊0
|
||||
∾3‿3⥊<0‿0⥊⟨⟩ %% 0‿0⥊⟨⟩
|
||||
⊑1↑⥊∾3‿3⥊<1‿0‿3⥊<"hi" %% " "
|
||||
!"∾: Empty array 𝕩 cannot have an atom fill element" % ∾↕0 %PROPER_FILLS
|
||||
∾⟨⟩ %% ⟨⟩
|
||||
|
||||
# 𝕨∾𝕩
|
||||
|
||||
@ -116,9 +116,12 @@ n←500 ⋄ a←↕n ⋄ i←(-n)+↕2×n ⋄ r←⌽(2×n)⥊a ⋄ ! (⌽a) ≡
|
||||
%USE eqvar ⋄ 1‿0‿0‿0‿1‿1 { 3¨⌾(𝕨⊸/)𝕩}_eqvar "hellow" %% 3‿'e'‿'l'‿'l'‿3‿3
|
||||
%USE eqvar ⋄ 1‿0‿0‿0‿1‿1 { +˙¨⌾(𝕨⊸/)𝕩}_eqvar -‿÷‿×‿=‿<‿> %% +‿÷‿×‿=‿+‿+
|
||||
!"/: Lengths of components of 𝕨 must match 𝕩 (6 ≠ 7)" % 0¨⌾(1‿0‿0‿0‿1‿1⊸/) 0‿1‿0‿1‿0‿1‿0
|
||||
4↑ (⋈⋈3)⌾(0‿1‿0⊸/) ↕⋈3 %% ⟨⋈0,⋈3,⋈2,0⟩
|
||||
4↑ ⊢⌾(0‿1‿0⊸/) ↕⋈3 %% ⟨⋈0,⋈1,⋈2,0⟩
|
||||
4↑ ⊢⌾(0‿0‿0⊸/) ↕⋈3 %% ⟨⋈0,⋈1,⋈2,0⟩
|
||||
4↑ (⋈⋈3)⌾(0‿1‿0⊸/) ↕⋈3 %!PROPER_FILLS %% ⟨⋈0,⋈3,⋈2,0⟩
|
||||
4↑ ⊢⌾(0‿1‿0⊸/) ↕⋈3 %!PROPER_FILLS %% ⟨⋈0,⋈1,⋈2,0⟩
|
||||
4↑ ⊢⌾(0‿0‿0⊸/) ↕⋈3 %!PROPER_FILLS %% ⟨⋈0,⋈1,⋈2,0⟩
|
||||
!"No fill found" % 4↑ (⋈⋈3)⌾(0‿1‿0⊸/) ↕⋈3 %PROPER_FILLS
|
||||
!"No fill found" % 4↑ ⊢⌾(0‿1‿0⊸/) ↕⋈3 %PROPER_FILLS
|
||||
!"No fill found" % 4↑ ⊢⌾(0‿0‿0⊸/) ↕⋈3 %PROPER_FILLS
|
||||
|
||||
# <
|
||||
⊢⌾< 4 %% 4
|
||||
|
||||
15
test/run.bqn
15
test/run.bqn
@ -39,6 +39,7 @@ o ← {
|
||||
heapverify ⇐ ∨´i=6
|
||||
debug ⇐ ∨´i=7
|
||||
noCatch ⇐ ∨´i=8
|
||||
properFills ⇐ {noerr? 0; 1 0∘↑⎊1 ⟨⟩}
|
||||
noerr∨↩ heapverify
|
||||
update∧↩ ¬heapverify
|
||||
files ⇐ (i=≠named)/args
|
||||
@ -92,7 +93,15 @@ Run ← { 𝕊 testname:
|
||||
∨´m
|
||||
}
|
||||
|
||||
{ln⇐i-1 ⋄ fast⇐¬Flag"%SLOW" ⋄ debug⇐¬Flag"%NDEBUG" ⋄ heapverify⇐¬Flag"%NHEAPVERIFY" ⋄ str⇐str}
|
||||
{
|
||||
enabled ⇐ ¬ (¬o.slow) ∧ Flag "%SLOW"
|
||||
enabled∧↩ ¬ o.debug ∧ Flag "%!DEBUG"
|
||||
enabled∧↩ ¬ o.heapverify ∧ Flag "%!HEAPVERIFY"
|
||||
enabled∧↩ {0‿0: 1; 1‿0: o.properfills; 0‿1: ¬o.properfills} Flag¨ "%PROPER_FILLS"‿"%!PROPER_FILLS"
|
||||
|
||||
ln ⇐ i-1
|
||||
str ⇐ str # at end to let Flag have updated it
|
||||
}
|
||||
}
|
||||
tests ← SearchRefine @⊸≢¨⊸/ ∾⟜<⟜(Process∘Next)•_while_{𝕊: i≠≠lns} ⟨⟩
|
||||
{𝕊: •Out "Narrowed down to test "∾Pos (⊑tests).ln}⍟⊢ (o.search≢@)∧1=≠tests
|
||||
@ -135,9 +144,7 @@ Run ← { 𝕊 testname:
|
||||
Eval ← {⟨dir, ∾⟨testname,"_line_",•Repr currLn+1,".bqn"⟩, ⟨"arg0",1⟩⟩ •BQN 𝕩}
|
||||
EvalS ← •BQN⎊{𝕊: Bad "Bad comparison value" ⋄ "(bad)"}
|
||||
toRun ← tests
|
||||
toRun {{𝕩.fast }∘⊑¨⊸/𝕩}⍟(¬o.slow)↩
|
||||
toRun {{𝕩.debug }∘⊑¨⊸/𝕩}⍟o.debug↩
|
||||
toRun {{𝕩.heapverify}∘⊑¨⊸/𝕩}⍟o.heapverify↩
|
||||
toRun {{𝕩.enabled}∘⊑¨⊸/𝕩}↩
|
||||
skipped+↩ (≠tests)-≠toRun
|
||||
results ← {
|
||||
"eval"‿str: {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user