Of course this is not next but int16 :) I will look further into testInt16Aliases | input writer | writer := [ :block | ByteArray streamContents: [ :out | ZnBufferedWriteStream on: out do: block ] ]. input := ByteArray readHexFrom: '04D2'. self assert: (ZnBufferedReadStream on: input readStream) int16 equals: 1234. self assert: (ZnBufferedReadStream on: input readStream) uint16 equals: 1234. self assert: (ZnBufferedReadStream on: input readStream) nextWord equals: 1234. self assert: ((ZnBufferedReadStream on: input readStream) nextNumber: 2) equals: 1234. self assert: ((ZnBufferedReadStream on: input reversed readStream) nextLittleEndianNumber: 2) equals: 1234. self assert: (writer value: [ :out | out int16: 1234 ]) equals: input. self assert: (writer value: [ :out | out uint16: 1234 ]) equals: input. self assert: (writer value: [ :out | out nextWordPut: 1234 ]) equals: input. self assert: (writer value: [ :out | out nextNumber: 2 put: 1234 ]) equals: input. self assert: (writer value: [ :out | out nextLittleEndianNumber: 2 put: 1234 ]) equals: input reversed. input := ByteArray readHexFrom: 'FB2E'. self assert: (ZnBufferedReadStream on: input readStream) int16 equals: -1234. self assert: (writer value: [ :out | out int16: -1234 ]) equals: input On Fri, Dec 21, 2018 at 10:40 PM Stephane Ducasse <stepharo.self@gmail.com> wrote:
Hi
I'm fighting with super badly written code and my first reaction is a to be able to write tests and parametrize the code.
I have some byteArray (contents of a CDB database) that I would like to manipulate using stream API. I'm looking for something like this
ZnBinaryStream on: aByteArray; next; next; skip: 10; ...
Stef