diff options
| -rwxr-xr-x | c.bqn | 16 | ||||
| -rw-r--r-- | test/bcases.bqn | 4 | ||||
| -rwxr-xr-x | test/bt | 2 | ||||
| -rwxr-xr-x | test/cmpref.bqn | 2 |
4 files changed, 15 insertions, 9 deletions
@@ -169,13 +169,15 @@ DParse ← {nv‿r𝕊𝕩: g↩⍋+`rev⊏p-br⋄gr←g⊏rev⋄sll←1+2÷˜0(<-○/>)gr⊏sr-sl⋄l←/g⊏𝕩=5⊑bB g⊏˜↩gs←⍋gr⊏sl⋄gr↩g⊏rev⋄𝕩⊏˜↩g⋄r⊏˜↩g⋄o⊏˜↩gr⋄si←/gr⊏sr>sl gi←⍋g⋄b⊏↩gi⋄l⊏↩⍋gs - asn←¯1⌽+`gi⊏-⟜(≠↑0∾⊢)𝕩∊bG⋄r↩¯2¨⌾((g⊏asn)⊸/)r s←𝕩∊bS⋄ps←s∨o∨gr⊏sl⋄a←𝕩∊2↑bG - r-↩ps∨a⋄op←r≥2⋄ro←op∨1⌽r=3 - tr←(⌈`↕∘≠⊸ׯ1⌽ps)⊏ro∨r≥1 + r-↩ps∨a⋄op←r≥2⋄fe←(r≥1)∨1⌽r=3 + tr←(⌈`↕∘≠⊸ׯ1⌽ps)⊏fe + ma←tr<(𝕩=1⊑bG)∧1⌽fe + ro←op∨a<1⌽r=3⋄os←⌽↕∘≠⊸(⊣-⌈`∘×)⌽¬ro∨ma⋄at←(⊢+1+⊏⟜os)/a + aa←g⊏asn←¯1⌽+`gi⊏-⟜(≠↑0∾⊢)(↕≠𝕩)∊at-1⋄r↩¯1¨⌾(aa⊸/)r tf←(a≤○(⌈`(1+↕∘≠)⊸×)ps)∧(⊢∧2(|<≤)ps(⊢-⌈`∘×)+`)¬ro - opa←op>1↓0∾˜ps∨a⋄os←⌽↕∘≠⊸(⊣-⌈`∘×)⌽¬ro - oa←⌽/opa⋄fa←/(tf∨¬tr)∧(ro∧1⌽opa)<(r=1)∨op<¯1⌽opa + opa←op>1↓0∾˜ps∨a + oa←⌽/opa⋄fa←/(1⌽aa)<(tf∨¬tr)∧(ro∧1⌽opa)<(r=1)∨op<¯1⌽opa dy←fa⊏1↓0∾˜(𝕩≠⊑bO)∧(tr∧r≥0)∨ro<r=0 n←𝕩≥vi+nv⋄cn←/n∨𝕩≤¯1⊑bC⋄u←⍷ob←cn⊏𝕩 lo←(o/𝕩)=4⊑bB⋄ll←1+lo/1(↓--⊸↓)(o∾1)/+`(s∾0)-(1∾o)∧ps∾1 @@ -189,9 +191,9 @@ DParse ← {nv‿r𝕊𝕩: idor←∾3⥊<is←id∾sp idbc←⟨21+is⊏asn,(id-○(⊏⟜fd)ui)∾0¨sp,ii⟩ - or←⍋idor∾g⊏˜∾⟨cn,cn,b,b,rt,dr,l,l,si,si,1+/a,oa+1⌈oa⊏os,(dy×⊏⟜os)⊸+fa+dy⟩ + or←⍋idor∾g⊏˜∾⟨cn,cn,b,b,rt,dr,l,l,si,si,at,oa+1⌈oa⊏os,(dy×⊏⟜os)⊸+fa+dy⟩ bc0←∾idbc∾⟨0¨cn,u⊐ob,15¨b,1+↕≠b⟩ - bc←or⊏bc0∾∾⟨25¨rt,14¨dr,3+¯2=l⊏r,ll,3+¯2=si⊏r,sll,(11-⊑bG)+a/𝕩,5+oa⊏r,16+dy-7×fa⊏tr⟩ + bc←or⊏bc0∾∾⟨25¨rt,14¨dr,3+l⊏aa,ll,3+si⊏aa,sll,(11-⊑bG)+a/ma+𝕩,5+oa⊏r,16+dy-7×fa⊏tr⟩ fs←(ft⊏⥊"fmd"≍⌜⌽↕2)∾¨((+`0∾1+⌊128⋆⁼1⌈bc)⊏˜/1∾or∊bc0+⟜↕○≠rt)≍○<¨(ft⊏spd)∾⟜(⥊¨↑⟜•a)¨lc ⟨LEBv bc,u,fs⟩ } diff --git a/test/bcases.bqn b/test/bcases.bqn index 1b7dfbc6..3f62caba 100644 --- a/test/bcases.bqn +++ b/test/bcases.bqn @@ -37,3 +37,7 @@ 9 % _m←˜⋄{mm←𝕩⋄×_mm 3}m -2 % F←{-𝕩}⋄{F 2} 2 % c‿d←2+⟨a,b⟩←↕2⋄⟨b‿c,a⟩↩⟨4⋄5⟩‿6⋄(b×c)-d×a +3 % x←4⋄x-↩1⋄x +5 % x←2⋄x-˜↩7⋄x +2 % a‿b←2‿0⋄a‿b+↩2⋄a÷b +-7 % x‿y←3‿4⋄x+⍟2˜↩2⋄Y↩-⋄Y x @@ -2,7 +2,7 @@ dRun ← ⟨"dRun"⟩ •EX •path∾"../cshim.bqn" c ← ∾(•LNS •path∾∾⟜"cases.bqn")¨""‿"b" -{ c ∾↩ (¬"{"⊑∘∊⊢)¨⊸/ "1 %"⊸∾¨ (3≤≠)◶0‿(('#'≠2⊸⊑)∧" "≡2⊸↑)¨⊸/ •LNS •path∾"testref.bqn" }⍟⊢(<"-ref")∊•args +{ c ∾↩ (¬":"⊑∘∊⊢)¨⊸/ "1 %"⊸∾¨ (3≤≠)◶0‿(('#'≠2⊸⊑)∧" "≡2⊸↑)¨⊸/ •LNS •path∾"testref.bqn" }⍟⊢(<"-ref")∊•args M ← {e‿b: (⍎e)⊸≢◶""‿{(•UCS 10)∾˜""""∾b∾""": expected "∾e∾" but received "∾⍕𝕩} DRun b} r ← '%' M∘((+`-2⊸×)∘=⊔⊢)¨ c • ← ("All "∾(⍕≠c)∾" passed!")⍟(0=≠) ∾r diff --git a/test/cmpref.bqn b/test/cmpref.bqn index fb02a664..029af28c 100755 --- a/test/cmpref.bqn +++ b/test/cmpref.bqn @@ -53,6 +53,6 @@ E_redef ← { # handles [fmd] [←↩] } pre ∾↩ E_isdef◶E_proc‿E_redef¨ impl -t ← (¬∘⊑'{'∊⊢)¨⊸/ 3⊸↓⌾(3⊸⊑) •LNS •path∾"testref.bqn" +t ← (¬∘⊑':'∊⊢)¨⊸/ 3⊸↓⌾(3⊸⊑) •LNS •path∾"testref.bqn" res ← DRun ∾ ∾⟜(•UCS 10)¨ pre ∾ E_proc¨ t • ← ("All "∾(⍕≠res)∾" passed!")⍟(0=≠) /res |
