mirror of
https://github.com/logos-storage/nim-leopard.git
synced 2026-01-06 23:53:10 +00:00
49 lines
1.0 KiB
Nim
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
|