preserves-nim/tests/test_conversions.nim

35 lines
823 B
Nim

# SPDX-License-Identifier: ISC
import streams, strutils, unittest
import bigints, preserves, preserves/records
suite "conversions":
test "dictionary":
type Bar = tuple
s: string
type Foobar = object
a, b: int
c: Bar
let
c = Foobar(a: 1, b: 2, c: (s: "ku",))
b = toPreserve(c)
a = preserveTo(b, Foobar)
check(a == c)
check(b.kind == pkDictionary)
expect Defect:
checkpoint $classOf(c)
test "records":
type Bar {.record: "bar".} = tuple
s: string
type Foobar {.record: "foo".} = object
a, b: int
c: Bar
let
c = Foobar(a: 1, b: 2, c: (s: "ku",))
b = toPreserve(c)
a = preserveTo(b, Foobar)
check(a == c)
check(b.kind == pkRecord)
check(classOf(c) == RecordClass(label: symbol"foo", arity: 3))