uCBQN/test/cases/cells.bqn
2024-06-26 06:09:30 +03:00

58 lines
3.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.

%DEF k _k {𝔽•internal.Keep}
%DEF tcc %USE k _tcc { ! ´ (<𝕨 𝔽_k˘'e' 𝕩) ¨ (𝕨 𝔽˘'e'•internal.Variation𝕩)¨ "i"•internal.ListVariations 𝕩}
12 10 1 %% 11
1 10 12 %% 11
! 201200˘a20304024 ! 203040 a
! (2-1 {2-𝕩}1) 1010100
! (-21 {𝕩-2}1) 1010100
%USE k n1 {𝕊: (•Repr a) ! (n _kn)´ a((322'a'+26))¨ <˘ 2222•rand.Range 3}¨ 1000
%USE k n2 {𝕊: (•Repr a) ! (n _kn)´ a((322'a'+26))¨ <˘ 2222•rand.Range 3}¨ 1000
%USE k n3 {𝕊: (•Repr a) ! (n _kn)´ a((322'a'+26))¨ <˘ 2222•rand.Range 3}¨ 1000
{𝕊k: ! (3k {3𝕩}k) 222216}¨ ¯2+10
{𝕊k: ! (1k {1𝕩}k) 333381}¨ ¯2+10
!"˘: Result rank too large" % (02542)1˘ 021
!"⎉: Result rank too large" % (02542)1¯1 021
!"⎉: Result rank too large" % (1˜ 02042)50 1˜ 01002
!"⎉: Result rank too large (204 ≡ =𝕩, 200 ≡ =𝔽v)" % {𝕊:(2001)1}1 (2051)1
!"⎉: Argument frames don't agree (⟨3⟩ ≡ ≢𝕨, ⟨2⟩ ≡ ≢𝕩, common frame of 1 axes)" % "abc" 0 "ab"
!"˘: Argument frames don't agree (⟨3⟩ ≡ ≢𝕨, ⟨2⟩ ≡ ≢𝕩, common frame of 1 axes)" % "abc" ˘ "ab"
! ´{𝕊: ! ({𝕨𝕩}´) (<•rand.Range "ab",12,,0,"") ˜ (4•rand.Range) 1, {}, 'a', <'a', <{}, "ab", 0, ""}¨10000
%USE tcc 2, 20, ¯2, ¯20, 0 {𝕨 _tcc 𝕩 𝕨 _tcc 𝕩} <4, 5, 4520, 456120
%USE tcc <, , , {𝕎 _tcc 𝕩} <4, 5, 4520, 456120, 2345120
%USE tcc <, , {𝕎 _tcc 𝕩} <4, 5, 4520, 456120, 2345120
%USE tcc {𝕎 _tcc 𝕩} 4520, 456120, 2345120
%USE tcc _tcc 428 1_tcc 428 _tcc 42 1_tcc 42
%USE tcc _tcc 428 1_tcc 428 _tcc 42 1_tcc 42
(
%USE IS_HEAPVERIFY
# big ˝˘ & `˘ tester
_basicArgs { Test _𝕣 ranks:
{𝕊f: {{f Test 01˜ 𝕩024832}¨ 𝕩3 1}¨ ranks}¨ +=
}
# TODO replace ○⊢ with some pureness-preserving •internal.Keep
# w F _thing x tests F _thing⎉w x
_testFoldCells {´𝕗=? 0=×´(-𝕨)𝕩? 1; heapverify? 0=𝕩? 1 𝔽˝𝕨 𝕩; ! (𝔽˝𝕨 𝔽˝𝕨) 𝕩}
_testScanCells { heapverify? 0=𝕩? 1 𝔽`𝕨 𝕩; ! (𝔽`𝕨 𝔽`𝕨) 𝕩}
{1 𝕨 _testFoldCells 𝕩} _basicArgs 234
{1 𝕨 _testScanCells 𝕩} _basicArgs 234
{2 𝕨 _testScanCells 𝕩} _basicArgs 34
{2 𝕨 _testScanCells 𝕩} _basicArgs 34
0, 01, 10, 22, 1, 10, 101, 110, 30 {
𝕨𝕩 ¨
sh 𝕨𝕩
cr 𝕩
+= {
cr 𝕎 _testFoldCells 𝕩
cr 𝕎 _testScanCells 𝕩
} {0=×´sh? 𝕩; 𝕩, ¬¨ 𝕩, ¬(¯1)¨ 𝕩} sh¨ 01
} 0, 1, 2, 8, 32, 81, 48, 42, 59, 60, 63, 80, 81, 200, 640, 641
)