You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
typesetting/pitfall/xenomorph/test/reserved-test.rkt

50 lines
1.3 KiB
Racket

#lang reader (submod "racket.rkt" reader)
#|
approximates
https://github.com/mbutterick/restructure/blob/master/test/Reserved.coffee
|#
;describe 'Reserved', ->
; it 'should have a default count of 1', ->
; reserved = new Reserved uint8
; reserved.size().should.equal 1
(let ([reserved (+Reserved uint8)])
(check-equal? (size reserved) 1))
;
; it 'should allow custom counts and types', ->
; reserved = new Reserved uint16, 10
; reserved.size().should.equal 20
(let ([reserved (+Reserved uint16be 10)])
(check-equal? (size reserved) 20))
;
; it 'should decode', ->
; stream = new DecodeStream new Buffer [0, 0]
; reserved = new Reserved uint16
; should.not.exist reserved.decode(stream)
; stream.pos.should.equal 2
(let ([stream (+DecodeStream (+Buffer '(0 0)))]
[reserved (+Reserved uint16be)])
(check-equal? (decode reserved stream) (void))
(check-equal? (pos stream) 2))
;
; it 'should encode', (done) ->
; stream = new EncodeStream
; reserved = new Reserved uint16
; stream.pipe concat (buf) ->
; buf.should.deep.equal new Buffer [0, 0]
; done()
;
; reserved.encode stream
; stream.end()
(let ([stream (+EncodeStream)]
[reserved (+Reserved uint16be)])
(encode reserved stream)
(check-equal? (dump stream) (+Buffer '(0 0))))