split up & move test/various.bqn to test/run.bqn system

This commit is contained in:
dzaima 2025-06-01 07:01:10 +03:00
parent a987efea5b
commit 2f18c0546f
6 changed files with 94 additions and 90 deletions

View File

@ -7,7 +7,6 @@ test/mainCfgs.sh path/to/mlochbaum/BQN // run the test suite for a couple primar
test/x86Cfgs.sh path/to/mlochbaum/BQN // run the test suite for x86-64-specific configurations, including singeli; 32-bit build is "supposed" to fail one test involving ⋆⁼ test/x86Cfgs.sh path/to/mlochbaum/BQN // run the test suite for x86-64-specific configurations, including singeli; 32-bit build is "supposed" to fail one test involving ⋆⁼
test/moreCfgs.sh path/to/mlochbaum/BQN // run "2+2" in a bunch of configurations; requires dzaima/BQN to be accessible as dbqn test/moreCfgs.sh path/to/mlochbaum/BQN // run "2+2" in a bunch of configurations; requires dzaima/BQN to be accessible as dbqn
test/run.bqn // run tests in test/cases/ test/run.bqn // run tests in test/cases/
./BQN test/various.bqn // tests for various small things
./BQN test/joinReuse.bqn // test in-place join; requires -DPRINT_JOIN_REUSE ./BQN test/joinReuse.bqn // test in-place join; requires -DPRINT_JOIN_REUSE
make -C test/ffi // test FFI functionality; expects both regular and shared library CBQN builds to already exist make -C test/ffi // test FFI functionality; expects both regular and shared library CBQN builds to already exist

25
test/cases/fuzz/arith.bqn Normal file
View File

@ -0,0 +1,25 @@
(
helpers •args
R (helpers.GetRand@).Range
EEqual, Variation •internal
Mod {𝕊:
modOptions ,¯∞,0÷0 - 234
{𝕊:
n R 24+R 6
w R modOptions
x -(R 2) (2R 34) + (n)-R n
got w|x
exp w|"Ah" Variation x
¬exp EEqual got?
•Out "𝕨: "•Repr w
•Out "𝕩: "(•Repr x)" / "•internal.Info x
•Out "exp: "•Repr exp
•Out "got: "•Repr got
!0
;@
}¨ 𝕩
}
•Show "powerOfTwo | arr" Mod 100000
)

16
test/cases/fuzz/group.bqn Normal file
View File

@ -0,0 +1,16 @@
%DEF eqvar _eqvar•args
(
%USE eqvar
helpers •args
rand helpers.GetRand@
R rand.Range
RandVals rand helpers.Import "utils.bqn"
{𝕊:
t R 8
l R 10
x l RandVals t
w ¯1+l R 1+l
w _eqvar x
}¨ 10000
)

View File

@ -1,2 +1,23 @@
# tests scan on a matrix checking for overflow in tail elements # tests scan on a matrix checking for overflow in tail elements
81632 {e𝕊nw: m2e-2 ! (m+(¯1,w|n) w(n+w+1)m) +` •internal.Squeeze w (wm)(n0)m} 1+20065 81632 {e𝕊nw: m2e-2 ! (m+(¯1,w|n) w(n+w+1)m) +` •internal.Squeeze w (wm)(n0)m} 1+20065
%DEF rand R ((•args).GetRand@).Range VVariation •internal
# `bitarr
(
%USE rand
{𝕊:
n 1 + R 2R 13
! (` `) "Ab" V {𝕊: 1((R n))𝕩}2 "Ai8" V 0˜ n
}¨ 100000
)
# +`bitarr
(
%USE rand
RB2 {¬(R 2) "Ab" V 𝕩 R 1+R 2R 10} # random boolean array with random uniform probability
{𝕊:
a RB2 R 2R 13
! (+` +`) a
}¨ 100000
)

View File

@ -0,0 +1,31 @@
### WHOLE-FILE-TEST
# generally unnecessary now that debug builds include heap corruption testing
LVListVariations, VVariation, ClearRefsClearRefs, IInfo, TYType, RefcRefc, EEQEEqual •internal
helpers •args
R (helpers.GetRand@).Range
RB2 {¬(R 2) "Ab" V 𝕩 R 1+R 2R 10} # random boolean array with random uniform probability
rByteVals "Ai8"V {𝕩-256×𝕩>127} {{2×+˜´ 8/ 𝕩 •rand.Subset 8}¨ 9}¨20
RByte (R (rByteVals)˙)(rByteVals)
RH "Ai8"V¨ R¨RByte # store to a variable to randomize heap by 𝕨 values, each up to 𝕩 bytes
CH { # do "var CH↩" to a variable assigned to a result of RH
"heap corruption" ! ´2=Refc¨ 𝕩
"heap corruption" ! 1 Refc 𝕩
0
}
BitSlash {tydymax𝕊n:
f dy / {𝕩/ty V 𝕨 R 100}
{𝕊:
# 𝕩⊸{•Show 𝕨}⍟⊢ 0=10000|𝕩
t120 RH 100
nR max
xn F nRB2 128+n
t220 RH 100
x0 t1 CH t2 CH
}¨n
}
•Show "heap corruption test of /bit" @0200 BitSlash 1000000
•Show "heap corruption test of bit/i8" "Ai8"150 BitSlash 1000000
•Show "heap corruption test of bit/i16" "Ai16"150 BitSlash 1000000
•Show "heap corruption test of bit/i32" "Ai32"150 BitSlash 1000000

View File

@ -1,88 +0,0 @@
LVListVariations, VVariation, ClearRefsClearRefs, IInfo, TYType, RefcRefc, EEQEEqual •internal
u 100×(•UnixTime+1|100וMonoTime)@
rand •MakeRand •Show u
RandVals rand •Import "utils.bqn"
R rand.Range
RB "Ab" V R2 # uniformly random boolean array
RB2 {¬(R 2) "Ab" V 𝕩 R 1+R 2R 10} # random boolean array with random uniform probability
rByteVals "Ai8"V {𝕩-256×𝕩>127} {{2×+˜´ 8/ 𝕩 •rand.Subset 8}¨ 9}¨20
RByte (R (rByteVals)˙)(rByteVals)
RH "Ai8"V¨ R¨RByte # store to a variable to randomize heap by 𝕨 values, each up to 𝕩 bytes
CH { # do "var CH↩" to a variable assigned to a result of RH
"heap corruption" ! ´2=Refc¨ 𝕩
"heap corruption" ! 1 Refc 𝕩
0
}
OrScanBitarr {𝕊:
n 1 + R 2R 13
! (` `) "Ab" V {𝕊: 1((R n))𝕩}2 "Ai8" V 0˜ n
}¨
PlusScanBitarr {𝕊:
a RB2 R 2R 13
! (+` +`) a
}¨
BitSlash {tydymax𝕊n:
f dy / {𝕩/ty V 𝕨 R 100}
{𝕊:
# 𝕩⊸{•Show 𝕨}⍟⊢ 0=10000|𝕩
t120 RH 100
nR max
xn F nRB2 128+n
t220 RH 100
x0 t1 CH t2 CH
}¨n
}
_testConsistent { w0 F _𝕣 x0:
´ ( EEQ¨1) 𝕨 {(𝕨 V w0) F (𝕩 V x0)}LV 𝕩? ClearRefs@;
w0 F _𝕣 x0:
•Out "Fail for:"
"𝕨: ""𝕩: " •Out(•Repr)¨ 𝕨𝕩
tbl 𝕨 {(𝕨 V w0) F (𝕩 V x0)}LV 𝕩
•Show (<¨) tbl
•Exit 1
}
Group {𝕊:
t R 8
l R 10
x l RandVals t
w ¯1+l R 1+l
w _testConsistent x
1
}¨
Mod {𝕊:
modOptions ,¯∞,0÷0 - 234
{𝕊:
n R 24+R 6
w R modOptions
x -(R 2) (2R 34) + (n)-R n
got w|x
exp w|"Ah"V x
¬exp EEQ got?
•Out "𝕨: "•Repr w
•Out "𝕩: "(•Repr x)" / "I x
•Out "exp: "•Repr exp
•Out "got: "•Repr got
•Exit 1
;@
}¨ 𝕩
}
•Show "powerOfTwo | arr" Mod 100000
•Show "`bitarr" OrScanBitarr 100000
•Show "+`bitarr" PlusScanBitarr 100000
# •Show "heap corruption test of /bit" ⋄ @‿0‿200 BitSlash 1000000
# •Show "heap corruption test of bit/i8" ⋄ "Ai8"‿1‿50 BitSlash 1000000
# •Show "heap corruption test of bit/i16" ⋄ "Ai16"‿1‿50 BitSlash 1000000
# •Show "heap corruption test of bit/i32" ⋄ "Ai32"‿1‿50 BitSlash 1000000
•Show "⊔ consistency" Group 10000