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.
50 lines
1.3 KiB
Racket
50 lines
1.3 KiB
Racket
7 years ago
|
#lang reader (submod "racket.rkt" reader)
|
||
7 years ago
|
|
||
|
#|
|
||
|
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)])
|
||
7 years ago
|
(check-equal? (size reserved) 1))
|
||
7 years ago
|
|
||
|
;
|
||
|
; it 'should allow custom counts and types', ->
|
||
|
; reserved = new Reserved uint16, 10
|
||
|
; reserved.size().should.equal 20
|
||
|
|
||
|
(let ([reserved (+Reserved uint16be 10)])
|
||
7 years ago
|
(check-equal? (size reserved) 20))
|
||
7 years ago
|
|
||
|
;
|
||
|
; 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)])
|
||
7 years ago
|
(check-equal? (decode reserved stream) (void))
|
||
|
(check-equal? (pos stream) 2))
|
||
7 years ago
|
|
||
|
;
|
||
|
; 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)])
|
||
7 years ago
|
(encode reserved stream)
|
||
|
(check-equal? (dump stream) (+Buffer '(0 0))))
|