nim-leopard/tests/testleopard.nim
2022-03-26 17:46:57 -06:00

49 lines
1.0 KiB
Nim

import pkg/unittest2
import pkg/stew/results
import pkg/stew/byteutils
import ../leopard
suite "Leopard":
const
testString = "Hello World!"
var
leoEncoder: LeoEncoder
leoDecoder: LeoDecoder
data: seq[seq[byte]]
parity: seq[seq[byte]]
recovered: seq[seq[byte]]
test "Test Encode/Decode":
leoEncoder = LeoEncoder.init(64, 16, 10).tryGet()
leoDecoder = LeoDecoder.init(64, 16, 10).tryGet()
data = newSeq[seq[byte]](16)
parity = newSeq[seq[byte]](10)
recovered = newSeq[seq[byte]](16)
for i in 0..<16:
data[i] = newSeq[byte](64)
recovered[i] = newSeq[byte](64)
var
str = testString & " " & $i
copyMem(addr data[i][0], addr str[0], str.len)
for i in 0..<10:
parity[i] = newSeq[byte](64)
leoEncoder.encode(data, parity).tryGet()
let
data1 = data[0]
data2 = data[1]
data[0].setLen(0)
data[1].setLen(0)
leoDecoder.decode(data, parity, recovered).tryGet()
check recovered[0] == data1
check recovered[1] == data2