From 723f6a92c6af9a46dfbd066fb18e014868bd6487 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Tue, 30 Jun 2020 19:30:58 -0400 Subject: =?UTF-8?q?Tests=20for=20layer=204;=20fix=20=E2=9A=87=20with=20non?= =?UTF-8?q?-matching=20depths?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spec/dzref | 17 ++++++----------- spec/reference.bqn | 7 +++++-- test/testref.bqn | 46 +++++++++++++++++++++++++++++++++++----------- 3 files changed, 46 insertions(+), 24 deletions(-) diff --git a/spec/dzref b/spec/dzref index 997e5d58..00f6c85e 100755 --- a/spec/dzref +++ b/spec/dzref @@ -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+𝕩)β₯Šβˆ˜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+𝕩)β₯Šβ—Ά+β€Ώ-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β₯Š"" ⟩ -- cgit v1.2.3