diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-12-14 20:21:15 -0500 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-12-14 20:21:15 -0500 |
| commit | d4702524bc6f8279a9fe6f6739183216c07913bf (patch) | |
| tree | fc5d66563fb8f465fd286c1aba41b31265ba762b /test/cases | |
| parent | 5157ac6cb4518c152a2124c73241dc62cf19e59b (diff) | |
Move test cases to their own directory
Diffstat (limited to 'test/cases')
| -rw-r--r-- | test/cases/prim.bqn | 300 | ||||
| -rw-r--r-- | test/cases/simple.bqn | 20 | ||||
| -rw-r--r-- | test/cases/syntax.bqn | 48 |
3 files changed, 368 insertions, 0 deletions
diff --git a/test/cases/prim.bqn b/test/cases/prim.bqn new file mode 100644 index 00000000..03df0500 --- /dev/null +++ b/test/cases/prim.bqn @@ -0,0 +1,300 @@ +# Tests of primitive functionality +# Ordering matches the reference implementations + +# LAYER 0 +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 + +# LAYER 1 +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 +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 +⟨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⟩⟩ + +# LAYER 2 +⟨⟩≡⟨⟩∾"" +"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≡{𝕊⍟(×≡)⊸∾⟜⥊´𝕩}⟨2,1⟩+⟨⟨⟨⟨1,2⟩,3⟩,4⟩,5⟩ +(=¨⟜(⥊⟜(↕×´)3‿4)≡(↕4)=⌜˜4|⊢)1‿6‿8 + +# LAYER 3 +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≡≡⊑⟨-⟩ + +# LAYER 4 +≡⟜><'a' +≡⟜><∞ +≡⟜>↕5 +≡⟜>5‿3⥊2 +2‿3‿2≡≢>↕2‿3 +((4⥊2)⊸⥊≡(>2‿2⥊·<2‿2⥊⊢))"abcd" +(⊢≡>∘<)5‿3⥊↕15 +(⊢≡(><¨))5‿3⥊↕15 +(⥊≡≍)'a' +(⥊≡≍)<'a' +(1‿2⊸⥊≡≍)"ab" +1‿2≡1≍2 +2‿1(≍≡2‿2⥊∾)4‿3 +(≍⟜<≡≍˜)'a' +(≍˘˜⥊˘1‿5‿9)≡⌽⎉2⊸+⥊⟜(↕×´)3‿2‿1 +(↕4)(×⌜≡×⎉0‿2)↕5 +(↕4)(⋆˜⌜˜≡⋆⎉∞‿¯4)↕5 +(⟨2⟩⊸∾⍟(2‿2⥊0‿1‿1‿1)2‿3)≡≢¨≍⎉(⌊○=)⌜˜⟨↕3,2‿3⥊↕6⟩ +(2=⌜○↕3)≡(2‿4⥊"abc")≡⎉1(2‿3‿4⥊"abc") +⟨0,0⟩≡(2‿4⥊"abc")≡⎉¯1(2‿3‿4⥊"abc") +⟨5,⟨15,1⟩⟩≡+´⚇1⟨⟨3,2⟩,⟨⟨4,5,6⟩,⟨1⟩⟩⟩ +5‿6‿15≡∾´+´⚇1⟨⟨0,1⟩,⟨⟨⟩⟩⟩⥊⊸∾⚇¯2‿1⟨⟨2,3⟩,⟨4,5,6⟩⟩ +4≡2+⍟¯1 6 +(2×↕7)≡2+⍟(¯3+↕7)6 +(3⌊↕5)≡{i←0⋄r←{i+↩1⋄1+𝕩}⍟(↕4)𝕩⋄r∾i}0 +(+⌜˜≡·>1+⍟⊢⊢)↕5 +0‿1‿3‿6‿10≡+`↕5 +(-0‿1‿3‿6‿10)≡-`↕5 +((0∾¨↕3)≍3⥊0)≡≡`↕2‿3 +⟨⟩≡×`⟨⟩ +≡⟜(!∘0`)3‿0‿2⥊"" + +# LAYER 5 +(<'a')≡⊏"abc" +"a"≡⊏⥊˘"abc" +(<'c')≡2⊏"abc" +(<'c')≡¯1⊏"abc" +"ccc"≡2‿¯1‿2⊏"abc" +((3-˜↕5)⊸⊏≡2⊸⌽)↕5‿2 +(0‿3⥊0)≡⟨⟩⊏2‿3⥊↕6 +⟨3‿0,2‿1‿2⟩(×⟜5⊸+⌜´∘⊣≡⊏)⥊⟜(↕×´)6‿5 +(2‿0⥊0)≡⟨3‿¯1,⟨⟩⟩⊏4‿3⥊0 +5‿1(<⊸⊏≡⊏)↕6‿2 +⟨4‿0,1‿2‿3‿2‿1‿0⟩(+⌜´⊸(×⌜)≡⊏⟜(×⌜˜))+⌜˜↕5 +"abc"≡3↑"abce" +"e"≡¯1↑"abce" +""≡0↑"ab" +(<⟜3⊸×↕5)≡5↑↕3 +(6⥊0)≡¯6↑↕0 +(≍↕3)≡1↑2‿3⥊↕6 +(↑⟜4≡⥊⟜0)↕3 +(≍"abc")≡1↑2‿3↑"abcd" +(6⥊1)(↑≡⥊⟜⊑)2‿3⥊↕6 +(↕¨∘↕∘(1⊸+)≡↑∘↕)5 +(↑≡((↕4)≍¨2)⥊¨<)3‿2⥊"abcdef" +"d"≡3↓"abcd" +1‿2≡⟜(¯3⊸↓)○↕4‿2 +1‿1‿3‿2‿1≡≢(5⥊0)↓↕3‿2‿1 +(↓∘↕≡↕∘(1⊸+)+⟜⌽↑∘↕)5 +(↕3‿4)≡1↓¨⊏↕2‿3‿4 +(4+⌜○↕2)≡2↕↕5 +⟨⟩(↕≡⊢)4‿3⥊"abcd" +(0⊸↕≡(0≍˜1+≠)⊸⥊)↕6 +(7↕6‿0⥊"")≡0‿7‿0⥊"" +≡⟜⌽⟨⟩ +≡⟜⌽"a" +"ba"≡⟜⌽"ab" +(⌽≡(1-˜≠)(-○⊑∾1↓⊢)⚇1⊢)↕3‿2‿4 +≡⟜⌽↕↕3 +∧´5(⌽≡⊢)¨⟨"",⥊∞,↕5,↕0‿4,2‿0‿3⥊""⟩ +∧´("bcdea"≡⌽⟜"abcde")¨1+5ׯ10‿¯2‿¯1‿0‿1‿6‿61 +∧´⟨1,0‿2,¯1‿1‿3⟩(⊑∘⌽≡(3⊸↑)⊸⊑)⚇¯1‿∞ 2‿3‿5⥊"abcdef" +⟨⟩(⌽≡⊢)'a' +0‿4≡/1‿0‿0‿0‿1‿0 +1‿1‿2≡/0‿2‿1 +≡⟜/⟨⟩ +"aabbcc"≡2/"abc" +3‿3‿3‿2‿2‿1≡/˜3‿2‿1 +(≍1∾¨1‿2‿2)≡(↕¨/↕)2‿3 +⟨⟩(/≡⊢)≍"ab" + +# LAYER 6 +≡⟜(∾⥊¨)"abc" +(∾´≡∾)"ab"‿"cde"‿"" +1‿2‿3‿4‿6‿9≡∾(⊢×≠↑↓)1+↕3 +≡⟜∾⟨⟩ +⟨1‿4,⥊2⟩((∾⋆⌜⌜)≡⋆⌜○∾)⟨2‿3‿4,⟨⟩,⥊5⟩ +"abcd"≡"abc"∾'d' +"abcd"≡"abc"∾<'d' +(↕4‿3)≡(↕3‿3)∾3∾¨↕3 +(∾˜≡·¯1⊸(×´∘↓∾↑)∘≢⊸⥊≍˜)2‿3⥊"abcdef" +(∾´≡∾)⟨3‿2‿1,0‿2‿1⟩⥊¨<↕6 +⟨1‿2,⥊0,⥊3⟩≡⊔1‿0‿0‿2 +4‿3‿2(≍○<≡·(≠¨≍○<∾)/⊸⊔)"abcdefghi" +⟨⟩≡(3⥊¯1)⊔"abc" +(≍˘1‿1‿4<∘⥊⎉1 16‿4+⌜↕4)≡2↓⟨3‿2,¯1‿0‿¯1⟩⊔2‿3‿4⥊↕24 +⥊⚇0⊸≡○⊔⟜(⥊<)1‿2‿2‿¯1‿0 +(⊔≡·≍⍟2∘<·∾⌜´/∘(0⊸=)¨)⟨0‿¯1‿0‿0,¯1‿0‿0⟩ +2‿0‿4≡"abcd"⊐"cae" +⟨1⟩≡"abcd"⊐"b" +(<3)≡⊐⟜(3⊸⊏)"abcd" +(5⌊3+↕5)≡⊐⟜(3‿0‿0+⚇1⊢)↕5‿2‿1 +1‿0‿0‿1≡"acef"∊"adf" +(∊⟜(↕2)≡<⟜2)3⋆⌜○↕5 +(<1)≡3‿4‿5∊4+⌜○↕3 +('0'≠"11010001")≡∊"abacbacd" +(↑⟜1≡⟜∊⥊⟜∞)9 +(⥊⟜1≡∊∘↕)6 +≡⟜∊⟨⟩ +≡○∊⟜(≍˜˘)"abcadbba" +≡⟜⍷⟨⟩ +"ba"≡⍷"baa" +0‿1‿0‿0≡"abc"⍷"aabcba" +(0‿1≍0‿0)≡(1‿2≍4‿5)⍷3‿3⥊↕9 +(⌽¨≡⍉)↕2⥊3 +∧´⍉⊸≡¨⟨'a',<'a',"a","abc",""⟩ +(↕4)(-˜⌜˜≡·⍉-⌜)↕3‿2 +(2×↕3)≡0‿0⍉6+⌜○↕3 +⟨⟩(⍉≡⊢)<4 +(2‿0‿1⥊⟨⟩)≡1‿2‿0‿1⍉↕↕4 +2‿0‿3‿1‿4≡⍋"bdace" +5‿2‿4‿3‿0‿1≡⍋↓"deabb" +(⍋≡⍒)⟨"",↕0,0↑<"abc"⟩ +(⍒≡⌽∘↕∘≠)⟨¯∞,¯1.5,π,∞,'A','a','b'⟩ +(⍒≡⌽∘↕∘≠)⟨↕0,¯1.1,¯1,¯1‿¯∞,¯1‿0,¯1‿0‿0,¯1‿∞,0,6⥊0,1e¯20,1,1+1e¯15⟩ +(⍒≡⌽∘↕∘≠)(<∾⟨↕0,1,1‿1,2‿1‿1,2‿1,2,1‿2,2‿2,3⟩⥊¨<)'a' +(⍋≡↕∘≠)⥊⍉(↕5)⥊⟜1⊸⥊⌜1‿'b' +(⊢≡○⍋(0‿1+≠)⥊⊢)⟨¯2,'a',1,'f'⟩ +⟨1,2,3,1‿2,2‿1,1‿3,2‿2,3‿1⟩(⥊⊸(≠∘⊣∾˜¯1⊸⊑⊸(⌊∾⊣)∾×´⊸⌊)⌜≡○(⍋⥊)⥊⌜⟜(+`∘≠⟜(↕6)¨))↕4 +((⥊˜-⥊⟜2‿0)∘≠≡⍋+⍒)2/↕5 +"edcba"≡∨"bdace" +(↕7)≡∧⍋|⟜⌽1+↕7 +⟨1,3,∞,'e','i'⟩ (⍋≡≠∘⊣(⊣↓⊢⍋⊸⊏+`∘>)⍋∘∾) (2÷˜↕8)∾"aegz" +⟨'z','d',1‿0,0⟩ (⍒≡≠∘⊣(⊣↓⊢⍋⊸⊏+`∘>)⍒∘∾) (2÷˜↕8)∾"aegz" +(<1)≡(↕2‿3)⍋1+↕3 +(<0)≡"abc"⥊⊸⍒○<≍"acc" diff --git a/test/cases/simple.bqn b/test/cases/simple.bqn new file mode 100644 index 00000000..b460c6a9 --- /dev/null +++ b/test/cases/simple.bqn @@ -0,0 +1,20 @@ +2 % 1+1 +-2 % 1⌊-2 +-1 % -2⌊1 +1 % (÷2)+(÷3)+(÷6) +4 % ⊢4⊣5 +0 % sq←√5,⌊9×|5-sq×sq +-0.5 % ((-3)+√(3×3)-4×2×1)÷2×2 +-0.5 % a←2,b←3,c←1⋄((-b)+√(b×b)-4×a×c)÷2×a +-0.5 % b←1+a←1+c←1⋄((-b)+√(b×b)-4×a×c)÷2×a +-0.5 % b←3⋄⊢d←(b×b)-4×2×1⋄((-b)+√d)÷2×2 +6 % a←3,b←4,c←5⋄⊣s←(÷2)×a+b+c⋄√s×(s-a)×(s-b)×(s-c) +3.1415 % t←2×5⋄3+(1+(4+(1+5÷t)÷t)÷t)÷t +3.1415 % 3+(1+(4+(1+5÷10)÷10)÷10)÷10 +3 % √25-16 +0.25 % ¬15÷20 +0 % (3∧4)-¬(¬3)∨(¬4) +1 % p←¬q←÷4⋄(q∧q)+(p∨p) +109 % 105¬-3 +-0.5 % {{-3}+√{3×3}-4×2×1}÷2×2 +1 % {a←1⋄{a←2}⋄a} diff --git a/test/cases/syntax.bqn b/test/cases/syntax.bqn new file mode 100644 index 00000000..41f155ad --- /dev/null +++ b/test/cases/syntax.bqn @@ -0,0 +1,48 @@ +-4 % (⌈-)4+÷2 +3 % √5(+×-)4 +1 % 4((¬=)∧¬=1+-)6 +5 % F←-⋄2+3 +-3 % F←-⋄F 3 +3 % DiffSq←+×((-))⋄√5 DiffSq 4 +3 % F←-⌊⋄2 F-3 +3 % a←3,2 A 4 +-2 % F←G←-⋄G↩+⋄h←0⊑f∾g⋄H 2 +9 % ט-3 +1 % 3-˜4 +0.25 % 4-˜○÷2 +3 % √5-○(ט)4 +8 % _m←˜⋄+_m 4 +8 % _c_←⊸ , 4 _c_ × 2 +1 % (↕2)≡⟨0,1⟩ +1 % (↕2)≡⟨⋄0,⋄1⋄⋄⟩ +1 % l←⟨2×3⋄5⟩⋄-´l +1 % -´⟨2×3⋄5⟩ +2 % (4-⟨0,1⟩×2)⊑˜1 +16 % 3(2×+⍟(1+1))2 +-1 % f←0⊑⟨×,-⟩⋄F 2 F -4 +3 % ≠0‿1‿2 +2 % 0⊑2‿+‿-‿1 +30 % ×´(2‿(1+3)‿(×4))+1 +1 % f←2⊑(ט)‿⍟‿(×-+)⋄2 F 3 +0 % ≠⟨⟩ +1 % ⟨⟩≡0↑1‿2 +1 % {𝕩-1}2 +4 % ({𝕩×𝕩})2 +3 % 2{𝕩÷𝕨}6 +1 % {q←𝕩⋄{(q∧q)+(𝕩∨𝕩)}¬q}÷4 +-1 % (⊑⟨×⟩){𝔽}¯2 +4 % (⊑⟨×⟩){𝕩𝔽𝕩}¯2 +6 % +´(ט)‿-{𝕎𝕩}¨3 +5 % 2+⍟3-1 +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 +9 % ≠"a""""b''""c'" +2 % ⟨a⟩←{a⇐b⇐2⋄3}⋄a +6 % r‿q←{q‿r⇐⋄q←1+r←2}⋄r×q +4 % c←0⋄⟨a,b⟩←{b⇐1⋄a⇐2}⋄⟨b,c⟩↩{a‿b‿c⇐3+↕3}⋄b +10 % r‿s←{r‿q←{q⇐1+r⇐2}⋄s⇐5⋄r⇐}⋄r×s |
