squeeze test

This commit is contained in:
dzaima 2022-04-04 17:00:54 +03:00
parent 1609e8b651
commit a52260715e
5 changed files with 88 additions and 14 deletions

View File

@ -9,4 +9,5 @@ test/moreCfgs.sh path/to/mlochbaum/BQN // run "2+2" in a bunch of configurations
./BQN test/cmp.bqn // fuzz-test scalar comparison functions =≠<≤>≥ ./BQN test/cmp.bqn // fuzz-test scalar comparison functions =≠<≤>≥
./BQN test/equal.bqn // fuzz-test 𝕨≡𝕩 ./BQN test/equal.bqn // fuzz-test 𝕨≡𝕩
./BQN test/bitcpy.bqn // fuzz-test bit_cpy; requires a CBQN build with -DTEST_BITCPY ./BQN test/bitcpy.bqn // fuzz-test bit_cpy; requires a CBQN build with -DTEST_BITCPY
./BQN test/squeeze.bqn // fuzz-test bit_cpy; requires a CBQN build with -DEEQUAL_NEGZERO
``` ```

View File

@ -1,5 +1,6 @@
# make t=bitcpyTest f='-O3 -march=native -DTEST_BITCPY' singeli=1 c && ./BQN test/bitcpy.bqn
Temp, Type, Unshare, Squeeze, Info •internal Temp, Type, Unshare, Squeeze, Info •internal
u •UnixTime@ u 100×(•UnixTime+1|100וMonoTime)@
# u ↩ 123 # u ↩ 123
r •MakeRand •Show u r •MakeRand •Show u
@ -38,4 +39,4 @@ Do ← { 𝕊:
! a aT ! a aT
} }
@Do((•BQN¨•args)500) @ @Do((•BQN¨•args)2000) @

View File

@ -1,5 +1,5 @@
ListVariations, ClearRefs, Variation, Squeeze, Info •internal ListVariations, ClearRefs, Variation, Squeeze, Info •internal
u •UnixTime@ u 100×(•UnixTime+1|100וMonoTime)@
# u ↩ 123 # u ↩ 123
r •MakeRand •Show u r •MakeRand •Show u
@ -19,24 +19,16 @@ TestVars ← { w𝕊a‿b:
(1 TestVars ˜)¨ "" 0 (1 TestVars ˜)¨ "" 0
# types: u1,i8,i16,i32,f64,c8,c16,c32 RandVals r •Import "utils.bqn"
szs 2(281632)0(2816)1114111
off 0(271531)¯0.5000
chr 00000111
specF64 - ÷0 10
RandVal {
𝕩4? {specF64˜𝕩 r.Range specF64}((0=𝕨 r.Range 2r.Range 10)/) 𝕨 r.Range 0;
Squeeze @+(𝕩chr) (𝕨 r.Range 𝕩szs) - 𝕩off
}
Do { 𝕊: Do { 𝕊:
at r.Range 8 at r.Range 8
l 1 + r.Range (at=0)100700 l 1 + r.Range (at=0)100700
a l RandVal at a l RandVals at
(1{𝕊:´a=a} at=4) TestVars aa (1{𝕊:´a=a} at=4) TestVars aa
{ 𝕊: { 𝕊:
p r.Range l p r.Range l
v 1 RandVal r.Range5 5+r.Range3 at5 v 1 RandVals r.Range5 5+r.Range3 at5
exp v = pa exp v = pa
b Squeeze v(p) a b Squeeze v(p) a
(exp{𝕊:´a=b} at=4) TestVars ab (exp{𝕊:´a=b} at=4) TestVars ab

34
test/squeeze.bqn Normal file
View File

@ -0,0 +1,34 @@
# make t=squeezeTest f='-march=native -O3 -DEEQUAL_NEGZERO' singeli=1 c && ./BQN test/squeeze.bqn
EEqual, ListVariations, ClearRefs, Variation, Squeeze, Info •internal
u 100×(•UnixTime+1|100וMonoTime)@
# u ↩ 123
r •MakeRand •Show u
RandVals, vars, spec, specF64 r •Import "utils.bqn"
TestSq0 {a Squeeze 𝕨 Variation 𝕩 ! 1==a ! 0=a a}
{! 01𝕩 TestSq0 0}¨ 5vars
{! " "1𝕩 TestSq0 ""}¨ 5vars
{𝕩 TestSq0 }¨ ListVariations # {𝕩{•Out "Failed fill for "∾𝕨}⍟⊢ 8 ≠ 1↑⎊8 𝕩 TestSq0 ⟨⟩}¨ ListVariations ⟨⟩
specSpl 5()spec
allSpec specF64 (@+010321271282552563276732768655356553611141101114111) {}+
Do { 𝕊:
at r.Range 8
l 1 + r.Range (at=0)1000300
a l RandVals at
{! a EEqual Squeeze 𝕩 Variation a}¨ ListVariations a
F { 𝕊:
p {r.Range 2? r.Range l; (¯1+l-)(r.Range 2) r.Range (2r.Range 10)l}
b 𝕩(p) a
! b EEqual Squeeze b # won't be acceptable with in-place squeezing, but that doesn't exist yet
}
F¨ (at5)specSpl
F¨ allSpec
{𝕊: F¨ @+(at5) r.Range 2r.Range (at5)3320}¨ 10
ClearRefs@
}
Do40000 @

46
test/utils.bqn Normal file
View File

@ -0,0 +1,46 @@
Variation •internal
r •args
# types: u1,i8,i16,i32,f64,c8,c16,c32
maxF64 +´21023-53
min 0(-271531)¯0.5000
max 2( 271531) 0.5(2816)1114112
szs max-min
chr 00000111
specF64 - π2 ÷0 10
specI32 "Ai32" •internal.Variation (<(231)(-231))/ - 0/ (¯4+8) + 232
vars "Ab""Ai8""Ai16""Ai32""Af64""Ac8""Ac16""Ac32"
specInts 715({(<(2𝕨)(-2𝕨))/𝕩}¨<)specI32 # TODO 8-bit integer spec is kinda stupid
spec0 01specIntsspecF64@+(1114111-16)(2) (<11141110)/¨ specInts
spec0 (5/¯128¯127¯126¯2¯1012125126127)(1)
spec vars Variation¨ spec0
! spec0 ((48)/) spec
SubRange {
sz 𝕩-𝕨
l 1 + r.Range 4(0=r.Range 5) sz
0l+𝕨+r.Range 1+sz-l
}
# •Show¨ ⍷∧{𝕊:¯3 SubRange 3}¨↕1000
# •Show¨ ∾⟜(-˜´)¨ ∧{𝕊:¯1000 SubRange 1000}¨↕100
Variate { sp𝕊𝕩:
((0=r.Range 5){𝕩sp˜r.Range sp}{sp˜𝕩 r.Range sp})((0=(𝕩) r.Range 2010-˜r.Range 20)/) 𝕩
}
RandVals {
# TODO special code for 𝕩≡0
# TODO bit-based randomization
𝕩4? "Af64" Variation specF64 Variate (21024×r.Range 0) × (¯2+4×r.Range 0) + 𝕨 r.Range 0;
se (𝕩min) SubRange 𝕩max
(𝕩vars) Variation (𝕩spec) Variate @+(𝕩chr) s+𝕨 r.Range e-s
}
! "bitarr" •internal.Type 10 RandVals 0
! "i8arr" •internal.Type 10 RandVals 1
! "i16arr" •internal.Type 10 RandVals 2
! "i32arr" •internal.Type 10 RandVals 3
! "f64arr" •internal.Type 10 RandVals 4
! "c8arr" •internal.Type 10 RandVals 5
! "c16arr" •internal.Type 10 RandVals 6
! "c32arr" •internal.Type 10 RandVals 7