import std.math.numeric.BigInt
import std.unittest.*
import std.unittest.testmacro.*
import std.io.*
import cbor4cj.*
public class AbstractSinglePrecisionFloatTest {
private let value: Float32
private let encodedValue: Array<Byte>
public init(value: Float32, encodedValue: Array<Byte>) {
this.value = value
this.encodedValue = encodedValue
}
public func shouldEncode() {
var dataItems = CborBuilder().add(value).build()
var byteOutputStream = ByteBuffer()
var encoder = CborEncoder(byteOutputStream)
encoder.encode(SinglePrecisionFloat(value))
@Assert(encodedValue, byteOutputStream.bytes())
}
public func shouldDecode() {
var inputStream = ByteBuffer();
inputStream.write(encodedValue)
var decoder = CborDecoder(inputStream);
var dataItem = decoder.decodeNext().getOrThrow()
@Assert(dataItem is SinglePrecisionFloat)
var singlePrecisionFloat = (dataItem as SinglePrecisionFloat).getOrThrow()
@Assert(value ,singlePrecisionFloat.getValue())
}
}