summary refs log tree commit diff stats
path: root/tests/assign/tobject_assign.nim
blob: 8e39ead534ff87b87489036fdd32f69827790aca (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# bug #16706

block: # reduced example
  type
    A = object of RootObj
      a0: string
    B = object
      b0: seq[A]
  var c = newSeq[A](2)
  var d = B(b0: c)

when true: # original example
  import std/[options, tables, times]

  type
    Data* = object
      shifts*: OrderedTable[int64, Shift]
      balance*: float

    Shift* = object
      quoted*: bool
      date*: DateTime
      description*: string
      start*: Option[DateTime]
      finish*: Option[DateTime]
      breakTime*: Option[Duration]
      rate*: float
      qty: Option[float]
      id*: int64

  let shift = Shift(
    quoted: true,
    date: parse("2000-01-01", "yyyy-MM-dd"),
    description: "abcdef",
    start: none(DateTime),
    finish: none(DateTime),
    breakTime: none(Duration),
    rate: 462.11,
    qty: some(10.0),
    id: getTime().toUnix()
  )

  var shifts: OrderedTable[int64, Shift]
  shifts[shift.id] = shift

  discard Data(
    shifts: shifts,
    balance: 0.00
  )