uCBQN/test/various.bqn
dzaima a7897ddcde get rid of NEEQUAL_NEGZERO
as compatibility checking now relies on eequal, it can no longer do funky things
2025-05-23 00:23:13 +03:00

89 lines
2.7 KiB
BQN
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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