diff --git a/src/builtins/internal.c b/src/builtins/internal.c index f61806ff..ac5c9861 100644 --- a/src/builtins/internal.c +++ b/src/builtins/internal.c @@ -386,9 +386,10 @@ B iKeep_c1(B t, B x) { return x; } B iProperties_c2(B t, B w, B x) { if (w.u!=m_c32(0).u || x.u != m_c32(0).u) thrM("•internal.Properties: bad arg"); i32* rp; - B r = m_i32arrv(&rp, 2); + B r = m_i32arrv(&rp, 3); rp[0] = sizeof(usz)*8; rp[1] = PROPER_FILLS; + rp[2] = EACH_FILLS; return r; } diff --git a/test/cases/fills.bqn b/test/cases/fills.bqn index c2ff751e..c2f2635f 100644 --- a/test/cases/fills.bqn +++ b/test/cases/fills.bqn @@ -15,6 +15,21 @@ %USE fill ⋄ {𝕊: a←10⥊<1‿2 ⋄ { a∾↩𝕩⋄@}¨(𝕩⥊<<1‿2)∾<<1‿2‿3 ⋄ a!'e'≡Fill a}¨ ↕100 %USE fill ⋄ {𝕊: a←10⥊<1‿2 ⋄ {a↩0↑a ⋄ a∾↩𝕩⋄@}¨(𝕩⥊<<1‿2)∾<<1‿2‿3 ⋄ a!'e'≡Fill a}¨ ↕100 +%USE fill ⋄ Fill ≠¨ ⟨⟩ %!EACH_FILLS %% 'e' +%USE fill ⋄ Fill ≠¨ ⟨⟩ %EACH_FILLS %% 0 +%USE fill ⋄ Fill ≠∘⊢¨⟨⟩ %% 'e' +%USE fill ⋄ Fill ⊢¨⟨⟩ %% 'e' +%USE fill ⋄ Fill ⊢∘⊢¨⟨⟩ %% 'e' + +%USE fill ⋄ Fill ≠¨ "" %!EACH_FILLS %% ' ' +%USE fill ⋄ Fill ≠¨ "" %EACH_FILLS %% 0 +%USE fill ⋄ Fill ≠∘⊢¨"" %!EACH_FILLS %% ' ' +%USE fill ⋄ Fill ⊢¨"" %!EACH_FILLS %% ' ' +%USE fill ⋄ Fill ⊢∘⊢¨"" %!EACH_FILLS %% ' ' +%USE fill ⋄ Fill ≠∘⊢¨"" %EACH_FILLS %% 0 +%USE fill ⋄ Fill ⊢¨"" %EACH_FILLS %% ' ' +%USE fill ⋄ Fill ⊢∘⊢¨"" %EACH_FILLS %% ' ' + # TODO: # ⟨↑‿3⥊↕10 ⋄ ↑‿3⥊<¨↕10 ⋄ ↑‿3⥊<˘↕10⟩ # 5‿¯5↑⌜⟨↕2 ⋄ "ab" ⋄ <¨↕2 ⋄ <˘↕2⟩ diff --git a/test/run.bqn b/test/run.bqn index 23bdee9d..73bcaa43 100644 --- a/test/run.bqn +++ b/test/run.bqn @@ -40,9 +40,10 @@ o ← { debug ⇐ ∨´i=7 noCatch ⇐ ∨´i=8 - pr ← {⟨P⇐Properties⟩: @P@; 32‿0} •internal + pr ← 32‿0‿0 {𝕩∾(≠𝕩)↓𝕨} {⟨P⇐Properties⟩: 3↑@P@; ⟨⟩} •internal + usz ⇐ 0⊑pr properFills ⇐ 1⊑pr - usz ⇐ ⊑pr + eachFills ⇐ 2⊑pr noerr∨↩ heapverify update∧↩ ¬heapverify files ⇐ (i=≠named)/args @@ -100,8 +101,10 @@ Run ← { 𝕊 testname: enabled ⇐ ¬ (¬o.slow) ∧ Flag "%SLOW" enabled∧↩ ¬ o.debug ∧ Flag "%!DEBUG" enabled∧↩ ¬ o.heapverify ∧ Flag "%!HEAPVERIFY" - enabled∧↩ {0‿0: 1; 1‿0: o.properfills; 0‿1: ¬o.properfills} Flag¨ "%PROPER_FILLS"‿"%!PROPER_FILLS" + enabled∧↩ {0‿0: 1; 1‿0: o.properFills; 0‿1: ¬o.properFills} Flag¨ "%PROPER_FILLS"‿"%!PROPER_FILLS" + enabled∧↩ {0‿0: 1; 1‿0: o.eachFills ; 0‿1: ¬o.eachFills } Flag¨ "%EACH_FILLS"‿"%!EACH_FILLS" enabled∧↩ {0‿0: 1; 1‿0: o.usz=32; 0‿1: o.usz=64} Flag¨ "%USZ32"‿"%USZ64" + enabled∧↩ {0‿0: 1; 1‿0: o.usz=32; 0‿1: o.usz=64} Flag¨ "%USZ32"‿"%EACHFILLS" ln ⇐ i-1 str ⇐ str # at end to let Flag have updated it