summary refs log tree commit diff stats
path: root/tests/stdlib/ttestutils.nim
blob: d24c5b39aa05a12b57dafd5a8679117adccc4fab (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
import stdtest/testutils

block: # assertAll
  assertAll:
    1+1 == 2
    var a = 3
    a == 3

  doAssertRaises(AssertionDefect):
    assertAll:
      1+1 == 2
      var a = 3
      a == 4

block: # greedyOrderedSubsetLines
  assertAll:
    greedyOrderedSubsetLines("a1\na3", "a0\na1\na2\na3\na4")
    not greedyOrderedSubsetLines("a3\na1", "a0\na1\na2\na3\na4") # out of order
    not greedyOrderedSubsetLines("a1\na5", "a0\na1\na2\na3\na4") # a5 not in lhs

    not greedyOrderedSubsetLines("a1\na5", "a0\na1\na2\na3\na4\nprefix:a5")
    not greedyOrderedSubsetLines("a1\na5", "a0\na1\na2\na3\na4\na5:suffix")
    not greedyOrderedSubsetLines("a5", "a0\na1\na2\na3\na4\nprefix:a5")
    not greedyOrderedSubsetLines("a5", "a0\na1\na2\na3\na4\na5:suffix")

block: # greedyOrderedSubsetLines with allowPrefixMatch = true
  template fn(a, b): bool =
    greedyOrderedSubsetLines(a, b, allowPrefixMatch = true)
  assertAll:
    fn("a1\na3", "a0\na1\na2\na3_suffix\na4")
    not fn("a1\na3", "a0\na1\na2\nprefix_a3\na4")
    # these are same as above, could be refactored
    not fn("a3\na1", "a0\na1\na2\na3\na4") # out of order
    not fn("a1\na5", "a0\na1\na2\na3\na4") # a5 not in lhs

    not fn("a1\na5", "a0\na1\na2\na3\na4\nprefix:a5")
    fn("a1\na5", "a0\na1\na2\na3\na4\na5:suffix")
    not fn("a5", "a0\na1\na2\na3\na4\nprefix:a5")
    fn("a5", "a0\na1\na2\na3\na4\na5:suffix")