From 08c46276861b9c4eac56c2453eff8ea7a2ded303 Mon Sep 17 00:00:00 2001 From: dzaima Date: Mon, 30 Oct 2023 17:03:38 +0200 Subject: [PATCH] =?UTF-8?q?fix=20dense=20case=20of=20=E2=80=A2rand.Subset?= =?UTF-8?q?=20not=20updating=20seed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/builtins/sysfn.c | 2 +- test/cases/system.bqn | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/builtins/sysfn.c b/src/builtins/sysfn.c index fe7a5896..d669525a 100644 --- a/src/builtins/sysfn.c +++ b/src/builtins/sysfn.c @@ -596,7 +596,7 @@ B rand_subset_c2(B t, B w, B x) { } s = taga(cpyBitArr(s)); if (invert) s = bit_negate(s); - return C1(slash, s); + r = C1(slash, s); } else { // Sorted "hash" set u64 sh = 0; diff --git a/test/cases/system.bqn b/test/cases/system.bqn index c482e8bb..855ead50 100644 --- a/test/cases/system.bqn +++ b/test/cases/system.bqn @@ -208,7 +208,13 @@ E←•internal.EEqual ⋄ {! (𝕏 4⥊0) E 𝕏 1↓¯1×π∾4⥊0}¨ (⊢∾ 0 (•MakeRand 0).Subset 0 %% ⟨⟩ {!(∧•rand.Deal 𝕩)≡↕𝕩}¨ ⥊ ¯1‿0‿1+⌜2⋆↕22 # %SLOW !"(rand).Range: Result rank too large (256≡≢𝕨)" % (256⥊1) •rand.Range 0 -! ≡˝ a←{r←•MakeRand 𝕩 ⋄ ⟨r.Range 1e9, 100 r.Range 1e9, r.Deal 100, 100 r.Deal 200, 100 r.Deal 200⟩}¨ 2‿2⥊↕2 ⋄ !∘≢¨´ ⊏a +! ≡˝ a←{r←•MakeRand 𝕩 ⋄ ⟨r.Range 1e9, 100 r.Range 1e9, r.Deal 100, 100 r.Deal 200, 100 r.Deal 200, 100 r.Subset 200⟩}¨ 2‿2⥊↕2 ⋄ !∘≢¨´ ⊏a +r←•MakeRand 1 ⋄ ! 1¨⊸≡ ∊{𝕊: 800 r.Subset 1000}¨ ↕4 +r←•MakeRand 1 ⋄ ! 1¨⊸≡ ∊{𝕊: 50 r.Subset 10000}¨ ↕4 +r←•MakeRand 1 ⋄ ! 1¨⊸≡ ∊{𝕊: 10 r.Range 10000}¨ ↕4 +r←•MakeRand 1 ⋄ ! 1¨⊸≡ ∊{𝕊: 10‿10 r.Range 128}¨ ↕4 +r←•MakeRand 1 ⋄ ! 1¨⊸≡ ∊{𝕊: r.Deal 1000}¨ ↕4 +r←•MakeRand 1 ⋄ ! 1¨⊸≡ ∊{𝕊: 500 r.Deal 1000}¨ ↕4 # •bit !"•bit._cast: 𝕩 must have rank at least 1" % 8‿1 •bit._cast 123