application/octet-stream
•
3.02 KB
•
60 lines
("#m" (string/write (buffer/allocate 0)))
("#m00" (string/write (buffer/allocate 1)))
("#m0000" (string/write (buffer/allocate 2)))
("#m000000" (string/write (buffer/allocate 3)))
(0 (-> (buffer/allocate 0) :length))
(1 (-> (buffer/allocate 1) :length))
(2 (-> (buffer/allocate 2) :length))
(514 (:length (string/write (buffer/allocate 256))))
(514 (:length (string/write (-> (buffer/allocate 0) (:length! 256)))))
(#t (:immutable? #m))
(#f (:immutable? (buffer/allocate 0)))
(#f (= (buffer/allocate 0) (buffer/allocate 0)))
(#t (let ((b (buffer/allocate 0))) (= b b)))
(#f (let ((b (buffer/allocate 0))) (< b b)))
(#f (let ((b (buffer/allocate 0))) (> b b)))
(#t (let ((b #m1234)) (= b b)))
(#f (:immutable? (:clone #m12)))
(#t (:immutable? (:clone #m12 #t)))
(#t (:immutable? "asd"))
(#f (let ((b (buffer/allocate 0))) (= b (:clone b))))
(#x12 (ref (:u8 #m12) 0))
(#x34 (ref (:u8 #m1234) 1))
(255 (ref (:u8 #mFF) 0))
(-1 (ref (:s8 #mFF) 0))
(127 (ref (:s8 #m7F) 0))
(-128 (ref (:s8 #m80) 0))
(:out-of-bounds (try car (ref (:u8 #m12) 1)))
(:type-error (try car (ref (:u8 #m12 #f) 0)))
(#x56 (-> (buffer/allocate 1) :u8 (set! 0 #x56) (ref 0)))
("#m00010203" (-> (buffer/allocate 4) :u8 (set! 0 0) (set! 1 1) (set! 2 2) (set! 3 3) :buffer string/write))
(#f (-> (buffer/allocate 1) :u8 :immutable?))
(1000 (-> (buffer/allocate 2) :u16 (set! 0 1000) (ref 0)))
(64536 (-> (buffer/allocate 2) :u16 (set! 0 -1000) (ref 0)))
(-1000 (-> (buffer/allocate 2) :s16 (set! 0 -1000) (ref 0)))
(1000 (-> (buffer/allocate 2) :s16 (set! 0 1000) (ref 0)))
(100000 (-> (buffer/allocate 4) :s32 (set! 0 100000) (ref 0)))
(-100000 (-> (buffer/allocate 4) :s32 (set! 0 -100000) (ref 0)))
(100000 (-> (buffer/allocate 4) :u32 (set! 0 100000) (ref 0)))
(4294867296 (-> (buffer/allocate 4) :u32 (set! 0 -100000) (ref 0)))
(10000000000 (-> (buffer/allocate 8) :s64 (set! 0 10000000000) (ref 0)))
(1000.0 (-> (buffer/allocate 8) :f32 (set! 0 1000) (ref 0)))
(1000.5 (-> (buffer/allocate 8) :f32 (set! 0 1000.5) (ref 0)))
(1000.0 (-> (buffer/allocate 8) :f64 (set! 0 1000) (ref 0)))
(1000.5 (-> (buffer/allocate 8) :f64 (set! 0 1000.5) (ref 0)))
(:out-of-bounds (try car (-> (buffer/allocate 8) :s8 (ref 9))))
(:out-of-bounds (try car (-> (buffer/allocate 8) :u8 (ref 9))))
(:out-of-bounds (try car (-> (buffer/allocate 8) :u16 (ref 5))))
(:out-of-bounds (try car (-> (buffer/allocate 8) :s16 (ref 5))))
(:out-of-bounds (try car (-> (buffer/allocate 8) :s32 (ref 3))))
(:out-of-bounds (try car (-> (buffer/allocate 8) :f32 (ref 3))))
(:out-of-bounds (try car (-> (buffer/allocate 8) :f64 (ref 1))))
(:out-of-bounds (try car (-> (buffer/allocate 8) :s64 (ref 1))))
(:out-of-bounds (try car (-> (buffer/allocate 15) :s64 (ref 1))))
("#m" (string/write (:clone "")))
("#m2030313233" (string/write (:clone " 0123")))
("" (buffer->string #m))
(" 0123" (buffer->string #m2030313233))
("0123" (buffer->string (buffer/copy (buffer/allocate 4) "0123" 0)))
(:out-of-bounds (try car (buffer->string (buffer/copy (buffer/allocate 4) "0123" 1))))
("1122" (buffer->string (buffer/copy (buffer/copy (buffer/allocate 4) "11" 0) "22" 2)))