diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-06-30 19:30:58 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-06-30 19:31:21 -0400 |
| commit | 723f6a92c6af9a46dfbd066fb18e014868bd6487 (patch) | |
| tree | 685420c8757ecfe143b68cae8362b5a0acab3a93 | |
| parent | 5cfbc5909bd33b5927f7b1fdb44944819563a385 (diff) | |
Tests for layer 4; fix β with non-matching depths
| -rwxr-xr-x | spec/dzref | 17 | ||||
| -rw-r--r-- | spec/reference.bqn | 7 | ||||
| -rw-r--r-- | test/testref.bqn | 46 |
3 files changed, 46 insertions, 24 deletions
@@ -4,7 +4,6 @@ impl β "βΆ β {π¨((π¨π½π©)βπ){π½}π©} β β ββ(Γ·2) β (ββΓ·Λ) β§ β Γ β¨ β (+-Γ) -> β (Β¬β€) | β ΓβΓ β {π©-π¨Γβπ©Γ·π¨} _eachmβ{ @@ -90,16 +89,13 @@ DropVβ {ββπ©Β¨π¨+βπ¨-Λβ π©} Cell β DropVββ’ Pair β {β¨π©β©} β {β¨π¨,π©β©} -Unboxβ(0<β ββ₯)βΆβ’βΏ{ - cββ’βπ© - ! β§Β΄β₯(cβ‘β’)Β¨π© - π©ββToArrayΛββc -} -> β© Unbox β > _ranks β {β¨2β©ββ¨1,0β©((β£-1+|)Λββ βΒ¨<ββ’)β₯βπ½} _depthOp_β{ negβ0>nβπ¨πΎ_ranksπ© β Fβπ½ - _dβ{π¨(β§Β΄(negβ§πβ₯0)β¨(0βπ)β₯Pairββ‘)βΆβ¨(π+neg)_dΒ¨βFβ©π©} + _dβ{ + Rβ(π+neg)_d + π¨(2β₯(negβ§πβ₯0)β¨(0βπ)β₯Pairββ‘)βΆ(β¨RΒ¨βRβπ©Β¨ββ£β©ββ¨(π¨Rβ’)Β¨ββ’βFβ©)π© + } π¨ n _d π© } β β _depthOp_ @@ -125,7 +121,7 @@ _scanβ{ ` β _scan _iterate_β{ nβπ¨πΎπ© - Fβπ¨(0β1)βΆβ¨π½,π¨π½β’β©β’ + fββπ¨β¨π½β©ββ¨π¨π½β’β©π© lβuβ0 {!Intπ©βlβ©lβπ©βuβ©uβπ©}β0 n aβπ©β_pβ{π½ββ£`(1+π©)β₯<a} @@ -133,7 +129,6 @@ _iterate_β{ (|β<β0βposβΏnegΛ)β0 n } -β β >βPair β β _rankOp_ β β _iterate_ Λ β βΒ―1 @@ -319,7 +314,7 @@ ProgressiveIndexOf β {π¨ββ(βΛβOccurrenceCountπ¨βΈβ)π©} { names β β₯"AB"βΎββ’a - f_chr β "!ββ§β¨|>β‘βΎβββββ½β/ββββββββ·β" + f_chr β "!ββ§β¨|β‘βΎββββ½β/ββββββββ·β" m_chr β "ΛΒ¨βΒ΄`" d_chr β "βΎββββΆ" diff --git a/spec/reference.bqn b/spec/reference.bqn index 6ecf59d3..5a6ab5ab 100644 --- a/spec/reference.bqn +++ b/spec/reference.bqn @@ -196,7 +196,10 @@ Unboxβ(0<β ββ₯)βΆβ’βΏ{ _ranks β {β¨2β©ββ¨1,0β©((β£-1+|)Λββ βΒ¨<ββ’)β₯βπ½} _depthOp_β{ negβ0>nβπ¨πΎ_ranksπ© β Fβπ½ - _dβ{π¨(β§Β΄(negβ§πβ₯0)β¨(0βπ)β₯Pairββ‘)βΆβ¨(π+neg)_dΒ¨βFβ©π©} + _dβ{ + Rβ(π+neg)_d + π¨(2β₯(negβ§πβ₯0)β¨(0βπ)β₯Pairββ‘)βΆ(β¨RΒ¨βRβπ©Β¨ββ£β©ββ¨(π¨Rβ’)Β¨ββ’βFβ©)π© + } π¨ n _d π© } _rankOp_β{ @@ -220,7 +223,7 @@ _scanβ{ } _iterate_β{ nβπ¨πΎπ© - Fβπ¨(0β1)βΆβ¨π½,π¨π½β’β©β’ + fββπ¨β¨π½β©ββ¨π¨π½β’β©π© lβuβ0 {!Intπ©βlβ©lβπ©βuβ©uβπ©}β0 n aβπ©β_pβ{π½ββ£`(1+π©)β₯<a} diff --git a/test/testref.bqn b/test/testref.bqn index 066ca277..bedfbfe0 100644 --- a/test/testref.bqn +++ b/test/testref.bqn @@ -1,8 +1,7 @@ β Tests of primitive functionality β Ordering matches the reference implementations -β’β/Β¬βΎΒ΄β¨ -{β¨ +β’β/Β¬β¨ β LAYER 0 β [0,34) 0β‘Β―2+2 @@ -39,9 +38,7 @@ β¨β©β‘β0 β¨0β©β‘β1 β¨0,1,2,3,4,5,6β©β‘β7 -β©β£π©}β1 34β₯1 -{β¨ β LAYER 1 β [34,56) 3β‘4>βΆ+βΏ-1 @@ -77,8 +74,6 @@ 1β‘Β¬0 2⑬¯1 0β‘3Β¬4 -β©β£π©}β1 32β₯1 -{β¨ 2β‘4Β¬3 4β‘5Β¬2 0β‘|0 @@ -118,9 +113,7 @@ (2βΈββ‘β’Β΄)"a"βΏ2βΏ(3βΏ"d") 2(β£β‘β’Β΄)"a"βΏ2βΏ(3βΏ"d") 7βΏ10β‘+¨´β¨β¨2,3β©,β¨5,7β©β© -β©β£π©}β1 38β₯1 -{β¨ β LAYER 2 β [104,117) β¨β©β‘β¨β©βΎ"" @@ -136,9 +129,7 @@ 3(+Β¨β‘+β)β6 3βΏ4βΏ5βΏ6βΏ6β‘{F:Fβ(Γβ‘)βΈβΎββ₯Β΄π©}β¨2,1β©+β¨β¨β¨β¨1,2β©,3β©,4β©,5β© (=Β¨β(β₯β(βΓΒ΄)3βΏ4)β‘(β4)=βΛ4|β’)1βΏ6βΏ8 -β©β£π©}β1 13β₯1 -{β¨ β LAYER 3 β [117,152) 2β‘ββ¨2β© @@ -176,5 +167,38 @@ (1Β¨β‘-ββ‘ΛββΒ¨)β¨0,β¨β©,β¨1β©,2,β¨3,4β©β© 2β‘β‘β¨5,β¨'c',+,2β©β© 0β‘β‘ββ¨-β© -β©β£π©}β1 35β₯1 + + β LAYER 4 + β [152,183) + β‘β><'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β₯"" β© |
