From 3a8d0be5a440ef47c8b20e32678340360db476a2 Mon Sep 17 00:00:00 2001 From: dzaima Date: Mon, 9 Jun 2025 18:26:09 +0300 Subject: [PATCH] error tests for selecting from an empty array --- src/builtins/select.c | 2 +- test/cases/prims.bqn | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/builtins/select.c b/src/builtins/select.c index 3a050f70..79500e1f 100644 --- a/src/builtins/select.c +++ b/src/builtins/select.c @@ -243,7 +243,7 @@ B select_c2(B t, B w, B x) { B xf = getFillR(x); usz xn = *SH(x); - if (xn==0) goto def_xf_base; + if (xn==0) goto def_xf_base; // empty x, non-empty w; error usz csz = arr_csz(x); u8 xl = cellWidthLog(x); usz ria = wia * csz; diff --git a/test/cases/prims.bqn b/test/cases/prims.bqn index ed3abf17..db6ed766 100644 --- a/test/cases/prims.bqn +++ b/test/cases/prims.bqn @@ -165,6 +165,15 @@ w←1‿1⥊1 ⋄ x←2⥊1 ⋄ w‿x <¨↩ ⋄ {! (∾⟨"𝕨",•Repr𝕩, ) 0‿0‿0 ⊏ 1‿3⥊↕10 %% 3‿3⥊0‿1‿2 ≢¨ ⟨(2‿0‿3‿4‿5⥊1)⊏9‿8‿0‿7⥊0 ⋄ ⟨⟩⊏0‿8‿0‿7⥊0 ⋄ (2‿3‿0‿4⥊1)⊏↕10⟩ %% ⟨2‿0‿3‿4‿5‿8‿0‿7,0‿8‿0‿7,2‿3‿0‿4⟩ +!"𝕨⊏𝕩: Indices out of range" % %USE evar ⋄ 0‿0 ⊏_evar ↕0 +!"𝕨⊏𝕩: Indices out of range" % %USE evar ⋄ 0‿0 ⊏_evar 0‿2⥊1 +!"𝕨⊏𝕩: Indices out of range" % %USE evar ⋄ [0‿0,0‿0] ⊏_evar ↕0 +!"𝕨⊏𝕩: Indices out of range" % %USE evar ⋄ [0‿0,0‿0] ⊏_evar 0‿0⥊1 +!"𝕨⊏𝕩: Indices out of range" % %USE evar ⋄ ⟨0‿0⟩ ⊏_evar 0‿2⥊1 +!"𝕨⊏𝕩: Indices out of range" % %USE evar ⋄ ⟨0‿0⟩ ⊏_evar ↕0 +!"𝕨⊏𝕩: Indices out of range" % %USE evar ⋄ ⟨0‿0,0‿0⟩ ⊏_evar 2‿0⥊1 +!"𝕨⊏𝕩: Indexing out-of-bounds (0∊𝕨, 0≡≠𝕩)" % %USE evar ⋄ ⟨0⟩ ⊏_evar ↕0 +!"𝕨⊏𝕩: Indexing out-of-bounds (0∊𝕨, 0≡≠𝕩)" % %USE evar ⋄ ⟨⋈0⟩ ⊏_evar ↕0 !"𝕨⊏𝕩: Indexing out-of-bounds (1∊𝕨, 1≡≠𝕩)" % ⊏˜(200⥊1)⥊1 !"𝕨⊏𝕩: Indexing out-of-bounds (24∊𝕨, 4≡≠𝕩)" % %USE evar ⋄ 1‿24 ⊏_evar ↕4‿4 !"𝕨⊏𝕩: Indexing out-of-bounds (¯24∊𝕨, 4≡≠𝕩)" % %USE evar ⋄ 1‿¯24 ⊏_evar ↕4‿4