⟨ListVariations, ClearRefs, Variation, Squeeze, Info⟩ ← •internal u ← •UnixTime@ # u ↩ 1648896733 r ← •MakeRand •Show u TestVars ← { w𝕊a‿b: n ← ¬w (ListVariations a) { ¬⍟n (𝕨 Variation a) ≡ (𝕩 Variation b)? @; •Out ∾"fail for "‿𝕨‿"/"‿𝕩‿", expected "‿(w⊑"0"‿"1")‿":" •Out •Repr a •Out •Repr b •Out •Repr a≠b •Exit 1 }⌜ ListVariations b ClearRefs@ } (1 TestVars ⋈˜)¨ ⟨⟨⟩ ⋄ "" ⋄ ↕0⟩ # types: u1,i8,i16,i32,f64,c8,c16,c32 szs ← 2∾(2⋆8‿16‿32)∾0∾(2⋆8‿16)∾1114111 off ← 0∾(2⋆7‿15‿31)∾¯0.5∾0‿0‿0 chr ← 0‿0‿0‿0‿0‿1‿1‿1 RandVal ← { Squeeze @+⍟(𝕩⊑chr) (𝕨 r.Range 𝕩⊑szs) - 𝕩⊑off } Do ← { 𝕊: at ← r.Range 8 l ← 1 + r.Range (at=0)⊑100‿700 a ← l RandVal at 1 TestVars a‿a { 𝕊: p ← r.Range l v ← RandVal ⊢◶⟨r.Range∘5 ⋄ 5+r.Range∘3⟩ at≥5 exp ← v = p⊑a b ← Squeeze v⌾(p⊸⊑) a exp TestVars a‿b }⍟100 @ } @∘Do⍟1000 @