From dc02dd3542a75861bf0bd3d7ddb53903b28c0225 Mon Sep 17 00:00:00 2001 From: AlephAlpha Date: Tue, 24 Oct 2023 10:46:11 +0800 Subject: [PATCH] :dodo: more test cases --- analysis/corpus.txt | 8 +++ analysis/freq_1gram.txt | 86 ++++++++++++++++---------------- analysis/freq_2gram.txt | 58 ++++++++++++++++------ analysis/freq_3gram.txt | 36 ++++++++++++++ analysis/freq_4gram.txt | 29 +++++++++++ analysis/freq_5gram.txt | 24 +++++++++ analysis/particles.txt | 12 ++--- src/Nekomata/Parser/Data.hs | 3 +- src/Nekomata/Parser/Program.hs | 2 +- test/Eval.hs | 90 ++++++++++++++++++++++++++++++++++ 10 files changed, 283 insertions(+), 65 deletions(-) diff --git a/analysis/corpus.txt b/analysis/corpus.txt index d70f7e0..01fef09 100644 --- a/analysis/corpus.txt +++ b/analysis/corpus.txt @@ -61,6 +61,8 @@ R~Q ĉ~ĭ+↔aj sNP çĉl∑ +ᵐ∙ +ᵐ*ᵐ∑ Ṁ←ɔ:ṁĨĦ+ ᵒ%ᵐ∏¬x∙ ᶠ{$~¦}∑ @@ -86,6 +88,7 @@ R∫$Ĩ ᵐ~ *5*4ŋ≈√ ᵒ+→Ö +Ɗ¦ů QƥQ Ď∏ O @@ -107,6 +110,7 @@ R:∙ 258Ɗ+12%→ 12Rᶠ{-Z3¦ RË3÷ +ᵗ{±1Ĩ$BaOđᵒ{≈∑Ƶ Ë:ᵒ&Þ£E ŋ∑ũ ĉᵐ∫j @@ -128,6 +132,7 @@ oĭu= ĭ= pNĉ# SƆ$đ+< +≠;sᵃN,= µkH /K* RRᵐ↔ @@ -161,6 +166,7 @@ ux→=∕$p= ƊsC↔~cɗ- ¢Bx¢E$y↔∫ Jᵖ{ix→ᶻL +Uˡ{Ťj ĭ:Ĭ çç+ 5Ƃ× @@ -174,6 +180,7 @@ V Øᶦ{Sa ᶠ{+ä∩z O2ᵚL +↕;= ↕ƀ= p:ƀᵃᶜt$,,= J≡ @@ -282,3 +289,4 @@ Jĭ?∑haṀ ᶦ{Ƃ2ŗɔƃ3M ĎSᵉti¦ Jᵐ{x:ᵒ≈>~}aş# +→r$ÇƆ/←ŗ0ɔ$ᵑ∆ diff --git a/analysis/freq_1gram.txt b/analysis/freq_1gram.txt index 86aa4a3..c7edc66 100644 --- a/analysis/freq_1gram.txt +++ b/analysis/freq_1gram.txt @@ -1,144 +1,147 @@ -{ : 64 +{ : 67 +$ : 48 : : 45 -$ : 45 -∑ : 37 +∑ : 39 += : 38 + : 36 -= : 36 -ᵐ : 29 -← : 28 +ᵐ : 32 +← : 29 +→ : 28 R : 28 -→ : 27 -* : 26 +* : 27 } : 26 -a : 24 +a : 25 - : 23 -1 : 21 +1 : 22 +j : 21 ᵉ : 20 ç : 20 -j : 20 x : 20 -, : 18 +, : 19 +ᵒ : 18 o : 18 ↔ : 18 # : 17 u : 17 -ᵒ : 17 2 : 17 3 : 16 p : 16 ~ : 16 +↕ : 15 ĭ : 15 l : 15 ᵖ : 15 Ṁ : 15 -↕ : 14 Ƃ : 14 S : 13 +đ : 13 ∫ : 13 t : 13 Ň : 13 Ð : 13 ᶦ : 12 +N : 12 ½ : 12 -đ : 12 +Ɔ : 12 +ᵑ : 12 +Ɗ : 12 +; : 12 J : 11 -N : 11 Q : 11 +Ť : 11 ᶻ : 11 ≡ : 11 -Ɔ : 11 Z : 11 -ᵑ : 11 -Ɗ : 11 ĉ : 11 _ : 11 L : 11 " : 10 < : 10 -Ť : 10 +ᵃ : 10 ? : 10 Ë : 10 -; : 10 ∏ : 10 ʷ : 9 z : 9 +ˡ : 9 Ţ : 9 -ᵃ : 9 +r : 9 ŋ : 9 ᵚ : 9 ᶠ : 9 ṁ : 9 +± : 9 P : 8 ᶜ : 8 +ᵗ : 8 ũ : 8 -ˡ : 8 × : 8 ¬ : 8 -r : 8 E : 8 ž : 8 ≥ : 8 ‼ : 8 c : 8 % : 8 +ŗ : 8 ƒ : 8 +Ĩ : 8 C : 8 -± : 8 +∆ : 8 q : 7 -ᵗ : 7 f : 7 +ů : 7 £ : 7 +/ : 7 ɗ : 7 -ŗ : 7 Ĉ : 7 -Ĩ : 7 +∙ : 7 ä : 7 4 : 7 -∆ : 7 +≈ : 7 +O : 7 @ : 7 +Ƶ : 6 ᵏ : 6 ƃ : 6 -ů : 6 ∕ : 6 Ä : 6 -/ : 6 Ø : 6 +¦ : 6 ş : 6 -∙ : 6 -≈ : 6 -O : 6 i : 6 +B : 6 ∩ : 6 Ř : 6 į : 6 ¢ : 6 ƀ : 5 -Ƶ : 5 y : 5 Ö : 5 d : 5 Ď : 5 ≤ : 5 +Ç : 5 Ĭ : 5 -¦ : 5 +ɔ : 5 µ : 5 ¿ : 5 h : 5 8 : 5 √ : 5 5 : 5 -B : 5 +0 : 5 b : 5 I : 4 H : 4 -Ç : 4 ŧ : 4 ʳ : 4 +U : 4 G : 4 k : 4 F : 4 ƥ : 4 -ɔ : 4 +s : 4 ĕ : 4 M : 4 > : 4 @@ -147,21 +150,19 @@ M : 4 ˣ : 4 ᵈ : 4 ň : 4 -0 : 4 ᵋ : 4 A : 4 ĝ : 3 Ṃ : 3 ř : 3 -U : 3 Y : 3 T : 3 -s : 3 Ħ : 3 D : 3 7 : 3 ƶ : 3 & : 3 +≠ : 3 ï : 3 Ṗ : 3 v : 3 @@ -174,7 +175,6 @@ K : 2 6 : 2 m : 2 ' : 2 -≠ : 2 ¥ : 2 Ĝ : 1 e : 1 diff --git a/analysis/freq_2gram.txt b/analysis/freq_2gram.txt index 3118367..9372fae 100644 --- a/analysis/freq_2gram.txt +++ b/analysis/freq_2gram.txt @@ -1,10 +1,10 @@ ᶦ{ : 11 ᵖ{ : 9 ʷ{ : 7 +ˡ{ : 7 ᵑ{ : 7 ᶠ{ : 7 {$ : 6 -ˡ{ : 6 Jᵐ : 5 {: : 5 :ᵒ : 5 @@ -12,7 +12,10 @@ Jᵐ : 5 -¬ : 4 Ɔž : 4 aṀ : 4 +ᵐ∑ : 4 +1Ĩ : 4 ᵏ{ : 4 +ᵒ{ : 4 Ňᵖ : 4 }a : 4 aş : 4 @@ -28,8 +31,10 @@ u∕ : 3 £E : 3 ∫Ɔ : 3 ž≥ : 3 +$ᵑ : 3 ?} : 3 1c : 3 +→r : 3 Ňŧ : 3 Rᶠ : 3 1% : 3 @@ -37,10 +42,10 @@ Rᶠ : 3 ᵒ+ : 3 :← : 3 đ+ : 3 -1Ĩ : 3 R: : 3 :∙ : 3 2R : 3 +$B : 3 xŘ : 3 -_ : 3 u# : 3 @@ -48,9 +53,7 @@ u# : 3 pN : 3 {ˣ : 3 {į : 3 -ᵐ∑ : 3 ↕ũ : 3 -ᵒ{ : 3 x: : 3 +} : 3 *$ : 3 @@ -79,16 +82,15 @@ pƆ : 2 p= : 2 al : 2 Z‼ : 2 +$Ç : 2 →/ : 2 çƆ : 2 -$ᵑ : 2 {ᵉ : 2 }Ø : 2 Ø= : 2 ŧ← : 2 Ɗj : 2 cɗ : 2 -→r : 2 2ᵚ : 2 ʳ× : 2 Y$ : 2 @@ -111,6 +113,7 @@ R~ : 2 ĉ~ : 2 +↔ : 2 aj : 2 +ᵐ∙ : 2 Ṁ← : 2 ᵐ∏ : 2 }∑ : 2 @@ -128,6 +131,7 @@ Qƥ : 2 +1 : 2 12 : 2 {- : 2 +{≈ : 2 Ë: : 2 ᵒ& : 2 &Þ : 2 @@ -137,12 +141,14 @@ Sđ : 2 ∩z : 2 ᵐj : 2 ;$ : 2 +N, : 2 ½$ : 2 oĉ : 2 oĭ : 2 ĉ# : 2 Ɔ$ : 2 $đ : 2 +,= : 2 ∑ä : 2 ᵖf : 2 _= : 2 @@ -160,6 +166,7 @@ x→ : 2 →= : 2 ¢B : 2 $y : 2 +{Ť : 2 4* : 2 2÷ : 2 :u : 2 @@ -184,11 +191,11 @@ ut : 2 ŋ+ : 2 {ᵈ : 2 }- : 2 -$B : 2 $L : 2 →ᵉ : 2 RS : 2 += : 2 +ɔ$ : 2 3~ : 2 ~ᵑ : 2 ᵋ∩ : 2 @@ -248,7 +255,6 @@ E∫ : 1 pZ : 1 ‼l : 1 Ä$ : 1 -$Ç : 1 Ç$ : 1 $→ : 1 Äř : 1 @@ -337,6 +343,8 @@ NP : 1 çĉ : 1 ĉl : 1 l∑ : 1 +ᵐ* : 1 +*ᵐ : 1 ←ɔ : 1 ɔ: : 1 :ṁ : 1 @@ -406,6 +414,8 @@ R∫ : 1 ŋ≈ : 1 ≈√ : 1 →Ö : 1 +Ɗ¦ : 1 +¦ů : 1 ƥQ : 1 Ď∏ : 1 Ɔᵗ : 1 @@ -452,6 +462,16 @@ Z3 : 1 RË : 1 Ë3 : 1 3÷ : 1 +ᵗ{ : 1 +{± : 1 +±1 : 1 +Ĩ$ : 1 +Ba : 1 +aO : 1 +Ođ : 1 +đᵒ : 1 +≈∑ : 1 +∑Ƶ : 1 Þ£ : 1 ŋ∑ : 1 ∑ũ : 1 @@ -466,7 +486,6 @@ S: : 1 z¿ : 1 ¿ᵐ : 1 $N : 1 -N, : 1 Ř↔ : 1 {Z : 1 Z: : 1 @@ -500,6 +519,10 @@ u= : 1 Nĉ : 1 SƆ : 1 +< : 1 +≠; : 1 +;s : 1 +sᵃ : 1 +ᵃN : 1 µk : 1 kH : 1 /K : 1 @@ -549,7 +572,6 @@ $Ð : 1 8ᵚ : 1 ᵚ~ : 1 ~ᵖ : 1 -{≈ : 1 ≈← : 1 ←ň : 1 ň‼ : 1 @@ -594,6 +616,8 @@ Jᵖ : 1 {i : 1 ix : 1 →ᶻ : 1 +Uˡ : 1 +Ťj : 1 ĭ: : 1 çç : 1 ç+ : 1 @@ -629,6 +653,8 @@ Sa : 1 ä∩ : 1 O2 : 1 ᵚL : 1 +↕; : 1 +;= : 1 ↕ƀ : 1 p: : 1 :ƀ : 1 @@ -636,7 +662,6 @@ p: : 1 ᵃᶜ : 1 t$ : 1 $, : 1 -,= : 1 J≡ : 1 Ë← : 1 ←Q : 1 @@ -796,7 +821,6 @@ L: : 1 :: : 1 ∙√ : 1 √ɔ : 1 -ɔ$ : 1 $≤ : 1 q£ : 1 E→ : 1 @@ -988,7 +1012,6 @@ _∏ : 1 _ä : 1 Oᵖ : 1 ᵖᵐ : 1 -{Ť : 1 đṁ : 1 ṁ< : 1 <} : 1 @@ -1069,7 +1092,6 @@ xᵒ : 1 :§ : 1 §# : 1 ˣᵐ : 1 -ᵐ∙ : 1 ∙+ : 1 }± : 1 ±≈ : 1 @@ -1178,3 +1200,11 @@ i¦ : 1 >~ : 1 ~} : 1 ş# : 1 +r$ : 1 +ÇƆ : 1 +Ɔ/ : 1 +/← : 1 +←ŗ : 1 +ŗ0 : 1 +0ɔ : 1 +ᵑ∆ : 1 diff --git a/analysis/freq_3gram.txt b/analysis/freq_3gram.txt index 1308762..c323487 100644 --- a/analysis/freq_3gram.txt +++ b/analysis/freq_3gram.txt @@ -195,6 +195,8 @@ R~Q : 1 sNP : 1 çĉl : 1 ĉl∑ : 1 +ᵐ*ᵐ : 1 +*ᵐ∑ : 1 Ṁ←ɔ : 1 ←ɔ: : 1 ɔ:ṁ : 1 @@ -257,6 +259,7 @@ R∫$ : 1 ŋ≈√ : 1 ᵒ+→ : 1 +→Ö : 1 +Ɗ¦ů : 1 QƥQ : 1 pƆᵗ : 1 Ɔᵗf : 1 @@ -306,6 +309,19 @@ $∑= : 1 Z3¦ : 1 RË3 : 1 Ë3÷ : 1 +ᵗ{± : 1 +{±1 : 1 +±1Ĩ : 1 +1Ĩ$ : 1 +Ĩ$B : 1 +$Ba : 1 +BaO : 1 +aOđ : 1 +Ođᵒ : 1 +đᵒ{ : 1 +ᵒ{≈ : 1 +{≈∑ : 1 +≈∑Ƶ : 1 &Þ£ : 1 Þ£E : 1 ŋ∑ũ : 1 @@ -359,6 +375,11 @@ pNĉ : 1 Nĉ# : 1 SƆ$ : 1 đ+< : 1 +≠;s : 1 +;sᵃ : 1 +sᵃN : 1 +ᵃN, : 1 +N,= : 1 µkH : 1 /K* : 1 RRᵐ : 1 @@ -461,6 +482,9 @@ Jᵖ{ : 1 ix→ : 1 x→ᶻ : 1 →ᶻL : 1 +Uˡ{ : 1 +ˡ{Ť : 1 +{Ťj : 1 ĭ:Ĭ : 1 çç+ : 1 5Ƃ× : 1 @@ -502,6 +526,7 @@ m2Ĩ : 1 ä∩z : 1 O2ᵚ : 1 2ᵚL : 1 +↕;= : 1 ↕ƀ= : 1 p:ƀ : 1 :ƀᵃ : 1 @@ -1160,3 +1185,14 @@ ti¦ : 1 >~} : 1 ~}a : 1 aş# : 1 +→r$ : 1 +r$Ç : 1 +$ÇƆ : 1 +ÇƆ/ : 1 +Ɔ/← : 1 +/←ŗ : 1 +←ŗ0 : 1 +ŗ0ɔ : 1 +0ɔ$ : 1 +ɔ$ᵑ : 1 +$ᵑ∆ : 1 diff --git a/analysis/freq_4gram.txt b/analysis/freq_4gram.txt index 1230f02..375b943 100644 --- a/analysis/freq_4gram.txt +++ b/analysis/freq_4gram.txt @@ -134,6 +134,7 @@ tᶻ-∑ : 1 ĭ+↔a : 1 +↔aj : 1 çĉl∑ : 1 +ᵐ*ᵐ∑ : 1 Ṁ←ɔ: : 1 ←ɔ:ṁ : 1 ɔ:ṁĨ : 1 @@ -209,6 +210,18 @@ Rᶠ{- : 1 {-Z3 : 1 -Z3¦ : 1 RË3÷ : 1 +ᵗ{±1 : 1 +{±1Ĩ : 1 +±1Ĩ$ : 1 +1Ĩ$B : 1 +Ĩ$Ba : 1 +$BaO : 1 +BaOđ : 1 +aOđᵒ : 1 +Ođᵒ{ : 1 +đᵒ{≈ : 1 +ᵒ{≈∑ : 1 +{≈∑Ƶ : 1 ᵒ&Þ£ : 1 &Þ£E : 1 ĉᵐ∫j : 1 @@ -247,6 +260,10 @@ oĭu= : 1 pNĉ# : 1 SƆ$đ : 1 $đ+< : 1 +≠;sᵃ : 1 +;sᵃN : 1 +sᵃN, : 1 +ᵃN,= : 1 RRᵐ↔ : 1 RpN↔ : 1 ∆$i≥ : 1 @@ -321,6 +338,8 @@ Jᵖ{i : 1 {ix→ : 1 ix→ᶻ : 1 x→ᶻL : 1 +Uˡ{Ť : 1 +ˡ{Ťj : 1 2R:4 : 1 R:4* : 1 :4*Ð : 1 @@ -943,3 +962,13 @@ x:ᵒ≈ : 1 >~}a : 1 ~}aş : 1 }aş# : 1 +→r$Ç : 1 +r$ÇƆ : 1 +$ÇƆ/ : 1 +ÇƆ/← : 1 +Ɔ/←ŗ : 1 +/←ŗ0 : 1 +←ŗ0ɔ : 1 +ŗ0ɔ$ : 1 +0ɔ$ᵑ : 1 +ɔ$ᵑ∆ : 1 diff --git a/analysis/freq_5gram.txt b/analysis/freq_5gram.txt index 992537e..7cb3cf3 100644 --- a/analysis/freq_5gram.txt +++ b/analysis/freq_5gram.txt @@ -139,6 +139,17 @@ C4+>‼ : 1 Rᶠ{-Z : 1 ᶠ{-Z3 : 1 {-Z3¦ : 1 +ᵗ{±1Ĩ : 1 +{±1Ĩ$ : 1 +±1Ĩ$B : 1 +1Ĩ$Ba : 1 +Ĩ$BaO : 1 +$BaOđ : 1 +BaOđᵒ : 1 +aOđᵒ{ : 1 +Ođᵒ{≈ : 1 +đᵒ{≈∑ : 1 +ᵒ{≈∑Ƶ : 1 :ᵒ&Þ£ : 1 ᵒ&Þ£E : 1 Sđ*aŢ : 1 @@ -165,6 +176,9 @@ jĭÐɗ$ : 1 ĭÐɗ$Ĩ : 1 SƆ$đ+ : 1 Ɔ$đ+< : 1 +≠;sᵃN : 1 +;sᵃN, : 1 +sᵃN,= : 1 ïƊj1Ĉ : 1 ᵉᵑ{ˣ∙ : 1 ᵑ{ˣ∙ɔ : 1 @@ -219,6 +233,7 @@ Jᵖ{ix : 1 ᵖ{ix→ : 1 {ix→ᶻ : 1 ix→ᶻL : 1 +Uˡ{Ťj : 1 2R:4* : 1 R:4*Ð : 1 :4*Ð× : 1 @@ -741,3 +756,12 @@ x:ᵒ≈> : 1 ≈>~}a : 1 >~}aş : 1 ~}aş# : 1 +→r$ÇƆ : 1 +r$ÇƆ/ : 1 +$ÇƆ/← : 1 +ÇƆ/←ŗ : 1 +Ɔ/←ŗ0 : 1 +/←ŗ0ɔ : 1 +←ŗ0ɔ$ : 1 +ŗ0ɔ$ᵑ : 1 +0ɔ$ᵑ∆ : 1 diff --git a/analysis/particles.txt b/analysis/particles.txt index ce5d716..efd5195 100644 --- a/analysis/particles.txt +++ b/analysis/particles.txt @@ -1,21 +1,21 @@ particle : with "{" / total ᵈ : 0 / 4 ʳ : 0 / 4 -ᵗ : 0 / 7 ˣ : 0 / 4 ᶻ : 0 / 11 ᶾ : 0 / 1 ᵉ : 1 / 20 ᵚ : 1 / 9 ᶜ : 1 / 8 -ᵐ : 4 / 29 -ᵒ : 3 / 17 -ᵃ : 2 / 9 +ᵐ : 4 / 32 +ᵗ : 1 / 8 +ᵃ : 2 / 10 +ᵒ : 4 / 18 ᵋ : 1 / 4 +ᵑ : 7 / 12 ᵖ : 9 / 15 -ᵑ : 7 / 11 ᵏ : 4 / 6 -ˡ : 6 / 8 ᶠ : 7 / 9 +ˡ : 7 / 9 ʷ : 7 / 9 ᶦ : 11 / 12 diff --git a/src/Nekomata/Parser/Data.hs b/src/Nekomata/Parser/Data.hs index 19e5ab4..ca73d34 100644 --- a/src/Nekomata/Parser/Data.hs +++ b/src/Nekomata/Parser/Data.hs @@ -94,7 +94,7 @@ parseData = ] "Nekomata data" --- | Parse a Nekomata data +-- | Parse a Nekomata data literal in a program parseData' :: Parser Data parseData' = choice @@ -105,6 +105,7 @@ parseData' = ] "Nekomata data" +-- | Parse a Nekomata input parseInput :: Parser [Data] parseInput = parseData diff --git a/src/Nekomata/Parser/Program.hs b/src/Nekomata/Parser/Program.hs index 508c4c1..a57c889 100644 --- a/src/Nekomata/Parser/Program.hs +++ b/src/Nekomata/Parser/Program.hs @@ -72,7 +72,7 @@ parseTerm = ] "Nekomata term" --- | Parse a Nekomata program +-- | Parse a Nekomata code block parseBlock :: Parser Program parseBlock = Program <$> parseTerm `endBy` spaces "Nekomata block" diff --git a/test/Eval.hs b/test/Eval.hs index 9f03b76..4a52e1b 100644 --- a/test/Eval.hs +++ b/test/Eval.hs @@ -709,6 +709,19 @@ testEval = describe "Evaluation" $ do , ("[0,0,1,1,1]", all_ ["3"]) , ("[1,1,1,1,1,1]", all_ ["6"]) ] + describe "q100205: Do Matrix Multiplication!" $ do + specEval + "ᵐ∙" + [ ("[[1,2],[3,4],[5,6]] [[1,2,3,4,5],[6,7,8,9,10]]", all_ ["[[13,16,19,22,25],[27,34,41,48,55],[41,52,63,74,85]]"]) + , ("[[2,3],[3,4]] [[3,5],[3,1]]", all_ ["[[15,13],[21,19]]"]) + , ("[[5,3],[1,3],[9,3],[1,-1000]] [[1,3],[2,4]]", all_ ["[[11,27],[7,15],[15,39],[-1999,-3997]]"]) + ] + specEval + "ᵐ*ᵐ∑" + [ ("[[1,2],[3,4],[5,6]] [[1,2,3,4,5],[6,7,8,9,10]]", all_ ["[[13,16,19,22,25],[27,34,41,48,55],[41,52,63,74,85]]"]) + , ("[[2,3],[3,4]] [[3,5],[3,1]]", all_ ["[[15,13],[21,19]]"]) + , ("[[5,3],[1,3],[9,3],[1,-1000]] [[1,3],[2,4]]", all_ ["[[11,27],[7,15],[15,39],[-1999,-3997]]"]) + ] describe "q101389: Increment an Array" $ do specEval "Ṁ←ɔ:ṁĨĦ+" @@ -977,6 +990,15 @@ testEval = describe "Evaluation" $ do , ("3", all_ ["[[1,0,1],[0,1,0],[1,0,1]]"]) , ("4", all_ ["[[1,0,1,0],[0,1,0,1],[1,0,1,0],[0,1,0,1]]"]) ] + describe "q129773: Is it a Lynch-Bell number?" $ do + specEval + "Ɗ¦ů" + [ ("7", Check True) + , ("126", Check True) + , ("54", Check False) + , ("55", Check False) + , ("3915", Check True) + ] describe "q130390: Is it a super-prime?" $ do specEval "QƥQ" @@ -1209,6 +1231,17 @@ testEval = describe "Evaluation" $ do [ ("1", all_ ["[0]"]) , ("18", all_ ["[0,1,2,5,10,21,42,85,170,341,682,1365,2730,5461,10922,21845,43690,87381]"]) ] + describe "q154363: Check if all non-zero elements in a matrix are connected" $ do + specEval + "ᵗ{±1Ĩ$BaOđᵒ{≈∑Ƶ" + [ ("[0] 1", Check True) + , ("[0,0] 2", Check True) + , ("[1,1,1,0,0,0] 3", Check True) + , ("[1,0,0,1,1,1,0,0,1] 3", Check True) + , ("[0,1,1,0] 2", Check False) + , ("[1,1,1,0,0,0,0,2,0,0,0,5] 4", Check False) + , ("[0,0,5,2,1,2,0,0,5,3,2,1,5,7,3,2] 4", Check False) + ] describe "q162254: Generate a Walsh Matrix" $ do specEval "Ë:ᵒ&Þ£E" @@ -1440,6 +1473,22 @@ testEval = describe "Evaluation" $ do , ("[12,23,34,45,56,67,78,89]", Count 34) , ("[1,2,3,4,5,6,7,8,9,10]", Count 50) ] + describe "q194929: Is it a circumfix?" $ do + specEval + "≠;sᵃN,=" + [ ("\"apply\" \"appreciably\"", Check True) + , ("\"rake\" \"racket by the lake\"", Check True) + , ("\"bring\" \"brought him a gong\"", Check False) + , ("\"falcon\" \"false conundrum\"", Check False) + , ("\"pale\" \"pale ale\"", Check True) + , ("\"b\" \"barb\"", Check False) + , ("\"abba\" \"aba\"", Check False) + , ("\"friend\" \"friend\"", Check False) + , ("\"\" \"\"", Check False) + , ("\"Twin Sister\" \"Twister\"", Check False) + , ("\"case\" \"Castle\"", Check False) + , ("\"<<@ 23|>\" \"<<@23??|> 23|>\"", Check True) + ] describe "q195592: Average Two Letters" $ do specEval "µkH" @@ -1802,6 +1851,22 @@ testEval = describe "Evaluation" $ do , ("[10,20,30,40]", first_ "[[10],[20,30],[40]]") , ("[100,200,300,400,500]", first_ "[[100],[200,300],[400,500]]") ] + describe "q241156: Array depth of a ragged list" $ do + specEval + "Uˡ{Ťj" + [ ("[1]", all_ ["1"]) + , ("[1,2,3]", all_ ["1"]) + , ("[[1,2,3]]", all_ ["2"]) + , ("[3,[3,[3],3],3]", all_ ["1"]) + , ("[[[[1],2],[3,[4]]]]", all_ ["3"]) + , ("[[1,2,3],[4,5,6]]", all_ ["2"]) + , ("[[1,2,[3]],[4,[5],[6,[7]]]]", all_ ["2"]) + , ("[[1,2],[3,4,5],[6,7,8,9]]", all_ ["1"]) + , ("[[[1,2]],[[3,4],[5,6]]]", all_ ["1"]) + , ("[[1,[2]],[[[3]],[[[4]]]]]", all_ ["2"]) + , ("[[[1],[2]],[[3,4],[5,6]]]", all_ ["2"]) + , ("[[[[[[[3]]]]]]]", all_ ["7"]) + ] describe "q241267: Remove odd indices and double the even indices" $ do specEval "ĭ:Ĭ" @@ -1933,6 +1998,17 @@ testEval = describe "Evaluation" $ do [ ("2", all_ ["[[0,1]]"]) , ("4", all_ ["[[2,3],[0,1]]", "[[1,3],[0,2]]", "[[0,3],[1,2]]"]) ] + describe "q250213: Generate an arbitrary half of a string" $ do + specEval + "↕;=" + [ ("\"aaaabbbb\"", first_ "aabb") + , ("\"abab\"", first_ "ab") + , ("\"aabbaa\"", first_ "aab") + , ("\"aabbaaaa\"", first_ "aaba") + , ("\"baccba\"", first_ "bac") + , ("\"aabbcc\"", first_ "abc") + , ("\"abcabc\"", first_ "abc") + ] describe "q250283: Rearrange to a palindrome" $ do specEval "↕ƀ=" @@ -3065,3 +3141,17 @@ testEval = describe "Evaluation" $ do , ("[5,1,3,1,3,1,1,1,6] 1", first_ "2") , ("[4,1,1,3,1,1] 1", first_ "2") ] + describe "q266185: Expected number of rounds for this labeling scheme" $ do + specEval + "→r$ÇƆ/←ŗ0ɔ$ᵑ∆" + [ ("1 1", all_ ["[1]"]) + , ("4 2", all_ ["[19/5]"]) + , ("6 2", all_ ["[97/14]"]) + , ("7 4", all_ ["[257/68]"]) + , ("7 7", all_ ["[1]"]) + , ("8 1", all_ ["[761/35]"]) + , ("8 5", all_ ["[951/275]"]) + , ("10 3", all_ ["[8241679/911064]"]) + , ("12 7", all_ ["[69968/16611]"]) + , ("20 2", all_ ["[645315821032049/18278449721532]"]) + ]