y.v == 0
      
      
        0 == 0
      
    
    
      
        0 == y.v
      
      
        0 == 0
      
    
    
  
  
    
      
        t1 == t2
      
      
        {?} == {?}
      
    
    
      
        t1 != t2
      
      
        {?} != {?}
      
    
    
      
        t1 < t2
      
      
        {?} < {?}
      
    
    
      
        t1 > t2
      
      
        {?} > {?}
      
    
    
      
        t1 <= t2
      
      
        {?} <= {?}
      
    
    
      
        t1 >= t2
      
      
        {?} >= {?}
      
    
    
  
  
    
  
  
    
      uarr := "123"
    
    
      sarr := "456"
    
    
      
        std::memcmp(uarr, "123", sizeof(uarr)) == 0
      
      
        0 == 0
      
    
    
      uarr := "123"
    
    
      sarr := "456"
    
    
      
        std::memcmp(sarr, "456", sizeof(sarr)) == 0
      
      
        0 == 0
      
    
    
  
  
    
  
  
    
    
  
  
    
      
        h1 == h2
      
      
        [1403 helper] == [1403 helper]
      
    
    
  
  
    
This info message starts with a linebreak
    
    
This warning message starts with a linebreak
    
    
  
  
    
      1514
    
    
      
This would not be caught previously
      
      
Nor would this
      
    
  
  
    
      
        std::is_same<TypeList<int>, TypeList<int>>::value
      
      
        true
      
    
    
  
  
    
      
        spec.matches(*fakeTestCase("spec . char"))
      
      
        true
      
    
    
      
        spec.matches(*fakeTestCase("spec , char"))
      
      
        true
      
    
    
      
        !(spec.matches(*fakeTestCase(R"(spec \, char)")))
      
      
        !false
      
    
    
  
  
    
      
        
          spec.matches(*fakeTestCase(R"(spec {a} char)"))
        
        
          true
        
      
      
        
          spec.matches(*fakeTestCase(R"(spec [a] char)"))
        
        
          true
        
      
      
        
          !(spec.matches(*fakeTestCase("differs but has similar tag", "[a]")))
        
        
          !false
        
      
      
    
    
      
        
          spec.matches(*fakeTestCase(R"(spec \ char)"))
        
        
          true
        
      
      
    
    
  
  
    
      
        counter < 7
      
      
        3 < 7
      
    
    
      
        counter < 7
      
      
        6 < 7
      
    
    
  
  
    
      
        i != j
      
      
        1 != 3
      
    
    
      
        i != j
      
      
        1 != 4
      
    
    
      
        i != j
      
      
        2 != 3
      
    
    
      
        i != j
      
      
        2 != 4
      
    
    
  
  
    
    
    
    
    
  
  
    
    
      
        m
      
      
        2
      
    
    
      
        m
      
      
        3
      
    
    
  
  
    
      
        m
      
      
        1
      
    
    
      
        m
      
      
        2
      
    
    
      
        m
      
      
        3
      
    
    
  
  
    
    
      i := 1
    
    
      j := 3
    
    
      k := 5
    
    
    
      i := 1
    
    
      j := 3
    
    
      k := 6
    
    
    
      i := 1
    
    
      j := 4
    
    
      k := 5
    
    
      i := 1
    
    
      j := 4
    
    
      k := 6
    
    
    
      i := 2
    
    
      j := 3
    
    
      k := 5
    
    
    
      i := 2
    
    
      j := 3
    
    
      k := 6
    
    
    
      i := 2
    
    
      j := 4
    
    
      k := 5
    
    
      i := 2
    
    
      j := 4
    
    
      k := 6
    
    
  
  
    
      
        m
      
      
        1
      
    
    
      
        n
      
      
        1
      
    
    
      
        m
      
      
        1
      
    
    
      
        n
      
      
        2
      
    
    
      
        m
      
      
        1
      
    
    
      
        n
      
      
        3
      
    
    
      
        m
      
      
        2
      
    
    
      
        n
      
      
        1
      
    
    
      
        m
      
      
        2
      
    
    
      
        n
      
      
        2
      
    
    
      
        m
      
      
        2
      
    
    
      
        n
      
      
        3
      
    
    
      
        m
      
      
        3
      
    
    
      
        n
      
      
        1
      
    
    
      
        m
      
      
        3
      
    
    
      
        n
      
      
        2
      
    
    
      
        m
      
      
        3
      
    
    
      
        n
      
      
        3
      
    
    
  
  
    
  
  
    
  
  
    
  
  
    
      
        smallest_non_zero, WithinULP( -smallest_non_zero, 2 )
      
      
        0.0 is within 2 ULPs of -4.9406564584124654e-324 ([-1.4821969375237396e-323, 4.9406564584124654e-324])
      
    
    
      
        smallest_non_zero, !WithinULP( -smallest_non_zero, 1 )
      
      
        0.0 not is within 1 ULPs of -4.9406564584124654e-324 ([-9.8813129168249309e-324, -0.0000000000000000e+00])
      
    
    
  
  
    
      
        smallest_non_zero, WithinULP( -smallest_non_zero, 2 )
      
      
        0.0f is within 2 ULPs of -1.40129846e-45f ([-4.20389539e-45, 1.40129846e-45])
      
    
    
      
        smallest_non_zero, !WithinULP( -smallest_non_zero, 1 )
      
      
        0.0f not is within 1 ULPs of -1.40129846e-45f ([-2.80259693e-45, -0.00000000e+00])
      
    
    
  
  
    
      
        answer := 42
      
      
        expected exception
      
      
    
    
      
        answer := 42
      
      
        
          thisThrows()
        
        
          thisThrows()
        
        
          expected exception
        
      
      
    
    
      
        answer := 42
      
      
        
          thisThrows()
        
        
          thisThrows()
        
      
      
    
    
  
  
    
      
        42 == f
      
      
        42 == {?}
      
    
    
  
  
    
      
        a == t
      
      
        3 == 3
      
    
    
      
        a == t
      
      
        3 == 3
      
    
    
      
        throws_int(true)
      
      
        throws_int(true)
      
    
    
      
        throws_int(true), int
      
      
        throws_int(true), int
      
    
    
      
        throws_int(false)
      
      
        throws_int(false)
      
    
    
      
        "aaa", Catch::Matchers::EndsWith("aaa")
      
      
        "aaa" ends with: "aaa"
      
    
    
      
        templated_tests<int>(3)
      
      
        true
      
    
    
  
  
    
      
        f() == 0
      
      
        1 == 0
      
    
    
      
        errno_after == 1
      
      
        1 == 1
      
    
    
  
  
    
      dummy := 0
    
    
      
        x == 4
      
      
        {?} == 4
      
    
    
  
  
    
    
    
    
    
    
  
  
    
      
        false != false
      
      
        false != false
      
    
    
      
        true != true
      
      
        true != true
      
    
    
      
        !true
      
      
        false
      
    
    
      
        !(true)
      
      
        !true
      
    
    
      
        !trueValue
      
      
        false
      
    
    
      
        !(trueValue)
      
      
        !true
      
    
    
      
        !(1 == 1)
      
      
        false
      
    
    
      
        !(1 == 1)
      
      
        !(1 == 1)
      
    
    
  
  
    
      
        false == false
      
      
        false == false
      
    
    
      
        true == true
      
      
        true == true
      
    
    
      
        !false
      
      
        true
      
    
    
      
        !(false)
      
      
        !false
      
    
    
      
        !falseValue
      
      
        true
      
    
    
      
        !(falseValue)
      
      
        !false
      
    
    
      
        !(1 == 2)
      
      
        true
      
    
    
      
        !(1 == 2)
      
      
        !(1 == 2)
      
    
    
  
  
    
      
        
          is_true<true>::value == true
        
        
          true == true
        
      
      
        
          true == is_true<true>::value
        
        
          true == true
        
      
      
    
    
      
        
          is_true<false>::value == false
        
        
          false == false
        
      
      
        
          false == is_true<false>::value
        
        
          false == false
        
      
      
    
    
      
        
          !is_true<false>::value
        
        
          true
        
      
      
    
    
      
        
          !!is_true<true>::value
        
        
          true
        
      
      
    
    
      
        
          is_true<true>::value
        
        
          true
        
      
      
        
          !(is_true<false>::value)
        
        
          !false
        
      
      
    
    
  
  
    
      
        x < y
      
      
        1 < 4
      
    
    
      
        y < z
      
      
        4 < 7
      
    
    
      
        x < z
      
      
        1 < 7
      
    
    
      
        x < y
      
      
        1 < 4
      
    
    
      
        y < z
      
      
        4 < 8
      
    
    
      
        x < z
      
      
        1 < 8
      
    
    
      
        x < y
      
      
        1 < 4
      
    
    
      
        y < z
      
      
        4 < 9
      
    
    
      
        x < z
      
      
        1 < 9
      
    
    
      
        x < y
      
      
        1 < 5
      
    
    
      
        y < z
      
      
        5 < 7
      
    
    
      
        x < z
      
      
        1 < 7
      
    
    
      
        x < y
      
      
        1 < 5
      
    
    
      
        y < z
      
      
        5 < 8
      
    
    
      
        x < z
      
      
        1 < 8
      
    
    
      
        x < y
      
      
        1 < 5
      
    
    
      
        y < z
      
      
        5 < 9
      
    
    
      
        x < z
      
      
        1 < 9
      
    
    
      
        x < y
      
      
        1 < 6
      
    
    
      
        y < z
      
      
        6 < 7
      
    
    
      
        x < z
      
      
        1 < 7
      
    
    
      
        x < y
      
      
        1 < 6
      
    
    
      
        y < z
      
      
        6 < 8
      
    
    
      
        x < z
      
      
        1 < 8
      
    
    
      
        x < y
      
      
        1 < 6
      
    
    
      
        y < z
      
      
        6 < 9
      
    
    
      
        x < z
      
      
        1 < 9
      
    
    
      
        x < y
      
      
        2 < 4
      
    
    
      
        y < z
      
      
        4 < 7
      
    
    
      
        x < z
      
      
        2 < 7
      
    
    
      
        x < y
      
      
        2 < 4
      
    
    
      
        y < z
      
      
        4 < 8
      
    
    
      
        x < z
      
      
        2 < 8
      
    
    
      
        x < y
      
      
        2 < 4
      
    
    
      
        y < z
      
      
        4 < 9
      
    
    
      
        x < z
      
      
        2 < 9
      
    
    
      
        x < y
      
      
        2 < 5
      
    
    
      
        y < z
      
      
        5 < 7
      
    
    
      
        x < z
      
      
        2 < 7
      
    
    
      
        x < y
      
      
        2 < 5
      
    
    
      
        y < z
      
      
        5 < 8
      
    
    
      
        x < z
      
      
        2 < 8
      
    
    
      
        x < y
      
      
        2 < 5
      
    
    
      
        y < z
      
      
        5 < 9
      
    
    
      
        x < z
      
      
        2 < 9
      
    
    
      
        x < y
      
      
        2 < 6
      
    
    
      
        y < z
      
      
        6 < 7
      
    
    
      
        x < z
      
      
        2 < 7
      
    
    
      
        x < y
      
      
        2 < 6
      
    
    
      
        y < z
      
      
        6 < 8
      
    
    
      
        x < z
      
      
        2 < 8
      
    
    
      
        x < y
      
      
        2 < 6
      
    
    
      
        y < z
      
      
        6 < 9
      
    
    
      
        x < z
      
      
        2 < 9
      
    
    
      
        x < y
      
      
        3 < 4
      
    
    
      
        y < z
      
      
        4 < 7
      
    
    
      
        x < z
      
      
        3 < 7
      
    
    
      
        x < y
      
      
        3 < 4
      
    
    
      
        y < z
      
      
        4 < 8
      
    
    
      
        x < z
      
      
        3 < 8
      
    
    
      
        x < y
      
      
        3 < 4
      
    
    
      
        y < z
      
      
        4 < 9
      
    
    
      
        x < z
      
      
        3 < 9
      
    
    
      
        x < y
      
      
        3 < 5
      
    
    
      
        y < z
      
      
        5 < 7
      
    
    
      
        x < z
      
      
        3 < 7
      
    
    
      
        x < y
      
      
        3 < 5
      
    
    
      
        y < z
      
      
        5 < 8
      
    
    
      
        x < z
      
      
        3 < 8
      
    
    
      
        x < y
      
      
        3 < 5
      
    
    
      
        y < z
      
      
        5 < 9
      
    
    
      
        x < z
      
      
        3 < 9
      
    
    
      
        x < y
      
      
        3 < 6
      
    
    
      
        y < z
      
      
        6 < 7
      
    
    
      
        x < z
      
      
        3 < 7
      
    
    
      
        x < y
      
      
        3 < 6
      
    
    
      
        y < z
      
      
        6 < 8
      
    
    
      
        x < z
      
      
        3 < 8
      
    
    
      
        x < y
      
      
        3 < 6
      
    
    
      
        y < z
      
      
        6 < 9
      
    
    
      
        x < z
      
      
        3 < 9
      
    
    
  
  
    
      
        s == "world"
      
      
        "hello" == "world"
      
    
    
  
  
    
      
        s == "hello"
      
      
        "hello" == "hello"
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>::m_a.size() == 1
      
      
        0 == 1
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>::m_a.size() == 1
      
      
        0 == 1
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>::m_a.size() == 1
      
      
        0 == 1
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>::m_a.size() == 1
      
      
        0 == 1
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>::m_a.size() == 0
      
      
        0 == 0
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>::m_a.size() == 0
      
      
        0 == 0
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>::m_a.size() == 0
      
      
        0 == 0
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>::m_a.size() == 0
      
      
        0 == 0
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>{}.m_a.size() < 2
      
      
        6 < 2
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>{}.m_a.size() < 2
      
      
        2 < 2
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>{}.m_a.size() < 2
      
      
        6 < 2
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>{}.m_a.size() < 2
      
      
        2 < 2
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>{}.m_a.size() >= 2
      
      
        6 >= 2
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>{}.m_a.size() >= 2
      
      
        2 >= 2
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>{}.m_a.size() >= 2
      
      
        6 >= 2
      
    
    
  
  
    
      
        Template_Fixture_2<TestType>{}.m_a.size() >= 2
      
      
        2 >= 2
      
    
    
  
  
    
      
        Template_Fixture<TestType>::m_a == 2
      
      
        1.0 == 2
      
    
    
  
  
    
      
        Template_Fixture<TestType>::m_a == 2
      
      
        1.0f == 2
      
    
    
  
  
    
      
        Template_Fixture<TestType>::m_a == 2
      
      
        1 == 2
      
    
    
  
  
    
      
        Template_Fixture<TestType>::m_a == 1
      
      
        1.0 == 1
      
    
    
  
  
    
      
        Template_Fixture<TestType>::m_a == 1
      
      
        1.0f == 1
      
    
    
  
  
    
      
        Template_Fixture<TestType>::m_a == 1
      
      
        1 == 1
      
    
    
  
  
    
      
        Nttp_Fixture<V>::value == 0
      
      
        1 == 0
      
    
    
  
  
    
      
        Nttp_Fixture<V>::value == 0
      
      
        3 == 0
      
    
    
  
  
    
      
        Nttp_Fixture<V>::value == 0
      
      
        6 == 0
      
    
    
  
  
    
      
        Nttp_Fixture<V>::value > 0
      
      
        1 > 0
      
    
    
  
  
    
      
        Nttp_Fixture<V>::value > 0
      
      
        3 > 0
      
    
    
  
  
    
      
        Nttp_Fixture<V>::value > 0
      
      
        6 > 0
      
    
    
  
  
    
      
        m_a == 2
      
      
        1 == 2
      
    
    
  
  
    
      
        m_a == 1
      
      
        1 == 1
      
    
    
  
  
    
      
        x.size() == 0
      
      
        0 == 0
      
    
    
  
  
    
      
        x.size() == 0
      
      
        0 == 0
      
    
    
  
  
    
      
        x.size() == 0
      
      
        0 == 0
      
    
    
  
  
    
      
        x.size() == 0
      
      
        0 == 0
      
    
    
  
  
    
      
        x.size() > 0
      
      
        42 > 0
      
    
    
  
  
    
      
        x.size() > 0
      
      
        9 > 0
      
    
    
  
  
    
      
        x.size() > 0
      
      
        42 > 0
      
    
    
  
  
    
      
        x.size() > 0
      
      
        9 > 0
      
    
    
  
  
    
      
        d == 1.23_a
      
      
        1.23 == Approx( 1.23 )
      
    
    
      
        d != 1.22_a
      
      
        1.23 != Approx( 1.22 )
      
    
    
      
        -d == -1.23_a
      
      
        -1.23 == Approx( -1.23 )
      
    
    
      
        d == 1.2_a .epsilon(.1)
      
      
        1.23 == Approx( 1.2 )
      
    
    
      
        d != 1.2_a .epsilon(.001)
      
      
        1.23 != Approx( 1.2 )
      
    
    
      
        d == 1_a .epsilon(.3)
      
      
        1.23 == Approx( 1.0 )
      
    
    
  
  
    
    
      to infinity and beyond
    
    
  
  
    
      
        &o1 == &o2
      
      
        0x == 0x
      
    
    
      
        o1 == o2
      
      
        {?} == {?}
      
    
    
  
  
    
      
        104.0 != Approx(100.0)
      
      
        104.0 != Approx( 100.0 )
      
    
    
      
        104.0 == Approx(100.0).margin(5)
      
      
        104.0 == Approx( 100.0 )
      
    
    
      
        104.0 == Approx(100.0).margin(4)
      
      
        104.0 == Approx( 100.0 )
      
    
    
      
        104.0 != Approx(100.0).margin(3)
      
      
        104.0 != Approx( 100.0 )
      
    
    
      
        100.3 != Approx(100.0)
      
      
        100.3 != Approx( 100.0 )
      
    
    
      
        100.3 == Approx(100.0).margin(0.5)
      
      
        100.3 == Approx( 100.0 )
      
    
    
  
  
    
  
  
    
      
        i++ == 7
      
      
        7 == 7
      
    
    
      
        i++ == 8
      
      
        8 == 8
      
    
    
  
  
    
      
        1 == 1
      
      
        1 == 1
      
    
    
      
        {Unknown expression after the reported line}
      
      
        {Unknown expression after the reported line}
      
      
        unexpected exception
      
    
    
  
  
    
  
  
    
      
        Approx(0).margin(0)
      
      
        Approx(0).margin(0)
      
    
    
      
        Approx(0).margin(1234656)
      
      
        Approx(0).margin(1234656)
      
    
    
      
        Approx(0).margin(-2), std::domain_error
      
      
        Approx(0).margin(-2), std::domain_error
      
    
    
      
        Approx(0).epsilon(0)
      
      
        Approx(0).epsilon(0)
      
    
    
      
        Approx(0).epsilon(1)
      
      
        Approx(0).epsilon(1)
      
    
    
      
        Approx(0).epsilon(-0.001), std::domain_error
      
      
        Approx(0).epsilon(-0.001), std::domain_error
      
    
    
      
        Approx(0).epsilon(1.0001), std::domain_error
      
      
        Approx(0).epsilon(1.0001), std::domain_error
      
    
    
  
  
    
      
        0.25f == Approx(0.0f).margin(0.25f)
      
      
        0.25f == Approx( 0.0 )
      
    
    
      
        0.0f == Approx(0.25f).margin(0.25f)
      
      
        0.0f == Approx( 0.25 )
      
    
    
      
        0.5f == Approx(0.25f).margin(0.25f)
      
      
        0.5f == Approx( 0.25 )
      
    
    
      
        245.0f == Approx(245.25f).margin(0.25f)
      
      
        245.0f == Approx( 245.25 )
      
    
    
      
        245.5f == Approx(245.25f).margin(0.25f)
      
      
        245.5f == Approx( 245.25 )
      
    
    
  
  
    
      
        divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 )
      
      
        3.1428571429 == Approx( 3.141 )
      
    
    
      
        divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 )
      
      
        3.1428571429 != Approx( 3.141 )
      
    
    
  
  
    
      
        d != Approx( 1.231 )
      
      
        1.23 != Approx( 1.231 )
      
    
    
      
        d == Approx( 1.231 ).epsilon( 0.1 )
      
      
        1.23 == Approx( 1.231 )
      
    
    
  
  
    
      
        1.23f == Approx( 1.23f )
      
      
        1.23f == Approx( 1.2300000191 )
      
    
    
      
        0.0f == Approx( 0.0f )
      
      
        0.0f == Approx( 0.0 )
      
    
    
  
  
    
      
        1 == Approx( 1 )
      
      
        1 == Approx( 1.0 )
      
    
    
      
        0 == Approx( 0 )
      
      
        0 == Approx( 0.0 )
      
    
    
  
  
    
      
        1.0f == Approx( 1 )
      
      
        1.0f == Approx( 1.0 )
      
    
    
      
        0 == Approx( dZero)
      
      
        0 == Approx( 0.0 )
      
    
    
      
        0 == Approx( dSmall ).margin( 0.001 )
      
      
        0 == Approx( 0.00001 )
      
    
    
      
        1.234f == Approx( dMedium )
      
      
        1.234f == Approx( 1.234 )
      
    
    
      
        dMedium == Approx( 1.234f )
      
      
        1.234 == Approx( 1.2339999676 )
      
    
    
  
  
    
      
        
          1, Predicate<int>( alwaysTrue, "always true" )
        
        
          1 matches predicate: "always true"
        
      
      
        
          1, !Predicate<int>( alwaysFalse, "always false" )
        
        
          1 not matches predicate: "always false"
        
      
      
    
    
      
        
          "Hello olleH", Predicate<std::string>( []( std::string const& str ) -> bool { return str.front() == str.back(); }, "First and last character should be equal" )
        
        
          "Hello olleH" matches predicate: "First and last character should be equal"
        
      
      
        
          "This wouldn't pass", !Predicate<std::string>( []( std::string const& str ) -> bool { return str.front() == str.back(); } )
        
        
          "This wouldn't pass" not matches undescribed predicate
        
      
      
    
    
  
  
    
      
        lhs | rhs
      
      
        Val: 1 | Val: 2
      
    
    
      
        !(lhs & rhs)
      
      
        !(Val: 1 & Val: 2)
      
    
    
      
        HasBitOperators{ 1 } & HasBitOperators{ 1 }
      
      
        Val: 1 & Val: 1
      
    
    
      
        lhs ^ rhs
      
      
        Val: 1 ^ Val: 2
      
    
    
      
        !(lhs ^ lhs)
      
      
        !(Val: 1 ^ Val: 1)
      
    
    
  
  
    
      
        true
      
      
        true
      
    
    
    
      
        true
      
      
        true
      
    
    
    
  
  
    
      
        
          a, Contains(1)
        
        
          { 1, 2, 3 } contains element 1
        
      
      
        
          b, Contains(1)
        
        
          { 0, 1, 2 } contains element 1
        
      
      
        
          c, !Contains(1)
        
        
          { 4, 5, 6 } not contains element 1
        
      
      
    
    
      
        
          a, Contains(0, close_enough)
        
        
          { 1, 2, 3 } contains element 0
        
      
      
        
          b, Contains(0, close_enough)
        
        
          { 0, 1, 2 } contains element 0
        
      
      
        
          c, !Contains(0, close_enough)
        
        
          { 4, 5, 6 } not contains element 0
        
      
      
    
    
      
        
          a, Contains(4, [](auto&& lhs, size_t sz) { return lhs.size() == sz; })
        
        
          { "abc", "abcd", "abcde" } contains element 4
        
      
      
    
    
      
        
          in, Contains(1)
        
        
          { 1, 2, 3, 4, 5 } contains element 1
        
      
      
        
          in, !Contains(8)
        
        
          { 1, 2, 3, 4, 5 } not contains element 8
        
      
      
    
    
      
        
          in, Contains(MoveOnlyTestElement{ 2 })
        
        
          { 1, 2, 3 } contains element 2
        
      
      
        
          in, !Contains(MoveOnlyTestElement{ 9 })
        
        
          { 1, 2, 3 } not contains element 9
        
      
      
    
    
      
        
          in, Contains(Catch::Matchers::WithinAbs(0.5, 0.5))
        
        
          { 1.0, 2.0, 3.0, 0.0 } contains element matching is within 0.5 of 0.5
        
      
      
    
    
  
  
    
      
        
          empty_array, IsEmpty()
        
        
          {  } is empty
        
      
      
        
          non_empty_array, !IsEmpty()
        
        
          { 0.0 } not is empty
        
      
      
        
          empty_vec, IsEmpty()
        
        
          {  } is empty
        
      
      
        
          non_empty_vec, !IsEmpty()
        
        
          { 'a', 'b', 'c' } not is empty
        
      
      
        
          inner_lists_are_empty, !IsEmpty()
        
        
          { {  } } not is empty
        
      
      
        
          inner_lists_are_empty.front(), IsEmpty()
        
        
          {  } is empty
        
      
      
    
    
      
        
          has_empty{}, !IsEmpty()
        
        
          {?} not is empty
        
      
      
    
    
      
        
          unrelated::ADL_empty{}, IsEmpty()
        
        
          {?} is empty
        
      
      
    
    
  
  
    
      a := 1
    
    
      b := 2
    
    
      c := 3
    
    
      a + b := 3
    
    
      a+b := 3
    
    
      c > b := true
    
    
      a == 1 := true
    
    
  
  
    
      std::vector<int>{1, 2, 3}[0, 1, 2] := 3
    
    
      std::vector<int>{1, 2, 3}[(0, 1)] := 2
    
    
      std::vector<int>{1, 2, 3}[0] := 1
    
    
      (helper_1436<int, int>{12, -12}) := { 12, -12 }
    
    
      (helper_1436<int, int>(-12, 12)) := { -12, 12 }
    
    
      (1, 2) := 2
    
    
      (2, 3) := 3
    
    
  
  
    
      ("comma, in string", "escaped, \", ") := "escaped, ", "
    
    
      "single quote in string,'," := "single quote in string,',"
    
    
      "some escapes, \\,\\\\" := "some escapes, \,\\"
    
    
      "some, ), unmatched, } prenheses {[<" := "some, ), unmatched, } prenheses {[<"
    
    
      '"' := '"'
    
    
      '\'' := '''
    
    
      ',' := ','
    
    
      '}' := '}'
    
    
      ')' := ')'
    
    
      '(' := '('
    
    
      '{' := '{'
    
    
  
  
    
    
    
  
  
    
      
        
          eq( "", "" )
        
        
          true
        
      
      
        
          !(eq( "", "a" ))
        
        
          !false
        
      
      
    
    
      
        
          eq( "a", "a" )
        
        
          true
        
      
      
        
          eq( "a", "A" )
        
        
          true
        
      
      
        
          eq( "A", "a" )
        
        
          true
        
      
      
        
          eq( "A", "A" )
        
        
          true
        
      
      
        
          !(eq( "a", "b" ))
        
        
          !false
        
      
      
        
          !(eq( "a", "B" ))
        
        
          !false
        
      
      
    
    
  
  
    
      
        
          lt( "", "a" )
        
        
          true
        
      
      
        
          !(lt( "a", "a" ))
        
        
          !false
        
      
      
        
          !(lt( "", "" ))
        
        
          !false
        
      
      
    
    
      
        
          lt( "a", "b" )
        
        
          true
        
      
      
        
          lt( "a", "B" )
        
        
          true
        
      
      
        
          lt( "A", "b" )
        
        
          true
        
      
      
        
          lt( "A", "B" )
        
        
          true
        
      
      
    
    
  
  
    
      
        
          tab == '\t'
        
        
          '\t' == '\t'
        
      
      
        
          newline == '\n'
        
        
          '\n' == '\n'
        
      
      
        
          carr_return == '\r'
        
        
          '\r' == '\r'
        
      
      
        
          form_feed == '\f'
        
        
          '\f' == '\f'
        
      
      
    
    
      
        
          space == ' '
        
        
          ' ' == ' '
        
      
      
        
          c == chars[i]
        
        
          'a' == 'a'
        
      
      
        
          c == chars[i]
        
        
          'z' == 'z'
        
      
      
        
          c == chars[i]
        
        
          'A' == 'A'
        
      
      
        
          c == chars[i]
        
        
          'Z' == 'Z'
        
      
      
    
    
      
        
          null_terminator == '\0'
        
        
          0 == 0
        
      
      
        
          c == i
        
        
          2 == 2
        
      
      
        
          c == i
        
        
          3 == 3
        
      
      
        
          c == i
        
        
          4 == 4
        
      
      
        
          c == i
        
        
          5 == 5
        
      
      
    
    
  
  
    
      
        name.empty()
      
      
        true
      
    
    
      
        name == "foo"
      
      
        "foo" == "foo"
      
    
    
  
  
    
    
      
        
          parse_result
        
        
          {?}
        
      
      
        
          res == std::vector<std::string>{ "aaa", "bbb" }
        
        
          { "aaa", "bbb" } == { "aaa", "bbb" }
        
      
      
    
    
  
  
    
      
        
          streamWrapper.str().empty()
        
        
          true
        
      
      
    
    
      
        
          streamWrapper.str() == "1\nUsing code: 2\n2\nUsing code: 0\n3\n"
        
        
          "1
Using code: 2
2
Using code: 0
3
"
==
"1
Using code: 2
2
Using code: 0
3
"
        
      
      
    
    
      
        
          streamWrapper.str() == "Using code: 2\nA\nB\nUsing code: 0\nC\n"
        
        
          "Using code: 2
A
B
Using code: 0
C
"
==
"Using code: 2
A
B
Using code: 0
C
"
        
      
      
    
    
  
  
    
      
        1, ( MatcherA() && MatcherB() ) && MatcherC()
      
      
        1 ( equals: (int) 1 or (string) "1" and equals: (long long) 1 and equals: (T) 1 )
      
    
    
      
        1, MatcherA() && ( MatcherB() && MatcherC() )
      
      
        1 ( equals: (int) 1 or (string) "1" and equals: (long long) 1 and equals: (T) 1 )
      
    
    
      
        1, ( MatcherA() && MatcherB() ) && ( MatcherC() && MatcherD() )
      
      
        1 ( equals: (int) 1 or (string) "1" and equals: (long long) 1 and equals: (T) 1 and equals: true )
      
    
    
  
  
    
      
        1, ( MatcherA() || MatcherB() ) || MatcherC()
      
      
        1 ( equals: (int) 1 or (string) "1" or equals: (long long) 1 or equals: (T) 1 )
      
    
    
      
        1, MatcherA() || ( MatcherB() || MatcherC() )
      
      
        1 ( equals: (int) 1 or (string) "1" or equals: (long long) 1 or equals: (T) 1 )
      
    
    
      
        1, ( MatcherA() || MatcherB() ) || ( MatcherC() || MatcherD() )
      
      
        1 ( equals: (int) 1 or (string) "1" or equals: (long long) 1 or equals: (T) 1 or equals: true )
      
    
    
  
  
    
      
        0, !MatcherA()
      
      
        0 not equals: (int) 1 or (string) "1"
      
    
    
      
        1, !!MatcherA()
      
      
        1 equals: (int) 1 or (string) "1"
      
    
    
      
        0, !!!MatcherA()
      
      
        0 not equals: (int) 1 or (string) "1"
      
    
    
      
        1, !!!!MatcherA()
      
      
        1 equals: (int) 1 or (string) "1"
      
    
    
  
  
    
  
  
    
      
        1, MatcherA() || MatcherB()
      
      
        1 ( equals: (int) 1 or (string) "1" or equals: (long long) 1 )
      
    
    
      
        1, MatcherA() && MatcherB()
      
      
        1 ( equals: (int) 1 or (string) "1" and equals: (long long) 1 )
      
    
    
      
        1, MatcherA() || !MatcherB()
      
      
        1 ( equals: (int) 1 or (string) "1" or not equals: (long long) 1 )
      
    
    
  
  
    
      
        vec, Predicate<std::vector<int>>( []( auto const& v ) { return std::all_of( v.begin(), v.end(), []( int elem ) { return elem % 2 == 1; } ); }, "All elements are odd" ) && !EqualsRange( a )
      
      
        { 1, 3, 5 } ( matches predicate: "All elements are odd" and not Equals: { 5, 3, 1 } )
      
    
    
      
        str, StartsWith( "foo" ) && EqualsRange( arr ) && EndsWith( "bar" )
      
      
        "foobar" ( starts with: "foo" and Equals: { 'f', 'o', 'o', 'b', 'a', 'r' } and ends with: "bar" )
      
    
    
      
        str, StartsWith( "foo" ) && !EqualsRange( bad_arr ) && EndsWith( "bar" )
      
      
        "foobar" ( starts with: "foo" and not Equals: { 'o', 'o', 'f', 'b', 'a', 'r' } and ends with: "bar" )
      
    
    
      
        str, EqualsRange( arr ) && StartsWith( "foo" ) && EndsWith( "bar" )
      
      
        "foobar" ( Equals: { 'f', 'o', 'o', 'b', 'a', 'r' } and starts with: "foo" and ends with: "bar" )
      
    
    
      
        str, !EqualsRange( bad_arr ) && StartsWith( "foo" ) && EndsWith( "bar" )
      
      
        "foobar" ( not Equals: { 'o', 'o', 'f', 'b', 'a', 'r' } and starts with: "foo" and ends with: "bar" )
      
    
    
      
        str, EqualsRange( bad_arr ) || ( StartsWith( "foo" ) && EndsWith( "bar" ) )
      
      
        "foobar" ( Equals: { 'o', 'o', 'f', 'b', 'a', 'r' } or ( starts with: "foo" and ends with: "bar" ) )
      
    
    
      
        str, ( StartsWith( "foo" ) && EndsWith( "bar" ) ) || EqualsRange( bad_arr )
      
      
        "foobar" ( ( starts with: "foo" and ends with: "bar" ) or Equals: { 'o', 'o', 'f', 'b', 'a', 'r' } )
      
    
    
  
  
    
      
        container, EqualsRange( a ) || EqualsRange( b ) || EqualsRange( c )
      
      
        { 1, 2, 3 } ( Equals: { 1, 2, 3 } or Equals: { 0, 1, 2 } or Equals: { 4, 5, 6 } )
      
    
    
  
  
    
      
        std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}}
      
      
        std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}}
      
    
    
      
        std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}}
      
      
        std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}}
      
    
    
      
        std::vector<int>{1, 2, 3} == std::vector<int>{1, 2, 3}
      
      
        std::vector<int>{1, 2, 3} == std::vector<int>{1, 2, 3}
      
    
    
      
        std::vector<int>{1, 2, 3} == std::vector<int>{1, 2, 3}
      
      
        std::vector<int>{1, 2, 3} == std::vector<int>{1, 2, 3}
      
    
    
      
        std::vector<int>{1, 2} == std::vector<int>{1, 2}
      
      
        { 1, 2 } == { 1, 2 }
      
    
    
      
        std::vector<int>{1, 2} == std::vector<int>{1, 2}
      
      
        { 1, 2 } == { 1, 2 }
      
    
    
      
        !(std::vector<int>{1, 2} == std::vector<int>{1, 2, 3})
      
      
        !({ 1, 2 } == { 1, 2, 3 })
      
    
    
      
        !(std::vector<int>{1, 2} == std::vector<int>{1, 2, 3})
      
      
        !({ 1, 2 } == { 1, 2, 3 })
      
    
    
      
        std::vector<int>{1, 2} == std::vector<int>{1, 2}
      
      
        { 1, 2 } == { 1, 2 }
      
    
    
      
        std::vector<int>{1, 2} == std::vector<int>{1, 2}
      
      
        { 1, 2 } == { 1, 2 }
      
    
    
      
        true
      
      
        true
      
    
    
      
        std::vector<int>{1, 2} == std::vector<int>{1, 2}
      
      
        { 1, 2 } == { 1, 2 }
      
    
    
  
  
    
      
        a
      
      
        0x
      
    
    
      
        a == &foo
      
      
        0x == 0x
      
    
    
  
  
    
      
        SimplePcg32{} == SimplePcg32{}
      
      
        {?} == {?}
      
    
    
      
        SimplePcg32{ 0 } != SimplePcg32{}
      
      
        {?} != {?}
      
    
    
      
        !(SimplePcg32{ 1 } == SimplePcg32{ 2 })
      
      
        !({?} == {?})
      
    
    
      
        !(SimplePcg32{ 1 } != SimplePcg32{ 1 })
      
      
        !({?} != {?})
      
    
    
  
  
    
      
        td == Approx(10.0)
      
      
        StrongDoubleTypedef(10) == Approx( 10.0 )
      
    
    
      
        Approx(10.0) == td
      
      
        Approx( 10.0 ) == StrongDoubleTypedef(10)
      
    
    
      
        td != Approx(11.0)
      
      
        StrongDoubleTypedef(10) != Approx( 11.0 )
      
    
    
      
        Approx(11.0) != td
      
      
        Approx( 11.0 ) != StrongDoubleTypedef(10)
      
    
    
      
        td <= Approx(10.0)
      
      
        StrongDoubleTypedef(10) <= Approx( 10.0 )
      
    
    
      
        td <= Approx(11.0)
      
      
        StrongDoubleTypedef(10) <= Approx( 11.0 )
      
    
    
      
        Approx(10.0) <= td
      
      
        Approx( 10.0 ) <= StrongDoubleTypedef(10)
      
    
    
      
        Approx(9.0) <= td
      
      
        Approx( 9.0 ) <= StrongDoubleTypedef(10)
      
    
    
      
        td >= Approx(9.0)
      
      
        StrongDoubleTypedef(10) >= Approx( 9.0 )
      
    
    
      
        td >= Approx(td)
      
      
        StrongDoubleTypedef(10) >= Approx( 10.0 )
      
    
    
      
        Approx(td) >= td
      
      
        Approx( 10.0 ) >= StrongDoubleTypedef(10)
      
    
    
      
        Approx(11.0) >= td
      
      
        Approx( 11.0 ) >= StrongDoubleTypedef(10)
      
    
    
  
  
    
      
        54 == 6*9
      
      
        54 == 54
      
    
    
  
  
    
      
        ( -1 > 2u )
      
      
        true
      
    
    
      
        -1 > 2u
      
      
        -1 > 2
      
    
    
      
        ( 2u < -1 )
      
      
        true
      
    
    
      
        2u < -1
      
      
        2 < -1
      
    
    
      
        ( minInt > 2u )
      
      
        true
      
    
    
      
        minInt > 2u
      
      
        -2147483648 > 2
      
    
    
  
  
    
      
        i == 1
      
      
        1 == 1
      
    
    
      
        ui == 2
      
      
        2 == 2
      
    
    
      
        l == 3
      
      
        3 == 3
      
    
    
      
        ul == 4
      
      
        4 == 4
      
    
    
      
        c == 5
      
      
        5 == 5
      
    
    
      
        uc == 6
      
      
        6 == 6
      
    
    
      
        1 == i
      
      
        1 == 1
      
    
    
      
        2 == ui
      
      
        2 == 2
      
    
    
      
        3 == l
      
      
        3 == 3
      
    
    
      
        4 == ul
      
      
        4 == 4
      
    
    
      
        5 == c
      
      
        5 == 5
      
    
    
      
        6 == uc
      
      
        6 == 6
      
    
    
      
        (std::numeric_limits<uint32_t>::max)() > ul
      
      
        4294967295 (0x) > 4
      
    
    
  
  
    
      
        
          !(matcher.match( 1 ))
        
        
          !false
        
      
      
        
          first.matchCalled
        
        
          true
        
      
      
        
          !second.matchCalled
        
        
          true
        
      
      
    
    
      
        
          matcher.match( 1 )
        
        
          true
        
      
      
        
          first.matchCalled
        
        
          true
        
      
      
        
          !second.matchCalled
        
        
          true
        
      
      
    
    
  
  
    
      
        
          !(matcher.match( 1 ))
        
        
          !false
        
      
      
        
          first.matchCalled
        
        
          true
        
      
      
        
          !second.matchCalled
        
        
          true
        
      
      
    
    
      
        
          matcher.match( 1 )
        
        
          true
        
      
      
        
          first.matchCalled
        
        
          true
        
      
      
        
          !second.matchCalled
        
        
          true
        
      
      
    
    
  
  
    
      
        testStringForMatching(), ContainsSubstring( "not there", Catch::CaseSensitive::No )
      
      
        "this string contains 'abc' as a substring" contains: "not there" (case insensitive)
      
    
    
      
        testStringForMatching(), ContainsSubstring( "STRING" )
      
      
        "this string contains 'abc' as a substring" contains: "STRING"
      
    
    
  
  
    
    
    
    
    
    
    
    
    
    
    
    
    
      
        
          call_count == 1
        
        
          1 == 1
        
      
      
        
          make_data().size() == test_count
        
        
          6 == 6
        
      
      
    
    
  
  
    
      
        Catch::makeStream( "-" )->isConsole()
      
      
        true
      
    
    
  
  
    
      
        throwCustom()
      
      
        throwCustom()
      
      
        custom exception - not std
      
    
    
  
  
    
      
        throwCustom(), std::exception
      
      
        throwCustom(), std::exception
      
      
        custom exception - not std
      
    
    
  
  
    
      custom std exception
    
    
  
  
    
      
        101.000001 != Approx(100).epsilon(0.01)
      
      
        101.000001 != Approx( 100.0 )
      
    
    
      
        std::pow(10, -5) != Approx(std::pow(10, -7))
      
      
        0.00001 != Approx( 0.0000001 )
      
    
    
  
  
    
      
        enumInfo->lookup(0) == "Value1"
      
      
        Value1 == "Value1"
      
    
    
      
        enumInfo->lookup(1) == "Value2"
      
      
        Value2 == "Value2"
      
    
    
      
        enumInfo->lookup(3) == "{** unexpected enum value **}"
      
      
        {** unexpected enum value **}
==
"{** unexpected enum value **}"
      
    
    
  
  
    
      
        Catch::makeStream( "" )->isConsole()
      
      
        true
      
    
    
  
  
    
      
        Catch::TestCaseInfo( "", { "fake test name", "[]" }, dummySourceLineInfo )
      
      
        Catch::TestCaseInfo( "", { "fake test name", "[]" }, dummySourceLineInfo )
      
    
    
  
  
    
      
        testStringForMatching(), EndsWith( "Substring" )
      
      
        "this string contains 'abc' as a substring" ends with: "Substring"
      
    
    
      
        testStringForMatching(), EndsWith( "this", Catch::CaseSensitive::No )
      
      
        "this string contains 'abc' as a substring" ends with: "this" (case insensitive)
      
    
    
  
  
    
      
        stringify( EnumClass3::Value1 ) == "Value1"
      
      
        "Value1" == "Value1"
      
    
    
      
        stringify( EnumClass3::Value2 ) == "Value2"
      
      
        "Value2" == "Value2"
      
    
    
      
        stringify( EnumClass3::Value3 ) == "Value3"
      
      
        "Value3" == "Value3"
      
    
    
      
        stringify( EnumClass3::Value4 ) == "{** unexpected enum value **}"
      
      
        "{** unexpected enum value **}"
==
"{** unexpected enum value **}"
      
    
    
      
        stringify( ec3 ) == "Value2"
      
      
        "Value2" == "Value2"
      
    
    
  
  
    
      
        stringify( Bikeshed::Colours::Red ) == "Red"
      
      
        "Red" == "Red"
      
    
    
      
        stringify( Bikeshed::Colours::Blue ) == "Blue"
      
      
        "Blue" == "Blue"
      
    
    
  
  
    
      
        101.01 != Approx(100).epsilon(0.01)
      
      
        101.01 != Approx( 100.0 )
      
    
    
  
  
    
      
        data.int_seven == 6
      
      
        7 == 6
      
    
    
      
        data.int_seven == 8
      
      
        7 == 8
      
    
    
      
        data.int_seven == 0
      
      
        7 == 0
      
    
    
      
        data.float_nine_point_one == Approx( 9.11f )
      
      
        9.1f == Approx( 9.1099996567 )
      
    
    
      
        data.float_nine_point_one == Approx( 9.0f )
      
      
        9.1f == Approx( 9.0 )
      
    
    
      
        data.float_nine_point_one == Approx( 1 )
      
      
        9.1f == Approx( 1.0 )
      
    
    
      
        data.float_nine_point_one == Approx( 0 )
      
      
        9.1f == Approx( 0.0 )
      
    
    
      
        data.double_pi == Approx( 3.1415 )
      
      
        3.1415926535 == Approx( 3.1415 )
      
    
    
      
        data.str_hello == "goodbye"
      
      
        "hello" == "goodbye"
      
    
    
      
        data.str_hello == "hell"
      
      
        "hello" == "hell"
      
    
    
      
        data.str_hello == "hello1"
      
      
        "hello" == "hello1"
      
    
    
      
        data.str_hello.size() == 6
      
      
        5 == 6
      
    
    
      
        x == Approx( 1.301 )
      
      
        1.3 == Approx( 1.301 )
      
    
    
  
  
    
      
        data.int_seven == 7
      
      
        7 == 7
      
    
    
      
        data.float_nine_point_one == Approx( 9.1f )
      
      
        9.1f == Approx( 9.1000003815 )
      
    
    
      
        data.double_pi == Approx( 3.1415926535 )
      
      
        3.1415926535 == Approx( 3.1415926535 )
      
    
    
      
        data.str_hello == "hello"
      
      
        "hello" == "hello"
      
    
    
      
        "hello" == data.str_hello
      
      
        "hello" == "hello"
      
    
    
      
        data.str_hello.size() == 5
      
      
        5 == 5
      
    
    
      
        x == Approx( 1.3 )
      
      
        1.3 == Approx( 1.3 )
      
    
    
  
  
    
      
        testStringForMatching(), Equals( "this string contains 'abc' as a substring" )
      
      
        "this string contains 'abc' as a substring" equals: "this string contains 'abc' as a substring"
      
    
    
      
        testStringForMatching(), Equals( "this string contains 'ABC' as a substring", Catch::CaseSensitive::No )
      
      
        "this string contains 'abc' as a substring" equals: "this string contains 'abc' as a substring" (case insensitive)
      
    
    
  
  
    
      
        testStringForMatching(), Equals( "this string contains 'ABC' as a substring" )
      
      
        "this string contains 'abc' as a substring" equals: "this string contains 'ABC' as a substring"
      
    
    
      
        testStringForMatching(), Equals( "something else", Catch::CaseSensitive::No )
      
      
        "this string contains 'abc' as a substring" equals: "something else" (case insensitive)
      
    
    
  
  
    
      
        ::Catch::Detail::stringify(WhatException{}) == "This exception has overridden what() method"
      
      
        "This exception has overridden what() method"
==
"This exception has overridden what() method"
      
    
    
      
        ::Catch::Detail::stringify(OperatorException{}) == "OperatorException"
      
      
        "OperatorException" == "OperatorException"
      
    
    
      
        ::Catch::Detail::stringify(StringMakerException{}) == "StringMakerException"
      
      
        "StringMakerException"
==
"StringMakerException"
      
    
    
  
  
    
      
        
          doesNotThrow(), SpecialException, ExceptionMatcher{ 1 }
        
        
          doesNotThrow(), SpecialException, ExceptionMatcher{ 1 }
        
      
      
        
          doesNotThrow(), SpecialException, ExceptionMatcher{ 1 }
        
        
          doesNotThrow(), SpecialException, ExceptionMatcher{ 1 }
        
      
      
    
    
      
        
          throwsAsInt( 1 ), SpecialException, ExceptionMatcher{ 1 }
        
        
          throwsAsInt( 1 ), SpecialException, ExceptionMatcher{ 1 }
        
        
          Unknown exception
        
      
      
        
          throwsAsInt( 1 ), SpecialException, ExceptionMatcher{ 1 }
        
        
          throwsAsInt( 1 ), SpecialException, ExceptionMatcher{ 1 }
        
        
          Unknown exception
        
      
      
    
    
      
        
          throwsSpecialException( 3 ), SpecialException, ExceptionMatcher{ 1 }
        
        
          SpecialException::what special exception has value of 1
        
      
      
        
          throwsSpecialException( 4 ), SpecialException, ExceptionMatcher{ 1 }
        
        
          SpecialException::what special exception has value of 1
        
      
      
    
    
  
  
    
      
        throwsSpecialException( 1 ), SpecialException, ExceptionMatcher{ 1 }
      
      
        SpecialException::what special exception has value of 1
      
    
    
      
        throwsSpecialException( 2 ), SpecialException, ExceptionMatcher{ 2 }
      
      
        SpecialException::what special exception has value of 2
      
    
    
  
  
    
      
        
          thisThrows(), "expected exception"
        
        
          "expected exception" equals: "expected exception"
        
      
      
    
    
      
        
          thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No )
        
        
          "expected exception" equals: "expected exception" (case insensitive)
        
      
      
    
    
      
        
          thisThrows(), StartsWith( "expected" )
        
        
          "expected exception" starts with: "expected"
        
      
      
        
          thisThrows(), EndsWith( "exception" )
        
        
          "expected exception" ends with: "exception"
        
      
      
        
          thisThrows(), ContainsSubstring( "except" )
        
        
          "expected exception" contains: "except"
        
      
      
        
          thisThrows(), ContainsSubstring( "exCept", Catch::CaseSensitive::No )
        
        
          "expected exception" contains: "except" (case insensitive)
        
      
      
    
    
  
  
    
      
        throwsDerivedException(), DerivedException, Message( "DerivedException::what" )
      
      
        DerivedException::what exception message matches "DerivedException::what"
      
    
    
      
        throwsDerivedException(), DerivedException, !Message( "derivedexception::what" )
      
      
        DerivedException::what not exception message matches "derivedexception::what"
      
    
    
      
        throwsSpecialException( 2 ), SpecialException, !Message( "DerivedException::what" )
      
      
        SpecialException::what not exception message matches "DerivedException::what"
      
    
    
      
        throwsSpecialException( 2 ), SpecialException, Message( "SpecialException::what" )
      
      
        SpecialException::what exception message matches "SpecialException::what"
      
    
    
  
  
    
      
        thisThrows(), std::string
      
      
        thisThrows(), std::string
      
      
        expected exception
      
    
    
      
        thisDoesntThrow(), std::domain_error
      
      
        thisDoesntThrow(), std::domain_error
      
    
    
      
        thisThrows()
      
      
        thisThrows()
      
      
        expected exception
      
    
    
  
  
    
      This is a failure
    
    
  
  
    
    
  
  
    
      This is a failure
    
    
      This message appears in the output
    
    
  
  
    
      
        Factorial(0) == 1
      
      
        1 == 1
      
    
    
      
        Factorial(1) == 1
      
      
        1 == 1
      
    
    
      
        Factorial(2) == 2
      
      
        2 == 2
      
    
    
      
        Factorial(3) == 6
      
      
        6 == 6
      
    
    
      
        Factorial(10) == 3628800
      
      
        3628800 (0x) == 3628800 (0x)
      
    
    
  
  
    
      
        
          10., WithinRel( 11.1, 0.1 )
        
        
          10.0 and 11.1 are within 10% of each other
        
      
      
        
          10., !WithinRel( 11.2, 0.1 )
        
        
          10.0 not and 11.2 are within 10% of each other
        
      
      
        
          1., !WithinRel( 0., 0.99 )
        
        
          1.0 not and 0 are within 99% of each other
        
      
      
        
          -0., WithinRel( 0. )
        
        
          -0.0 and 0 are within 2.22045e-12% of each other
        
      
      
        
          
            v1, WithinRel( v2 )
          
          
            0.0 and 2.22507e-308 are within 2.22045e-12% of each other
          
        
        
      
      
    
    
      
        
          1., WithinAbs( 1., 0 )
        
        
          1.0 is within 0.0 of 1.0
        
      
      
        
          0., WithinAbs( 1., 1 )
        
        
          0.0 is within 1.0 of 1.0
        
      
      
        
          0., !WithinAbs( 1., 0.99 )
        
        
          0.0 not is within 0.99 of 1.0
        
      
      
        
          0., !WithinAbs( 1., 0.99 )
        
        
          0.0 not is within 0.99 of 1.0
        
      
      
        
          11., !WithinAbs( 10., 0.5 )
        
        
          11.0 not is within 0.5 of 10.0
        
      
      
        
          10., !WithinAbs( 11., 0.5 )
        
        
          10.0 not is within 0.5 of 11.0
        
      
      
        
          -10., WithinAbs( -10., 0.5 )
        
        
          -10.0 is within 0.5 of -10.0
        
      
      
        
          -10., WithinAbs( -9.6, 0.5 )
        
        
          -10.0 is within 0.5 of -9.6
        
      
      
    
    
      
        
          1., WithinULP( 1., 0 )
        
        
          1.0 is within 0 ULPs of 1.0000000000000000e+00 ([1.0000000000000000e+00, 1.0000000000000000e+00])
        
      
      
        
          nextafter( 1., 2. ), WithinULP( 1., 1 )
        
        
          1.0 is within 1 ULPs of 1.0000000000000000e+00 ([9.9999999999999989e-01, 1.0000000000000002e+00])
        
      
      
        
          0., WithinULP( nextafter( 0., 1. ), 1 )
        
        
          0.0 is within 1 ULPs of 4.9406564584124654e-324 ([0.0000000000000000e+00, 9.8813129168249309e-324])
        
      
      
        
          1., WithinULP( nextafter( 1., 0. ), 1 )
        
        
          1.0 is within 1 ULPs of 9.9999999999999989e-01 ([9.9999999999999978e-01, 1.0000000000000000e+00])
        
      
      
        
          1., !WithinULP( nextafter( 1., 2. ), 0 )
        
        
          1.0 not is within 0 ULPs of 1.0000000000000002e+00 ([1.0000000000000002e+00, 1.0000000000000002e+00])
        
      
      
        
          1., WithinULP( 1., 0 )
        
        
          1.0 is within 0 ULPs of 1.0000000000000000e+00 ([1.0000000000000000e+00, 1.0000000000000000e+00])
        
      
      
        
          -0., WithinULP( 0., 0 )
        
        
          -0.0 is within 0 ULPs of 0.0000000000000000e+00 ([0.0000000000000000e+00, 0.0000000000000000e+00])
        
      
      
    
    
      
        
          1., WithinAbs( 1., 0.5 ) || WithinULP( 2., 1 )
        
        
          1.0 ( is within 0.5 of 1.0 or is within 1 ULPs of 2.0000000000000000e+00 ([1.9999999999999998e+00, 2.0000000000000004e+00]) )
        
      
      
        
          1., WithinAbs( 2., 0.5 ) || WithinULP( 1., 0 )
        
        
          1.0 ( is within 0.5 of 2.0 or is within 0 ULPs of 1.0000000000000000e+00 ([1.0000000000000000e+00, 1.0000000000000000e+00]) )
        
      
      
        
          0.0001, WithinAbs( 0., 0.001 ) || WithinRel( 0., 0.1 )
        
        
          0.0001 ( is within 0.001 of 0.0 or and 0 are within 10% of each other )
        
      
      
    
    
      
        
          WithinAbs( 1., 0. )
        
        
          WithinAbs( 1., 0. )
        
      
      
        
          WithinAbs( 1., -1. ), std::domain_error
        
        
          WithinAbs( 1., -1. ), std::domain_error
        
      
      
        
          WithinULP( 1., 0 )
        
        
          WithinULP( 1., 0 )
        
      
      
        
          WithinRel( 1., 0. )
        
        
          WithinRel( 1., 0. )
        
      
      
        
          WithinRel( 1., -0.2 ), std::domain_error
        
        
          WithinRel( 1., -0.2 ), std::domain_error
        
      
      
        
          WithinRel( 1., 1. ), std::domain_error
        
        
          WithinRel( 1., 1. ), std::domain_error
        
      
      
    
    
  
  
    
      
        
          10.f, WithinRel( 11.1f, 0.1f )
        
        
          10.0f and 11.1 are within 10% of each other
        
      
      
        
          10.f, !WithinRel( 11.2f, 0.1f )
        
        
          10.0f not and 11.2 are within 10% of each other
        
      
      
        
          1.f, !WithinRel( 0.f, 0.99f )
        
        
          1.0f not and 0 are within 99% of each other
        
      
      
        
          -0.f, WithinRel( 0.f )
        
        
          -0.0f and 0 are within 0.00119209% of each other
        
      
      
        
          
            v1, WithinRel( v2 )
          
          
            0.0f and 1.17549e-38 are within 0.00119209% of each other
          
        
        
      
      
    
    
      
        
          1.f, WithinAbs( 1.f, 0 )
        
        
          1.0f is within 0.0 of 1.0
        
      
      
        
          0.f, WithinAbs( 1.f, 1 )
        
        
          0.0f is within 1.0 of 1.0
        
      
      
        
          0.f, !WithinAbs( 1.f, 0.99f )
        
        
          0.0f not is within 0.9900000095 of 1.0
        
      
      
        
          0.f, !WithinAbs( 1.f, 0.99f )
        
        
          0.0f not is within 0.9900000095 of 1.0
        
      
      
        
          0.f, WithinAbs( -0.f, 0 )
        
        
          0.0f is within 0.0 of -0.0
        
      
      
        
          11.f, !WithinAbs( 10.f, 0.5f )
        
        
          11.0f not is within 0.5 of 10.0
        
      
      
        
          10.f, !WithinAbs( 11.f, 0.5f )
        
        
          10.0f not is within 0.5 of 11.0
        
      
      
        
          -10.f, WithinAbs( -10.f, 0.5f )
        
        
          -10.0f is within 0.5 of -10.0
        
      
      
        
          -10.f, WithinAbs( -9.6f, 0.5f )
        
        
          -10.0f is within 0.5 of -9.6000003815
        
      
      
    
    
      
        
          1.f, WithinULP( 1.f, 0 )
        
        
          1.0f is within 0 ULPs of 1.00000000e+00f ([1.00000000e+00, 1.00000000e+00])
        
      
      
        
          -1.f, WithinULP( -1.f, 0 )
        
        
          -1.0f is within 0 ULPs of -1.00000000e+00f ([-1.00000000e+00, -1.00000000e+00])
        
      
      
        
          nextafter( 1.f, 2.f ), WithinULP( 1.f, 1 )
        
        
          1.0f is within 1 ULPs of 1.00000000e+00f ([9.99999940e-01, 1.00000012e+00])
        
      
      
        
          0.f, WithinULP( nextafter( 0.f, 1.f ), 1 )
        
        
          0.0f is within 1 ULPs of 1.40129846e-45f ([0.00000000e+00, 2.80259693e-45])
        
      
      
        
          1.f, WithinULP( nextafter( 1.f, 0.f ), 1 )
        
        
          1.0f is within 1 ULPs of 9.99999940e-01f ([9.99999881e-01, 1.00000000e+00])
        
      
      
        
          1.f, !WithinULP( nextafter( 1.f, 2.f ), 0 )
        
        
          1.0f not is within 0 ULPs of 1.00000012e+00f ([1.00000012e+00, 1.00000012e+00])
        
      
      
        
          1.f, WithinULP( 1.f, 0 )
        
        
          1.0f is within 0 ULPs of 1.00000000e+00f ([1.00000000e+00, 1.00000000e+00])
        
      
      
        
          -0.f, WithinULP( 0.f, 0 )
        
        
          -0.0f is within 0 ULPs of 0.00000000e+00f ([0.00000000e+00, 0.00000000e+00])
        
      
      
    
    
      
        
          1.f, WithinAbs( 1.f, 0.5 ) || WithinULP( 1.f, 1 )
        
        
          1.0f ( is within 0.5 of 1.0 or is within 1 ULPs of 1.00000000e+00f ([9.99999940e-01, 1.00000012e+00]) )
        
      
      
        
          1.f, WithinAbs( 2.f, 0.5 ) || WithinULP( 1.f, 0 )
        
        
          1.0f ( is within 0.5 of 2.0 or is within 0 ULPs of 1.00000000e+00f ([1.00000000e+00, 1.00000000e+00]) )
        
      
      
        
          0.0001f, WithinAbs( 0.f, 0.001f ) || WithinRel( 0.f, 0.1f )
        
        
          0.0001f ( is within 0.001 of 0.0 or and 0 are within 10% of each other )
        
      
      
    
    
      
        
          WithinAbs( 1.f, 0.f )
        
        
          WithinAbs( 1.f, 0.f )
        
      
      
        
          WithinAbs( 1.f, -1.f ), std::domain_error
        
        
          WithinAbs( 1.f, -1.f ), std::domain_error
        
      
      
        
          WithinULP( 1.f, 0 )
        
        
          WithinULP( 1.f, 0 )
        
      
      
        
          WithinULP( 1.f, static_cast<uint64_t>( -1 ) ), std::domain_error
        
        
          WithinULP( 1.f, static_cast<uint64_t>( -1 ) ), std::domain_error
        
      
      
        
          WithinRel( 1.f, 0.f )
        
        
          WithinRel( 1.f, 0.f )
        
      
      
        
          WithinRel( 1.f, -0.2f ), std::domain_error
        
        
          WithinRel( 1.f, -0.2f ), std::domain_error
        
      
      
        
          WithinRel( 1.f, 1.f ), std::domain_error
        
        
          WithinRel( 1.f, 1.f ), std::domain_error
        
      
      
    
    
  
  
    
    
    
    
      
        
          
            filter([] (int) {return false; }, value(1)), Catch::GeneratorException
          
          
            filter([] (int) {return false; }, value(1)), Catch::GeneratorException
          
        
        
      
      
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
      
        
          
            chunk2.size() == 2
          
          
            2 == 2
          
        
        
          
            chunk2.front() == chunk2.back()
          
          
            1 == 1
          
        
        
      
      
    
    
      
        
          
            chunk2.size() == 2
          
          
            2 == 2
          
        
        
          
            chunk2.front() == chunk2.back()
          
          
            2 == 2
          
        
        
      
      
    
    
      
        
          
            chunk2.size() == 2
          
          
            2 == 2
          
        
        
          
            chunk2.front() == chunk2.back()
          
          
            3 == 3
          
        
        
      
      
    
    
      
        
          
            chunk2.size() == 2
          
          
            2 == 2
          
        
        
          
            chunk2.front() == chunk2.back()
          
          
            1 == 1
          
        
        
          
            chunk2.front() < 3
          
          
            1 < 3
          
        
        
      
      
    
    
      
        
          
            chunk2.size() == 2
          
          
            2 == 2
          
        
        
          
            chunk2.front() == chunk2.back()
          
          
            2 == 2
          
        
        
          
            chunk2.front() < 3
          
          
            2 < 3
          
        
        
      
      
    
    
      
        
          
            chunk2.size() == 0
          
          
            0 == 0
          
        
        
      
      
    
    
      
        
          
            chunk2.size() == 0
          
          
            0 == 0
          
        
        
      
      
    
    
      
        
          
            chunk2.size() == 0
          
          
            0 == 0
          
        
        
      
      
    
    
      
        
          
            chunk(2, value(1)), Catch::GeneratorException
          
          
            chunk(2, value(1)), Catch::GeneratorException
          
        
        
      
      
    
    
  
  
    
    
    
    
      
        
          4u * i > str.size()
        
        
          4 > 1
        
      
      
    
    
      
        
          4u * i > str.size()
        
        
          4 > 2
        
      
      
    
    
      
        
          4u * i > str.size()
        
        
          4 > 3
        
      
      
    
    
    
    
    
      
        
          4u * i > str.size()
        
        
          8 > 1
        
      
      
    
    
      
        
          4u * i > str.size()
        
        
          8 > 2
        
      
      
    
    
      
        
          4u * i > str.size()
        
        
          8 > 3
        
      
      
    
    
    
    
    
      
        
          4u * i > str.size()
        
        
          12 > 1
        
      
      
    
    
      
        
          4u * i > str.size()
        
        
          12 > 2
        
      
      
    
    
      
        
          4u * i > str.size()
        
        
          12 > 3
        
      
      
    
    
  
  
    
      
        
          gen.get() == 123
        
        
          123 == 123
        
      
      
        
          !(gen.next())
        
        
          !false
        
      
      
    
    
      
        
          gen.get() == 1
        
        
          1 == 1
        
      
      
        
          gen.next()
        
        
          true
        
      
      
        
          gen.get() == 3
        
        
          3 == 3
        
      
      
        
          gen.next()
        
        
          true
        
      
      
        
          gen.get() == 5
        
        
          5 == 5
        
      
      
        
          !(gen.next())
        
        
          !false
        
      
      
    
    
      
        
          gen.get() == 1
        
        
          1 == 1
        
      
      
        
          gen.next()
        
        
          true
        
      
      
        
          gen.get() == 5
        
        
          5 == 5
        
      
      
        
          gen.next()
        
        
          true
        
      
      
        
          gen.get() == 2
        
        
          2 == 2
        
      
      
        
          gen.next()
        
        
          true
        
      
      
        
          gen.get() == 4
        
        
          4 == 4
        
      
      
        
          gen.next()
        
        
          true
        
      
      
        
          gen.get() == 0
        
        
          0 == 0
        
      
      
        
          !(gen.next())
        
        
          !false
        
      
      
    
    
      
        
          gen.get().size() == 2
        
        
          2 == 2
        
      
      
        
          gen.get() == "aa"
        
        
          "aa" == "aa"
        
      
      
        
          gen.next()
        
        
          true
        
      
      
        
          gen.get() == "bb"
        
        
          "bb" == "bb"
        
      
      
        
          gen.next()
        
        
          true
        
      
      
        
          gen.get() == "cc"
        
        
          "cc" == "cc"
        
      
      
        
          !(gen.next())
        
        
          !false
        
      
      
    
    
      
        
          
            gen.get() == 1
          
          
            1 == 1
          
        
        
          
            gen.next()
          
          
            true
          
        
        
          
            gen.get() == 3
          
          
            3 == 3
          
        
        
          
            !(gen.next())
          
          
            !false
          
        
        
      
      
    
    
      
        
          
            gen.get() == 1
          
          
            1 == 1
          
        
        
          
            gen.next()
          
          
            true
          
        
        
          
            gen.get() == 3
          
          
            3 == 3
          
        
        
          
            !(gen.next())
          
          
            !false
          
        
        
      
      
    
    
      
        
          
            filter([](int) { return false; }, value(1)), Catch::GeneratorException
          
          
            filter([](int) { return false; }, value(1)), Catch::GeneratorException
          
        
        
          
            filter([](int) { return false; }, values({ 1, 2, 3 })), Catch::GeneratorException
          
          
            filter([](int) { return false; }, values({ 1, 2, 3 })), Catch::GeneratorException
          
        
        
      
      
    
    
      
        
          
            gen.get() == 1
          
          
            1 == 1
          
        
        
          
            gen.next()
          
          
            true
          
        
        
          
            gen.get() == 2
          
          
            2 == 2
          
        
        
          
            !(gen.next())
          
          
            !false
          
        
        
      
      
    
    
      
        
          
            gen.get() == 1
          
          
            1 == 1
          
        
        
          
            !(gen.next())
          
          
            !false
          
        
        
      
      
    
    
      
        
          gen.get() == 2.0
        
        
          2.0 == 2.0
        
      
      
        
          gen.next()
        
        
          true
        
      
      
        
          gen.get() == 4.0
        
        
          4.0 == 4.0
        
      
      
        
          gen.next()
        
        
          true
        
      
      
        
          gen.get() == 6.0
        
        
          6.0 == 6.0
        
      
      
        
          !(gen.next())
        
        
          !false
        
      
      
    
    
      
        
          gen.get() == 2.0
        
        
          2.0 == 2.0
        
      
      
        
          gen.next()
        
        
          true
        
      
      
        
          gen.get() == 4.0
        
        
          4.0 == 4.0
        
      
      
        
          gen.next()
        
        
          true
        
      
      
        
          gen.get() == 6.0
        
        
          6.0 == 6.0
        
      
      
        
          !(gen.next())
        
        
          !false
        
      
      
    
    
      
        
          
            gen.get() == 3
          
          
            3 == 3
          
        
        
          
            !(gen.next())
          
          
            !false
          
        
        
      
      
    
    
      
        
          
            gen.get() == 1
          
          
            1 == 1
          
        
        
          
            gen.next()
          
          
            true
          
        
        
          
            gen.get() == 2
          
          
            2 == 2
          
        
        
          
            gen.next()
          
          
            true
          
        
        
          
            gen.get() == 3
          
          
            3 == 3
          
        
        
          
            gen.next()
          
          
            true
          
        
        
          
            gen.get() == 1
          
          
            1 == 1
          
        
        
          
            gen.next()
          
          
            true
          
        
        
          
            gen.get() == 2
          
          
            2 == 2
          
        
        
          
            gen.next()
          
          
            true
          
        
        
          
            gen.get() == 3
          
          
            3 == 3
          
        
        
          
            !(gen.next())
          
          
            !false
          
        
        
      
      
    
    
      
        
          
            
              gen.get() == -2
            
            
              -2 == -2
            
          
          
            
              gen.next()
            
            
              true
            
          
          
            
              gen.get() == -1
            
            
              -1 == -1
            
          
          
            
              gen.next()
            
            
              true
            
          
          
            
              gen.get() == 0
            
            
              0 == 0
            
          
          
            
              gen.next()
            
            
              true
            
          
          
            
              gen.get() == 1
            
            
              1 == 1
            
          
          
            
              !(gen.next())
            
            
              !false
            
          
          
        
        
      
      
    
    
      
        
          
            
              gen.get() == 2
            
            
              2 == 2
            
          
          
            
              gen.next()
            
            
              true
            
          
          
            
              gen.get() == 1
            
            
              1 == 1
            
          
          
            
              gen.next()
            
            
              true
            
          
          
            
              gen.get() == 0
            
            
              0 == 0
            
          
          
            
              gen.next()
            
            
              true
            
          
          
            
              gen.get() == -1
            
            
              -1 == -1
            
          
          
            
              !(gen.next())
            
            
              !false
            
          
          
        
        
      
      
    
    
      
        
          
            
              
                gen.get() == -7
              
              
                -7 == -7
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == -4
              
              
                -4 == -4
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == -1
              
              
                -1 == -1
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == 2
              
              
                2 == 2
              
            
            
              
                !(gen.next())
              
              
                !false
              
            
            
          
          
        
        
      
      
    
    
      
        
          
            
              
                gen.get() == -7
              
              
                -7 == -7
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == -4
              
              
                -4 == -4
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == -1
              
              
                -1 == -1
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == 2
              
              
                2 == 2
              
            
            
              
                !(gen.next())
              
              
                !false
              
            
            
          
          
        
        
      
      
    
    
      
        
          
            
              
                gen.get() == -7
              
              
                -7 == -7
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == -4
              
              
                -4 == -4
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == -1
              
              
                -1 == -1
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == 2
              
              
                2 == 2
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == 5
              
              
                5 == 5
              
            
            
              
                !(gen.next())
              
              
                !false
              
            
            
          
          
        
        
      
      
    
    
      
        
          
            
              Current expected value is -1
            
            
              
                gen.get() == Approx(expected)
              
              
                -1.0 == Approx( -1.0 )
              
            
            
              Current expected value is -1
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.9
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.9 == Approx( -0.9 )
              
            
            
              Current expected value is -0.9
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.8
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.8 == Approx( -0.8 )
              
            
            
              Current expected value is -0.8
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.7
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.7 == Approx( -0.7 )
              
            
            
              Current expected value is -0.7
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.6
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.6 == Approx( -0.6 )
              
            
            
              Current expected value is -0.6
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.5
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.5 == Approx( -0.5 )
              
            
            
              Current expected value is -0.5
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.4
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.4 == Approx( -0.4 )
              
            
            
              Current expected value is -0.4
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.3
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.3 == Approx( -0.3 )
              
            
            
              Current expected value is -0.3
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.2
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.2 == Approx( -0.2 )
              
            
            
              Current expected value is -0.2
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.1
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.1 == Approx( -0.1 )
              
            
            
              Current expected value is -0.1
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -1.38778e-16
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.0 == Approx( -0.0 )
              
            
            
              Current expected value is -1.38778e-16
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is 0.1
            
            
              
                gen.get() == Approx(expected)
              
              
                0.1 == Approx( 0.1 )
              
            
            
              Current expected value is 0.1
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is 0.2
            
            
              
                gen.get() == Approx(expected)
              
              
                0.2 == Approx( 0.2 )
              
            
            
              Current expected value is 0.2
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is 0.3
            
            
              
                gen.get() == Approx(expected)
              
              
                0.3 == Approx( 0.3 )
              
            
            
              Current expected value is 0.3
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is 0.4
            
            
              
                gen.get() == Approx(expected)
              
              
                0.4 == Approx( 0.4 )
              
            
            
              Current expected value is 0.4
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is 0.5
            
            
              
                gen.get() == Approx(expected)
              
              
                0.5 == Approx( 0.5 )
              
            
            
              Current expected value is 0.5
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is 0.6
            
            
              
                gen.get() == Approx(expected)
              
              
                0.6 == Approx( 0.6 )
              
            
            
              Current expected value is 0.6
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is 0.7
            
            
              
                gen.get() == Approx(expected)
              
              
                0.7 == Approx( 0.7 )
              
            
            
              Current expected value is 0.7
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is 0.8
            
            
              
                gen.get() == Approx(expected)
              
              
                0.8 == Approx( 0.8 )
              
            
            
              Current expected value is 0.8
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is 0.9
            
            
              
                gen.get() == Approx(expected)
              
              
                0.9 == Approx( 0.9 )
              
            
            
              Current expected value is 0.9
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == Approx( rangeEnd )
              
              
                1.0 == Approx( 1.0 )
              
            
            
              
                !(gen.next())
              
              
                !false
              
            
            
          
          
        
        
      
      
    
    
      
        
          
            
              Current expected value is -1
            
            
              
                gen.get() == Approx(expected)
              
              
                -1.0 == Approx( -1.0 )
              
            
            
              Current expected value is -1
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.7
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.7 == Approx( -0.7 )
              
            
            
              Current expected value is -0.7
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.4
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.4 == Approx( -0.4 )
              
            
            
              Current expected value is -0.4
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.1
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.1 == Approx( -0.1 )
              
            
            
              Current expected value is -0.1
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is 0.2
            
            
              
                gen.get() == Approx(expected)
              
              
                0.2 == Approx( 0.2 )
              
            
            
              Current expected value is 0.2
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is 0.5
            
            
              
                gen.get() == Approx(expected)
              
              
                0.5 == Approx( 0.5 )
              
            
            
              Current expected value is 0.5
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                !(gen.next())
              
              
                !false
              
            
            
          
          
        
        
      
      
    
    
      
        
          
            
              Current expected value is -1
            
            
              
                gen.get() == Approx(expected)
              
              
                -1.0 == Approx( -1.0 )
              
            
            
              Current expected value is -1
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.7
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.7 == Approx( -0.7 )
              
            
            
              Current expected value is -0.7
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.4
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.4 == Approx( -0.4 )
              
            
            
              Current expected value is -0.4
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is -0.1
            
            
              
                gen.get() == Approx(expected)
              
              
                -0.1 == Approx( -0.1 )
              
            
            
              Current expected value is -0.1
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is 0.2
            
            
              
                gen.get() == Approx(expected)
              
              
                0.2 == Approx( 0.2 )
              
            
            
              Current expected value is 0.2
            
            
              
                gen.next()
              
              
                true
              
            
            
              Current expected value is 0.5
            
            
              
                gen.get() == Approx(expected)
              
              
                0.5 == Approx( 0.5 )
              
            
            
              Current expected value is 0.5
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                !(gen.next())
              
              
                !false
              
            
            
          
          
        
        
      
      
    
    
      
        
          
            
              
                gen.get() == 5
              
              
                5 == 5
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == 2
              
              
                2 == 2
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == -1
              
              
                -1 == -1
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == -4
              
              
                -4 == -4
              
            
            
              
                !(gen.next())
              
              
                !false
              
            
            
          
          
        
        
      
      
    
    
      
        
          
            
              
                gen.get() == 5
              
              
                5 == 5
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == 2
              
              
                2 == 2
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == -1
              
              
                -1 == -1
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == -4
              
              
                -4 == -4
              
            
            
              
                !(gen.next())
              
              
                !false
              
            
            
          
          
        
        
      
      
    
    
      
        
          
            
              
                gen.get() == 5
              
              
                5 == 5
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == 2
              
              
                2 == 2
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == -1
              
              
                -1 == -1
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == -4
              
              
                -4 == -4
              
            
            
              
                gen.next()
              
              
                true
              
            
            
              
                gen.get() == -7
              
              
                -7 == -7
              
            
            
              
                !(gen.next())
              
              
                !false
              
            
            
          
          
        
        
      
      
    
    
  
  
    
      
        d >= Approx( 1.22 )
      
      
        1.23 >= Approx( 1.22 )
      
    
    
      
        d >= Approx( 1.23 )
      
      
        1.23 >= Approx( 1.23 )
      
    
    
      
        !(d >= Approx( 1.24 ))
      
      
        !(1.23 >= Approx( 1.24 ))
      
    
    
      
        d >= Approx( 1.24 ).epsilon(0.1)
      
      
        1.23 >= Approx( 1.24 )
      
    
    
  
  
    
      
        h1( dummy ) != h2( dummy )
      
      
        3422778688 (0x)
!=
130711275 (0x)
      
    
    
  
  
    
      
        h1( dummy ) == h2( dummy )
      
      
        3422778688 (0x)
==
3422778688 (0x)
      
    
    
  
  
    
      
        
          h( dummy1 ) != h( dummy2 )
        
        
          2903002874 (0x)
!=
2668622104 (0x)
        
      
      
    
    
      
        
          h( dummy1 ) != h( dummy2 )
        
        
          2673152918 (0x)
!=
3916075712 (0x)
        
      
      
    
    
      
        
          h( dummy1 ) != h( dummy2 )
        
        
          2074929312 (0x)
!=
3429949824 (0x)
        
      
      
    
    
  
  
    
      
        h( dummy ) == h( dummy )
      
      
        3422778688 (0x)
==
3422778688 (0x)
      
    
    
  
  
    
      this is a message
    
    
      this is a warning
    
    
  
  
    
      this message should be logged
    
    
      so should this
    
    
      
        a == 1
      
      
        2 == 1
      
    
    
  
  
    
      this message may be logged later
    
    
      
        a == 2
      
      
        2 == 2
      
    
    
      this message may be logged later
    
    
      this message should be logged
    
    
      
        a == 1
      
      
        2 == 1
      
    
    
      this message may be logged later
    
    
      this message should be logged
    
    
      and this, but later
    
    
      
        a == 0
      
      
        2 == 0
      
    
    
      this message may be logged later
    
    
      this message should be logged
    
    
      and this, but later
    
    
      but not this
    
    
      
        a == 2
      
      
        2 == 2
      
    
    
  
  
    
      current counter 0
    
    
      i := 0
    
    
      
        i < 10
      
      
        0 < 10
      
    
    
      current counter 1
    
    
      i := 1
    
    
      
        i < 10
      
      
        1 < 10
      
    
    
      current counter 2
    
    
      i := 2
    
    
      
        i < 10
      
      
        2 < 10
      
    
    
      current counter 3
    
    
      i := 3
    
    
      
        i < 10
      
      
        3 < 10
      
    
    
      current counter 4
    
    
      i := 4
    
    
      
        i < 10
      
      
        4 < 10
      
    
    
      current counter 5
    
    
      i := 5
    
    
      
        i < 10
      
      
        5 < 10
      
    
    
      current counter 6
    
    
      i := 6
    
    
      
        i < 10
      
      
        6 < 10
      
    
    
      current counter 7
    
    
      i := 7
    
    
      
        i < 10
      
      
        7 < 10
      
    
    
      current counter 8
    
    
      i := 8
    
    
      
        i < 10
      
      
        8 < 10
      
    
    
      current counter 9
    
    
      i := 9
    
    
      
        i < 10
      
      
        9 < 10
      
    
    
      current counter 10
    
    
      i := 10
    
    
      
        i < 10
      
      
        10 < 10
      
    
    
  
  
    
      
        data.int_seven != 7
      
      
        7 != 7
      
    
    
      
        data.float_nine_point_one != Approx( 9.1f )
      
      
        9.1f != Approx( 9.1000003815 )
      
    
    
      
        data.double_pi != Approx( 3.1415926535 )
      
      
        3.1415926535 != Approx( 3.1415926535 )
      
    
    
      
        data.str_hello != "hello"
      
      
        "hello" != "hello"
      
    
    
      
        data.str_hello.size() != 5
      
      
        5 != 5
      
    
    
  
  
    
      
        data.int_seven != 6
      
      
        7 != 6
      
    
    
      
        data.int_seven != 8
      
      
        7 != 8
      
    
    
      
        data.float_nine_point_one != Approx( 9.11f )
      
      
        9.1f != Approx( 9.1099996567 )
      
    
    
      
        data.float_nine_point_one != Approx( 9.0f )
      
      
        9.1f != Approx( 9.0 )
      
    
    
      
        data.float_nine_point_one != Approx( 1 )
      
      
        9.1f != Approx( 1.0 )
      
    
    
      
        data.float_nine_point_one != Approx( 0 )
      
      
        9.1f != Approx( 0.0 )
      
    
    
      
        data.double_pi != Approx( 3.1415 )
      
      
        3.1415926535 != Approx( 3.1415 )
      
    
    
      
        data.str_hello != "goodbye"
      
      
        "hello" != "goodbye"
      
    
    
      
        data.str_hello != "hell"
      
      
        "hello" != "hell"
      
    
    
      
        data.str_hello != "hello1"
      
      
        "hello" != "hello1"
      
    
    
      
        data.str_hello.size() != 6
      
      
        5 != 6
      
    
    
  
  
    
      
        []() { return true; }()
      
      
        true
      
    
    
  
  
    
      
        d <= Approx( 1.24 )
      
      
        1.23 <= Approx( 1.24 )
      
    
    
      
        d <= Approx( 1.23 )
      
      
        1.23 <= Approx( 1.23 )
      
    
    
      
        !(d <= Approx( 1.22 ))
      
      
        !(1.23 <= Approx( 1.22 ))
      
    
    
      
        d <= Approx( 1.22 ).epsilon(0.1)
      
      
        1.23 <= Approx( 1.22 )
      
    
    
  
  
    
  
  
    
      
        testStringForMatching(), ContainsSubstring( "string" ) && ContainsSubstring( "abc" ) && ContainsSubstring( "substring" ) && ContainsSubstring( "contains" )
      
      
        "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" and contains: "substring" and contains: "contains" )
      
    
    
  
  
    
      
        testStringForMatching(), ContainsSubstring( "string" ) || ContainsSubstring( "different" ) || ContainsSubstring( "random" )
      
      
        "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" )
      
    
    
      
        testStringForMatching2(), ContainsSubstring( "string" ) || ContainsSubstring( "different" ) || ContainsSubstring( "random" )
      
      
        "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" )
      
    
    
  
  
    
      
        testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "substring" )
      
      
        "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" )
      
    
    
  
  
    
      
        testStringForMatching(), ( ContainsSubstring( "string" ) || ContainsSubstring( "different" ) ) && ContainsSubstring( "random" )
      
      
        "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )
      
    
    
  
  
    
      
        testStringForMatching(), !ContainsSubstring( "different" )
      
      
        "this string contains 'abc' as a substring" not contains: "different"
      
    
    
  
  
    
      
        testStringForMatching(), !ContainsSubstring( "substring" )
      
      
        "this string contains 'abc' as a substring" not contains: "substring"
      
    
    
  
  
    
    
    
    
    
    
    
  
  
    
      
        thisThrows(), "expected exception"
      
      
        "expected exception" equals: "expected exception"
      
    
    
      
        thisThrows(), "should fail"
      
      
        "expected exception" equals: "should fail"
      
    
    
  
  
    
      
        records == expected
      
      
        { "Hello", "world", "Goodbye", "world" }
==
{ "Hello", "world", "Goodbye", "world" }
      
    
    
  
  
    
      
        multiReporter.getPreferences().shouldRedirectStdOut == false
      
      
        false == false
      
    
    
      
        multiReporter.getPreferences().shouldReportAllAssertions == false
      
      
        false == false
      
    
    
      
        
          multiReporter.getPreferences().shouldRedirectStdOut == true
        
        
          true == true
        
      
      
        
          multiReporter.getPreferences().shouldReportAllAssertions == false
        
        
          false == false
        
      
      
        
          multiReporter.getPreferences().shouldRedirectStdOut == true
        
        
          true == true
        
      
      
        
          multiReporter.getPreferences().shouldReportAllAssertions == true
        
        
          true == true
        
      
      
        
          multiReporter.getPreferences().shouldRedirectStdOut == true
        
        
          true == true
        
      
      
        
          multiReporter.getPreferences().shouldReportAllAssertions == true
        
        
          true == true
        
      
      
    
    
      
        multiReporter.getPreferences().shouldRedirectStdOut == false
      
      
        false == false
      
    
    
      
        multiReporter.getPreferences().shouldReportAllAssertions == false
      
      
        false == false
      
    
    
      
        
          multiReporter.getPreferences().shouldRedirectStdOut == true
        
        
          true == true
        
      
      
        
          multiReporter.getPreferences().shouldReportAllAssertions == false
        
        
          false == false
        
      
      
        
          multiReporter.getPreferences().shouldRedirectStdOut == true
        
        
          true == true
        
      
      
        
          multiReporter.getPreferences().shouldReportAllAssertions == true
        
        
          true == true
        
      
      
        
          multiReporter.getPreferences().shouldRedirectStdOut == true
        
        
          true == true
        
      
      
        
          multiReporter.getPreferences().shouldReportAllAssertions == true
        
        
          true == true
        
      
      
    
    
  
  
    
      
        values > -6
      
      
        3 > -6
      
    
    
      
        values > -6
      
      
        4 > -6
      
    
    
      
        values > -6
      
      
        5 > -6
      
    
    
      
        values > -6
      
      
        6 > -6
      
    
    
      
        values > -6
      
      
        -5 > -6
      
    
    
      
        values > -6
      
      
        -4 > -6
      
    
    
      
        values > -6
      
      
        90 > -6
      
    
    
      
        values > -6
      
      
        91 > -6
      
    
    
      
        values > -6
      
      
        92 > -6
      
    
    
      
        values > -6
      
      
        93 > -6
      
    
    
      
        values > -6
      
      
        94 > -6
      
    
    
      
        values > -6
      
      
        95 > -6
      
    
    
      
        values > -6
      
      
        96 > -6
      
    
    
      
        values > -6
      
      
        97 > -6
      
    
    
      
        values > -6
      
      
        98 > -6
      
    
    
      
        values > -6
      
      
        99 > -6
      
    
    
  
  
    
      This one ran
    
    
  
  
    
      custom exception
    
    
  
  
    
      
        True
      
      
        {?}
      
    
    
      
        !False
      
      
        true
      
    
    
      
        !(False)
      
      
        !{?}
      
    
    
  
  
    
  
  
    
      
        data.int_seven > 7
      
      
        7 > 7
      
    
    
      
        data.int_seven < 7
      
      
        7 < 7
      
    
    
      
        data.int_seven > 8
      
      
        7 > 8
      
    
    
      
        data.int_seven < 6
      
      
        7 < 6
      
    
    
      
        data.int_seven < 0
      
      
        7 < 0
      
    
    
      
        data.int_seven < -1
      
      
        7 < -1
      
    
    
      
        data.int_seven >= 8
      
      
        7 >= 8
      
    
    
      
        data.int_seven <= 6
      
      
        7 <= 6
      
    
    
      
        data.float_nine_point_one < 9
      
      
        9.1f < 9
      
    
    
      
        data.float_nine_point_one > 10
      
      
        9.1f > 10
      
    
    
      
        data.float_nine_point_one > 9.2
      
      
        9.1f > 9.2
      
    
    
      
        data.str_hello > "hello"
      
      
        "hello" > "hello"
      
    
    
      
        data.str_hello < "hello"
      
      
        "hello" < "hello"
      
    
    
      
        data.str_hello > "hellp"
      
      
        "hello" > "hellp"
      
    
    
      
        data.str_hello > "z"
      
      
        "hello" > "z"
      
    
    
      
        data.str_hello < "hellm"
      
      
        "hello" < "hellm"
      
    
    
      
        data.str_hello < "a"
      
      
        "hello" < "a"
      
    
    
      
        data.str_hello >= "z"
      
      
        "hello" >= "z"
      
    
    
      
        data.str_hello <= "a"
      
      
        "hello" <= "a"
      
    
    
  
  
    
      
        data.int_seven < 8
      
      
        7 < 8
      
    
    
      
        data.int_seven > 6
      
      
        7 > 6
      
    
    
      
        data.int_seven > 0
      
      
        7 > 0
      
    
    
      
        data.int_seven > -1
      
      
        7 > -1
      
    
    
      
        data.int_seven >= 7
      
      
        7 >= 7
      
    
    
      
        data.int_seven >= 6
      
      
        7 >= 6
      
    
    
      
        data.int_seven <= 7
      
      
        7 <= 7
      
    
    
      
        data.int_seven <= 8
      
      
        7 <= 8
      
    
    
      
        data.float_nine_point_one > 9
      
      
        9.1f > 9
      
    
    
      
        data.float_nine_point_one < 10
      
      
        9.1f < 10
      
    
    
      
        data.float_nine_point_one < 9.2
      
      
        9.1f < 9.2
      
    
    
      
        data.str_hello <= "hello"
      
      
        "hello" <= "hello"
      
    
    
      
        data.str_hello >= "hello"
      
      
        "hello" >= "hello"
      
    
    
      
        data.str_hello < "hellp"
      
      
        "hello" < "hellp"
      
    
    
      
        data.str_hello < "zebra"
      
      
        "hello" < "zebra"
      
    
    
      
        data.str_hello > "hellm"
      
      
        "hello" > "hellm"
      
    
    
      
        data.str_hello > "a"
      
      
        "hello" > "a"
      
    
    
  
  
    
      
        
          rng() == 0x
        
        
          4242248763 (0x)
==
4242248763 (0x)
        
      
      
        
          rng() == 0x
        
        
          1867888929 (0x)
==
1867888929 (0x)
        
      
      
        
          rng() == 0x
        
        
          1276619030 (0x)
==
1276619030 (0x)
        
      
      
        
          rng() == 0x
        
        
          1911218783 (0x)
==
1911218783 (0x)
        
      
      
        
          rng() == 0x
        
        
          1827115164 (0x)
==
1827115164 (0x)
        
      
      
    
    
      
        
          rng() == 0x
        
        
          1472234645 (0x)
==
1472234645 (0x)
        
      
      
        
          rng() == 0x
        
        
          868832940 (0x)
==
868832940 (0x)
        
      
      
        
          rng() == 0x
        
        
          570883446 (0x)
==
570883446 (0x)
        
      
      
        
          rng() == 0x
        
        
          889299803 (0x)
==
889299803 (0x)
        
      
      
        
          rng() == 0x
        
        
          4261393167 (0x)
==
4261393167 (0x)
        
      
      
        
          rng() == 0x
        
        
          1472234645 (0x)
==
1472234645 (0x)
        
      
      
        
          rng() == 0x
        
        
          868832940 (0x)
==
868832940 (0x)
        
      
      
        
          rng() == 0x
        
        
          570883446 (0x)
==
570883446 (0x)
        
      
      
        
          rng() == 0x
        
        
          889299803 (0x)
==
889299803 (0x)
        
      
      
        
          rng() == 0x
        
        
          4261393167 (0x)
==
4261393167 (0x)
        
      
      
    
    
  
  
    
    
    
  
  
    
      
        ( EvilMatcher(), EvilMatcher() ), EvilCommaOperatorUsed
      
      
        ( EvilMatcher(), EvilMatcher() ), EvilCommaOperatorUsed
      
    
    
      
        &EvilMatcher(), EvilAddressOfOperatorUsed
      
      
        &EvilMatcher(), EvilAddressOfOperatorUsed
      
    
    
      
        EvilMatcher() || ( EvilMatcher() && !EvilMatcher() )
      
      
        EvilMatcher() || ( EvilMatcher() && !EvilMatcher() )
      
    
    
      
        ( EvilMatcher() && EvilMatcher() ) || !EvilMatcher()
      
      
        ( EvilMatcher() && EvilMatcher() ) || !EvilMatcher()
      
    
    
  
  
    
      
        
          spec.hasFilters() == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcC ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcD ) == false
        
        
          false == false
        
      
      
        
          parseTestSpec( "*a" ).matches( *tcA ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcD ) == false
        
        
          false == false
        
      
      
        
          parseTestSpec( "a*" ).matches( *tcA ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcD ) == true
        
        
          true == true
        
      
      
        
          parseTestSpec( "*a*" ).matches( *tcA ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcD ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcB ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcC ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcD ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcC ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcC ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcD ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcC ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcD ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcD ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcD ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcB ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcC ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcD ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcB ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcC ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcD ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcB ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcC ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcD ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcD ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcD ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcD ) == false
        
        
          false == false
        
      
      
    
    
      
        
          spec.hasFilters() == true
        
        
          true == true
        
      
      
        
          spec.matches( *tcA ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcB ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcC ) == false
        
        
          false == false
        
      
      
        
          spec.matches( *tcD ) == true
        
        
          true == true
        
      
      
    
    
      
        
          spec.matches( *fakeTestCase( "  aardvark " ) )
        
        
          true
        
      
      
        
          spec.matches( *fakeTestCase( "  aardvark" ) )
        
        
          true
        
      
      
        
          spec.matches( *fakeTestCase( " aardvark " ) )
        
        
          true
        
      
      
        
          spec.matches( *fakeTestCase( "aardvark " ) )
        
        
          true
        
      
      
        
          spec.matches( *fakeTestCase( "aardvark" ) )
        
        
          true
        
      
      
    
    
      
        
          spec.matches( *fakeTestCase( "  aardvark " ) )
        
        
          true
        
      
      
        
          spec.matches( *fakeTestCase( "  aardvark" ) )
        
        
          true
        
      
      
        
          spec.matches( *fakeTestCase( " aardvark " ) )
        
        
          true
        
      
      
        
          spec.matches( *fakeTestCase( "aardvark " ) )
        
        
          true
        
      
      
        
          spec.matches( *fakeTestCase( "aardvark" ) )
        
        
          true
        
      
      
    
    
      
        
          spec.matches(*fakeTestCase("hidden and foo", "[.][foo]"))
        
        
          true
        
      
      
        
          !(spec.matches(*fakeTestCase("only foo", "[foo]")))
        
        
          !false
        
      
      
    
    
      
        
          !(spec.matches(*fakeTestCase("hidden and foo", "[.][foo]")))
        
        
          !false
        
      
      
        
          !(spec.matches(*fakeTestCase("only foo", "[foo]")))
        
        
          !false
        
      
      
        
          !(spec.matches(*fakeTestCase("only hidden", "[.]")))
        
        
          !false
        
      
      
        
          spec.matches(*fakeTestCase("neither foo nor hidden", "[bar]"))
        
        
          true
        
      
      
    
    
  
  
    
      
        spec.hasFilters()
      
      
        true
      
    
    
      
        spec.getInvalidSpecs().empty()
      
      
        true
      
    
    
      
        spec.matches( testCase )
      
      
        true
      
    
    
  
  
    
      
        
          cli.parse({ "test", "--shard-count=8" })
        
        
          {?}
        
      
      
        
          config.shardCount == 8
        
        
          8 == 8
        
      
      
    
    
      
        
          !(result)
        
        
          !{?}
        
      
      
        
          result.errorMessage(), ContainsSubstring("Shard count must be a positive number")
        
        
          "Shard count must be a positive number" contains: "Shard count must be a positive number"
        
      
      
    
    
      
        
          !(result)
        
        
          !{?}
        
      
      
        
          result.errorMessage(), ContainsSubstring("Shard count must be a positive number")
        
        
          "Shard count must be a positive number" contains: "Shard count must be a positive number"
        
      
      
    
    
      
        
          cli.parse({ "test", "--shard-index=2" })
        
        
          {?}
        
      
      
        
          config.shardIndex == 2
        
        
          2 == 2
        
      
      
    
    
      
        
          !(result)
        
        
          !{?}
        
      
      
        
          result.errorMessage(), ContainsSubstring("Shard index must be a non-negative number")
        
        
          "Shard index must be a non-negative number" contains: "Shard index must be a non-negative number"
        
      
      
    
    
      
        
          cli.parse({ "test", "--shard-index=0" })
        
        
          {?}
        
      
      
        
          config.shardIndex == 0
        
        
          0 == 0
        
      
      
    
    
  
  
    
      tagString := "[tag with spaces]"
    
    
      
        spec.hasFilters()
      
      
        true
      
    
    
      tagString := "[tag with spaces]"
    
    
      
        spec.getInvalidSpecs().empty()
      
      
        true
      
    
    
      tagString := "[tag with spaces]"
    
    
      
        spec.matches( testCase )
      
      
        true
      
    
    
      tagString := "[I said "good day" sir!]"
    
    
      
        spec.hasFilters()
      
      
        true
      
    
    
      tagString := "[I said "good day" sir!]"
    
    
      
        spec.getInvalidSpecs().empty()
      
      
        true
      
    
    
      tagString := "[I said "good day" sir!]"
    
    
      
        spec.matches( testCase )
      
      
        true
      
    
    
  
  
    
      
        
          cli.parse( { "test", "-w", "NoAssertions" } )
        
        
          {?}
        
      
      
        
          config.warnings == WarnAbout::NoAssertions
        
        
          1 == 1
        
      
      
    
    
      
        
          !(cli.parse( { "test", "-w", "NoTests" } ))
        
        
          !{?}
        
      
      
    
    
      
        
          cli.parse( { "test", "--warn", "NoAssertions", "--warn", "UnmatchedTestSpec" } )
        
        
          {?}
        
      
      
        
          config.warnings == ( WarnAbout::NoAssertions | WarnAbout::UnmatchedTestSpec )
        
        
          3 == 3
        
      
      
    
    
  
  
    
      
        p == 0
      
      
        0 == 0
      
    
    
      
        p == pNULL
      
      
        0 == 0
      
    
    
      
        p != 0
      
      
        0x != 0
      
    
    
      
        cp != 0
      
      
        0x != 0
      
    
    
      
        cpc != 0
      
      
        0x != 0
      
    
    
      
        returnsNull() == 0
      
      
        {null string} == 0
      
    
    
      
        returnsConstNull() == 0
      
      
        {null string} == 0
      
    
    
      
        0 != p
      
      
        0 != 0x
      
    
    
  
  
    
      
        
          str1.size() == 3 + 5
        
        
          8 == 8
        
      
      
        
          str2.size() == 3 + 10
        
        
          13 == 13
        
      
      
    
    
      
        
          str1.size() == 2 + 5
        
        
          7 == 7
        
      
      
        
          str2.size() == 2 + 15
        
        
          17 == 17
        
      
      
    
    
  
  
    
      
        "foo", Predicate<const char*>( []( const char* const& ) { return true; } )
      
      
        "foo" matches undescribed predicate
      
    
    
  
  
    
      
        
          result
        
        
          {?}
        
      
      
        
          config.processName == ""
        
        
          "" == ""
        
      
      
    
    
      
        
          result
        
        
          {?}
        
      
      
        
          config.processName == "test"
        
        
          "test" == "test"
        
      
      
        
          config.shouldDebugBreak == false
        
        
          false == false
        
      
      
        
          config.abortAfter == -1
        
        
          -1 == -1
        
      
      
        
          config.noThrow == false
        
        
          false == false
        
      
      
        
          config.reporterSpecifications.empty()
        
        
          true
        
      
      
        
          !(cfg.hasTestFilters())
        
        
          !false
        
      
      
        
          cfg.getReporterSpecs().size() == 1
        
        
          1 == 1
        
      
      
        
          cfg.getReporterSpecs()[0] == Catch::ReporterSpec{ expectedReporter, {}, {}, {} }
        
        
          {?} == {?}
        
      
      
        
          cfg.getProcessedReporterSpecs().size() == 1
        
        
          1 == 1
        
      
      
        
          cfg.getProcessedReporterSpecs()[0] == Catch::ProcessedReporterSpec{ expectedReporter, std::string{}, Catch::ColourMode::PlatformDefault, {} }
        
        
          {?} == {?}
        
      
      
    
    
      
        
          
            result
          
          
            {?}
          
        
        
          
            cfg.hasTestFilters()
          
          
            true
          
        
        
          
            cfg.testSpec().matches(*fakeTestCase("notIncluded")) == false
          
          
            false == false
          
        
        
          
            cfg.testSpec().matches(*fakeTestCase("test1"))
          
          
            true
          
        
        
      
      
    
    
      
        
          
            result
          
          
            {?}
          
        
        
          
            cfg.hasTestFilters()
          
          
            true
          
        
        
          
            cfg.testSpec().matches(*fakeTestCase("test1")) == false
          
          
            false == false
          
        
        
          
            cfg.testSpec().matches(*fakeTestCase("alwaysIncluded"))
          
          
            true
          
        
        
      
      
    
    
      
        
          
            result
          
          
            {?}
          
        
        
          
            cfg.hasTestFilters()
          
          
            true
          
        
        
          
            cfg.testSpec().matches(*fakeTestCase("test1")) == false
          
          
            false == false
          
        
        
          
            cfg.testSpec().matches(*fakeTestCase("alwaysIncluded"))
          
          
            true
          
        
        
      
      
    
    
      
        
          result.errorMessage() := ""
        
        
          
            result
          
          
            {?}
          
        
        
          result.errorMessage() := ""
        
        
          
            config.reporterSpecifications == vec_Specs{ { "console", {}, {}, {} } }
          
          
            { {?} } == { {?} }
          
        
        
      
      
    
    
      
        
          result.errorMessage() := ""
        
        
          
            result
          
          
            {?}
          
        
        
          result.errorMessage() := ""
        
        
          
            config.reporterSpecifications == vec_Specs{ { "xml", {}, {}, {} } }
          
          
            { {?} } == { {?} }
          
        
        
      
      
    
    
      
        
          result.errorMessage() := ""
        
        
          
            result
          
          
            {?}
          
        
        
          result.errorMessage() := ""
        
        
          
            config.reporterSpecifications == vec_Specs{ { "junit", {}, {}, {} } }
          
          
            { {?} } == { {?} }
          
        
        
      
      
    
    
      
        
          
            !result
          
          
            true
          
        
        
          
            result.errorMessage(), ContainsSubstring("Unrecognized reporter")
          
          
            "Unrecognized reporter, 'unsupported'. Check available with --list-reporters" contains: "Unrecognized reporter"
          
        
        
      
      
    
    
      
        
          result.errorMessage() := ""
        
        
          
            result
          
          
            {?}
          
        
        
          result.errorMessage() := ""
        
        
          
            config.reporterSpecifications == vec_Specs{ { "console", "out.txt"s, {}, {} } }
          
          
            { {?} } == { {?} }
          
        
        
      
      
    
    
      
        
          result.errorMessage() := ""
        
        
          
            result
          
          
            {?}
          
        
        
          result.errorMessage() := ""
        
        
          
            config.reporterSpecifications == vec_Specs{ { "console", "C:\\Temp\\out.txt"s, {}, {} } }
          
          
            { {?} } == { {?} }
          
        
        
      
      
    
    
      
        
          
            
              cli.parse({ "test", "-r", "xml::out=output.xml", "-r", "junit::out=output-junit.xml" })
            
            
              {?}
            
          
          
            
              config.reporterSpecifications == vec_Specs{ { "xml", "output.xml"s, {}, {} }, { "junit", "output-junit.xml"s, {}, {} } }
            
            
              { {?}, {?} } == { {?}, {?} }
            
          
          
        
        
      
      
    
    
      
        
          
            
              cli.parse({ "test", "-r", "xml::out=output.xml", "-r", "console" })
            
            
              {?}
            
          
          
            
              config.reporterSpecifications == vec_Specs{ { "xml", "output.xml"s, {}, {} }, { "console", {}, {}, {} } }
            
            
              { {?}, {?} } == { {?}, {?} }
            
          
          
        
        
      
      
    
    
      
        
          
            
              !result
            
            
              true
            
          
          
            
              result.errorMessage(), ContainsSubstring("Only one reporter may have unspecified output file.")
            
            
              "Only one reporter may have unspecified output file." contains: "Only one reporter may have unspecified output file."
            
          
          
        
        
      
      
    
    
      
        
          
            cli.parse({"test", "-b"})
          
          
            {?}
          
        
        
          
            config.shouldDebugBreak == true
          
          
            true == true
          
        
        
      
      
    
    
      
        
          
            cli.parse({"test", "--break"})
          
          
            {?}
          
        
        
          
            config.shouldDebugBreak
          
          
            true
          
        
        
      
      
    
    
      
        
          
            cli.parse({"test", "-a"})
          
          
            {?}
          
        
        
          
            config.abortAfter == 1
          
          
            1 == 1
          
        
        
      
      
    
    
      
        
          
            cli.parse({"test", "-x", "2"})
          
          
            {?}
          
        
        
          
            config.abortAfter == 2
          
          
            2 == 2
          
        
        
      
      
    
    
      
        
          
            !result
          
          
            true
          
        
        
          
            result.errorMessage(), ContainsSubstring("convert") && ContainsSubstring("oops")
          
          
            "Unable to convert 'oops' to destination type" ( contains: "convert" and contains: "oops" )
          
        
        
      
      
    
    
      
        
          
            
              cli.parse({"test", "--wait-for-keypress", std::get<0>(input)})
            
            
              {?}
            
          
          
            
              config.waitForKeypress == std::get<1>(input)
            
            
              0 == 0
            
          
          
        
        
      
      
    
    
      
        
          
            
              cli.parse({"test", "--wait-for-keypress", std::get<0>(input)})
            
            
              {?}
            
          
          
            
              config.waitForKeypress == std::get<1>(input)
            
            
              1 == 1
            
          
          
        
        
      
      
    
    
      
        
          
            
              cli.parse({"test", "--wait-for-keypress", std::get<0>(input)})
            
            
              {?}
            
          
          
            
              config.waitForKeypress == std::get<1>(input)
            
            
              2 == 2
            
          
          
        
        
      
      
    
    
      
        
          
            
              cli.parse({"test", "--wait-for-keypress", std::get<0>(input)})
            
            
              {?}
            
          
          
            
              config.waitForKeypress == std::get<1>(input)
            
            
              3 == 3
            
          
          
        
        
      
      
    
    
      
        
          
            
              !result
            
            
              true
            
          
          
            
              result.errorMessage(), ContainsSubstring("never") && ContainsSubstring("both")
            
            
              "keypress argument must be one of: never, start, exit or both. 'sometimes' not recognised" ( contains: "never" and contains: "both" )
            
          
          
        
        
      
      
    
    
      
        
          
            cli.parse({"test", "-e"})
          
          
            {?}
          
        
        
          
            config.noThrow
          
          
            true
          
        
        
      
      
    
    
      
        
          
            cli.parse({"test", "--nothrow"})
          
          
            {?}
          
        
        
          
            config.noThrow
          
          
            true
          
        
        
      
      
    
    
      
        
          
            cli.parse({"test", "-o", "filename.ext"})
          
          
            {?}
          
        
        
          
            config.defaultOutputFilename == "filename.ext"
          
          
            "filename.ext" == "filename.ext"
          
        
        
      
      
    
    
      
        
          
            cli.parse({"test", "--out", "filename.ext"})
          
          
            {?}
          
        
        
          
            config.defaultOutputFilename == "filename.ext"
          
          
            "filename.ext" == "filename.ext"
          
        
        
      
      
    
    
      
        
          
            cli.parse({"test", "-abe"})
          
          
            {?}
          
        
        
          
            config.abortAfter == 1
          
          
            1 == 1
          
        
        
          
            config.shouldDebugBreak
          
          
            true
          
        
        
          
            config.noThrow == true
          
          
            true == true
          
        
        
      
      
    
    
      
        
          
            cli.parse({"test"})
          
          
            {?}
          
        
        
          
            config.defaultColourMode == ColourMode::PlatformDefault
          
          
            0 == 0
          
        
        
      
      
    
    
      
        
          
            cli.parse( { "test", "--colour-mode", "default" } )
          
          
            {?}
          
        
        
          
            config.defaultColourMode == ColourMode::PlatformDefault
          
          
            0 == 0
          
        
        
      
      
    
    
      
        
          
            cli.parse({"test", "--colour-mode", "ansi"})
          
          
            {?}
          
        
        
          
            config.defaultColourMode == ColourMode::ANSI
          
          
            1 == 1
          
        
        
      
      
    
    
      
        
          
            cli.parse({"test", "--colour-mode", "none"})
          
          
            {?}
          
        
        
          
            config.defaultColourMode == ColourMode::None
          
          
            3 == 3
          
        
        
      
      
    
    
      
        
          
            !result
          
          
            true
          
        
        
          
            result.errorMessage(), ContainsSubstring( "colour mode must be one of" )
          
          
            "colour mode must be one of: default, ansi, win32, or none. 'wrong' is not recognised" contains: "colour mode must be one of"
          
        
        
      
      
    
    
      
        
          
            cli.parse({ "test", "--benchmark-samples=200" })
          
          
            {?}
          
        
        
          
            config.benchmarkSamples == 200
          
          
            200 == 200
          
        
        
      
      
    
    
      
        
          
            cli.parse({ "test", "--benchmark-resamples=20000" })
          
          
            {?}
          
        
        
          
            config.benchmarkResamples == 20000
          
          
            20000 (0x) == 20000 (0x)
          
        
        
      
      
    
    
      
        
          
            cli.parse({ "test", "--benchmark-confidence-interval=0.99" })
          
          
            {?}
          
        
        
          
            config.benchmarkConfidenceInterval == Catch::Approx(0.99)
          
          
            0.99 == Approx( 0.99 )
          
        
        
      
      
    
    
      
        
          
            cli.parse({ "test", "--benchmark-no-analysis" })
          
          
            {?}
          
        
        
          
            config.benchmarkNoAnalysis
          
          
            true
          
        
        
      
      
    
    
      
        
          
            cli.parse({ "test", "--benchmark-warmup-time=10" })
          
          
            {?}
          
        
        
          
            config.benchmarkWarmupTime == 10
          
          
            10 == 10
          
        
        
      
      
    
    
  
  
    
      
        std::tuple_size<TestType>::value >= 1
      
      
        3 >= 1
      
    
    
  
  
    
      
        std::tuple_size<TestType>::value >= 1
      
      
        2 >= 1
      
    
    
  
  
    
      
        std::tuple_size<TestType>::value >= 1
      
      
        1 >= 1
      
    
    
  
  
    
      
        Catch::generateRandomSeed(method)
      
      
        Catch::generateRandomSeed(method)
      
    
    
      
        Catch::generateRandomSeed(method)
      
      
        Catch::generateRandomSeed(method)
      
    
    
      
        Catch::generateRandomSeed(method)
      
      
        Catch::generateRandomSeed(method)
      
    
    
  
  
    
      
        Catch::generateRandomSeed(static_cast<Catch::GenerateFrom>(77))
      
      
        Catch::generateRandomSeed(static_cast<Catch::GenerateFrom>(77))
      
    
    
  
  
    
      
        Catch::Detail::stringify(UsesSentinel{}) == "{  }"
      
      
        "{  }" == "{  }"
      
    
    
  
  
    
      
        truthy(false)
      
      
        Hey, its truthy!
      
    
    
  
  
    
      
        testStringForMatching(), Matches( "this STRING contains 'abc' as a substring" )
      
      
        "this string contains 'abc' as a substring" matches "this STRING contains 'abc' as a substring" case sensitively
      
    
    
      
        testStringForMatching(), Matches( "contains 'abc' as a substring" )
      
      
        "this string contains 'abc' as a substring" matches "contains 'abc' as a substring" case sensitively
      
    
    
      
        testStringForMatching(), Matches( "this string contains 'abc' as a" )
      
      
        "this string contains 'abc' as a substring" matches "this string contains 'abc' as a" case sensitively
      
    
    
  
  
    
      
        registry.registerReporter( "with::doublecolons", Catch::Detail::make_unique<TestReporterFactory>() ), "'::' is not allowed in reporter name: 'with::doublecolons'"
      
      
        "'::' is not allowed in reporter name: 'with::doublecolons'" equals: "'::' is not allowed in reporter name: 'with::doublecolons'"
      
    
    
  
  
    
      
        actual, !UnorderedEquals( expected )
      
      
        { 'a', 'b' } not UnorderedEquals: { 'c', 'b' }
      
    
    
  
  
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: Automake
      
      
        
          listingString, ContainsSubstring("fakeTag"s)
        
        
          "All available tags:
   1  [fakeTag]
1 tag
" contains: "fakeTag"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: Automake
      
      
        
          listingString, ContainsSubstring("fake reporter"s)
        
        
          "Available reporters:
  fake reporter:  fake description
" contains: "fake reporter"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: Automake
      
      
        
          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
        
        
          "All available test cases:
  fake test name
      [fakeTestTag]
1 test case
" ( contains: "fake test name" and contains: "fakeTestTag" )
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: compact
      
      
        
          listingString, ContainsSubstring("fakeTag"s)
        
        
          "All available tags:
   1  [fakeTag]
1 tag
" contains: "fakeTag"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: compact
      
      
        
          listingString, ContainsSubstring("fake reporter"s)
        
        
          "Available reporters:
  fake reporter:  fake description
" contains: "fake reporter"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: compact
      
      
        
          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
        
        
          "All available test cases:
  fake test name
      [fakeTestTag]
1 test case
" ( contains: "fake test name" and contains: "fakeTestTag" )
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: console
      
      
        
          listingString, ContainsSubstring("fakeTag"s)
        
        
          "All available tags:
   1  [fakeTag]
1 tag
" contains: "fakeTag"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: console
      
      
        
          listingString, ContainsSubstring("fake reporter"s)
        
        
          "Available reporters:
  fake reporter:  fake description
" contains: "fake reporter"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: console
      
      
        
          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
        
        
          "All available test cases:
  fake test name
      [fakeTestTag]
1 test case
" ( contains: "fake test name" and contains: "fakeTestTag" )
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: JUnit
      
      
        
          listingString, ContainsSubstring("fakeTag"s)
        
        
          "<?xml version="1.0" encoding="UTF-8"?>
All available tags:
   1  [fakeTag]
1 tag
" contains: "fakeTag"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: JUnit
      
      
        
          listingString, ContainsSubstring("fake reporter"s)
        
        
          "<?xml version="1.0" encoding="UTF-8"?>
Available reporters:
  fake reporter:  fake description
" contains: "fake reporter"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: JUnit
      
      
        
          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
        
        
          "<?xml version="1.0" encoding="UTF-8"?>
All available test cases:
  fake test name
      [fakeTestTag]
1 test case
" ( contains: "fake test name" and contains: "fakeTestTag" )
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: SonarQube
      
      
        
          listingString, ContainsSubstring("fakeTag"s)
        
        
          "<?xml version="1.0" encoding="UTF-8"?>
All available tags:
   1  [fakeTag]
1 tag
" contains: "fakeTag"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: SonarQube
      
      
        
          listingString, ContainsSubstring("fake reporter"s)
        
        
          "<?xml version="1.0" encoding="UTF-8"?>
Available reporters:
  fake reporter:  fake description
" contains: "fake reporter"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: SonarQube
      
      
        
          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
        
        
          "<?xml version="1.0" encoding="UTF-8"?>
All available test cases:
  fake test name
      [fakeTestTag]
1 test case
" ( contains: "fake test name" and contains: "fakeTestTag" )
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: TAP
      
      
        
          listingString, ContainsSubstring("fakeTag"s)
        
        
          "All available tags:
   1  [fakeTag]
1 tag
" contains: "fakeTag"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: TAP
      
      
        
          listingString, ContainsSubstring("fake reporter"s)
        
        
          "Available reporters:
  fake reporter:  fake description
" contains: "fake reporter"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: TAP
      
      
        
          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
        
        
          "All available test cases:
  fake test name
      [fakeTestTag]
1 test case
" ( contains: "fake test name" and contains: "fakeTestTag" )
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: TeamCity
      
      
        
          listingString, ContainsSubstring("fakeTag"s)
        
        
          "All available tags:
   1  [fakeTag]
1 tag
" contains: "fakeTag"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: TeamCity
      
      
        
          listingString, ContainsSubstring("fake reporter"s)
        
        
          "Available reporters:
  fake reporter:  fake description
" contains: "fake reporter"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: TeamCity
      
      
        
          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
        
        
          "All available test cases:
  fake test name
      [fakeTestTag]
1 test case
" ( contains: "fake test name" and contains: "fakeTestTag" )
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: XML
      
      
        
          listingString, ContainsSubstring("fakeTag"s)
        
        
          "<?xml version="1.0" encoding="UTF-8"?>
<TagsFromMatchingTests>
  <Tag>
    <Count>1</Count>
    <Aliases>
      <Alias>fakeTag</Alias>
    </Aliases>
  </Tag>
</TagsFromMatchingTests>" contains: "fakeTag"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: XML
      
      
        
          listingString, ContainsSubstring("fake reporter"s)
        
        
          "<?xml version="1.0" encoding="UTF-8"?>
<AvailableReporters>
  <Reporter>
    <Name>fake reporter</Name>
    <Description>fake description</Description>
  </Reporter>
</AvailableReporters>" contains: "fake reporter"
        
      
      
    
    
      
        !(factories.empty())
      
      
        !false
      
    
    
      
        Tested reporter: XML
      
      
        
          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
        
        
          "<?xml version="1.0" encoding="UTF-8"?>
<MatchingTests>
  <TestCase>
    <Name>fake test name</Name>
    <ClassName/>
    <Tags>[fakeTestTag]</Tags>
    <SourceInfo>
      <File>fake-file.cpp</File>
      <Line>123456789</Line>
    </SourceInfo>
  </TestCase>
</MatchingTests>" ( contains: "fake test name" and contains: "fakeTestTag" )
        
      
      
    
    
  
  
    
  
  
    
  
  
    
  
  
    
    
  
  
    
    
  
  
    
    
  
  
    
      
        
          v.size() == 0
        
        
          0 == 0
        
      
      
        
          
            
              v.size() == 10
            
            
              10 == 10
            
          
          
            
              v.capacity() >= 10
            
            
              10 >= 10
            
          
          
            
              
                
                  v.size() == 5
                
                
                  5 == 5
                
              
              
                
                  v.capacity() >= 10
                
                
                  10 >= 10
                
              
              
            
            
          
          
        
        
      
      
    
    
      
        
          v.size() == 0
        
        
          0 == 0
        
      
      
        
          
            
              v.capacity() >= 10
            
            
              10 >= 10
            
          
          
            
              v.size() == 0
            
            
              0 == 0
            
          
          
        
        
      
      
    
    
  
  
    
      
A string sent directly to stdout
      
      
A string sent directly to stderr
A string sent to stderr via clog
      
    
  
  
    
      
        d == Approx( 1.23 )
      
      
        1.23 == Approx( 1.23 )
      
    
    
      
        d != Approx( 1.22 )
      
      
        1.23 != Approx( 1.22 )
      
    
    
      
        d != Approx( 1.24 )
      
      
        1.23 != Approx( 1.24 )
      
    
    
      
        d == 1.23_a
      
      
        1.23 == Approx( 1.23 )
      
    
    
      
        d != 1.22_a
      
      
        1.23 != Approx( 1.22 )
      
    
    
      
        Approx( d ) == 1.23
      
      
        Approx( 1.23 ) == 1.23
      
    
    
      
        Approx( d ) != 1.22
      
      
        Approx( 1.23 ) != 1.22
      
    
    
      
        Approx( d ) != 1.24
      
      
        Approx( 1.23 ) != 1.24
      
    
    
  
  
    
    
    
      
Message from section one
Message from section two
      
    
  
  
    
      
        testStringForMatching(), StartsWith( "This String" )
      
      
        "this string contains 'abc' as a substring" starts with: "This String"
      
    
    
      
        testStringForMatching(), StartsWith( "string", Catch::CaseSensitive::No )
      
      
        "this string contains 'abc' as a substring" starts with: "string" (case insensitive)
      
    
    
  
  
    
      
        
          Catch::Detail::stringify(singular) == "{ 1 }"
        
        
          "{ 1 }" == "{ 1 }"
        
      
      
    
    
      
        
          Catch::Detail::stringify(arr) == "{ 3, 2, 1 }"
        
        
          "{ 3, 2, 1 }" == "{ 3, 2, 1 }"
        
      
      
    
    
      
        
          Catch::Detail::stringify(arr) == R"({ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } })"
        
        
          "{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"
==
"{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"
        
      
      
    
    
  
  
    
      
        testStringForMatching(), ContainsSubstring( "string" )
      
      
        "this string contains 'abc' as a substring" contains: "string"
      
    
    
      
        testStringForMatching(), ContainsSubstring( "string", Catch::CaseSensitive::No )
      
      
        "this string contains 'abc' as a substring" contains: "string" (case insensitive)
      
    
    
      
        testStringForMatching(), ContainsSubstring( "abc" )
      
      
        "this string contains 'abc' as a substring" contains: "abc"
      
    
    
      
        testStringForMatching(), ContainsSubstring( "aBC", Catch::CaseSensitive::No )
      
      
        "this string contains 'abc' as a substring" contains: "abc" (case insensitive)
      
    
    
      
        testStringForMatching(), StartsWith( "this" )
      
      
        "this string contains 'abc' as a substring" starts with: "this"
      
    
    
      
        testStringForMatching(), StartsWith( "THIS", Catch::CaseSensitive::No )
      
      
        "this string contains 'abc' as a substring" starts with: "this" (case insensitive)
      
    
    
      
        testStringForMatching(), EndsWith( "substring" )
      
      
        "this string contains 'abc' as a substring" ends with: "substring"
      
    
    
      
        testStringForMatching(), EndsWith( " SuBsTrInG", Catch::CaseSensitive::No )
      
      
        "this string contains 'abc' as a substring" ends with: " substring" (case insensitive)
      
    
    
  
  
    
      
        
          empty.empty()
        
        
          true
        
      
      
        
          empty.size() == 0
        
        
          0 == 0
        
      
      
        
          std::strcmp( empty.data(), "" ) == 0
        
        
          0 == 0
        
      
      
    
    
      
        
          s.empty() == false
        
        
          false == false
        
      
      
        
          s.size() == 5
        
        
          5 == 5
        
      
      
        
          std::strcmp( rawChars, "hello" ) == 0
        
        
          0 == 0
        
      
      
        
          s.data() == rawChars
        
        
          "hello" == "hello"
        
      
      
    
    
      
        
          original == "original"
        
        
          original == "original"
        
      
      
        
          original.data()
        
        
          original.data()
        
      
      
    
    
      
        
          original.begin() == copy.begin()
        
        
          "original string" == "original string"
        
      
      
    
    
      
        
          original.begin() == copy.begin()
        
        
          "original string" == "original string"
        
      
      
    
    
      
        
          
            ss.empty() == false
          
          
            false == false
          
        
        
          
            ss.size() == 5
          
          
            5 == 5
          
        
        
          
            std::strncmp( ss.data(), "hello", 5 ) == 0
          
          
            0 == 0
          
        
        
          
            ss == "hello"
          
          
            hello == "hello"
          
        
        
      
      
    
    
      
        
          
            ss.size() == 6
          
          
            6 == 6
          
        
        
          
            std::strcmp( ss.data(), "world!" ) == 0
          
          
            0 == 0
          
        
        
      
      
    
    
      
        
          
            s.data() == s2.data()
          
          
            "hello world!" == "hello world!"
          
        
        
      
      
    
    
      
        
          
            s.data() == ss.data()
          
          
            "hello world!" == "hello world!"
          
        
        
      
      
    
    
      
        
          
            s.substr(s.size() + 1, 123).empty()
          
          
            true
          
        
        
      
      
    
    
      
        
          
            std::strcmp(ss.data(), "world!") == 0
          
          
            0 == 0
          
        
        
      
      
    
    
      
        
          
            s.substr(1'000'000, 1).empty()
          
          
            true
          
        
        
      
      
    
    
      
        
          reinterpret_cast<char*>(buffer1) != reinterpret_cast<char*>(buffer2)
        
        
          "Hello" != "Hello"
        
      
      
        
          left == right
        
        
          Hello == Hello
        
      
      
        
          left != left.substr(0, 3)
        
        
          Hello != Hel
        
      
      
    
    
      
        
          
            sr == "a standard string"
          
          
            a standard string == "a standard string"
          
        
        
          
            sr.size() == stdStr.size()
          
          
            17 == 17
          
        
        
      
      
    
    
      
        
          
            sr == "a standard string"
          
          
            a standard string == "a standard string"
          
        
        
          
            sr.size() == stdStr.size()
          
          
            17 == 17
          
        
        
      
      
    
    
      
        
          
            sr == "a standard string"
          
          
            a standard string == "a standard string"
          
        
        
          
            sr.size() == stdStr.size()
          
          
            17 == 17
          
        
        
      
      
    
    
      
        
          
            stdStr == "a stringref"
          
          
            "a stringref" == "a stringref"
          
        
        
          
            stdStr.size() == sr.size()
          
          
            11 == 11
          
        
        
      
      
    
    
      
        
          
            stdStr == "a stringref"
          
          
            "a stringref" == "a stringref"
          
        
        
          
            stdStr.size() == sr.size()
          
          
            11 == 11
          
        
        
      
      
    
    
      
        
          lhs == "some string += the stringref contents"
        
        
          "some string += the stringref contents"
==
"some string += the stringref contents"
        
      
      
    
    
      
        
          together == "abrakadabra"
        
        
          "abrakadabra" == "abrakadabra"
        
      
      
    
    
  
  
    
    
    
  
  
    
      
        ::Catch::Detail::stringify( with_null_terminator ) == R"("abc")"s
      
      
        ""abc"" == ""abc""
      
    
    
      
        ::Catch::Detail::stringify( no_null_terminator ) == R"("abc")"s
      
      
        ""abc"" == ""abc""
      
    
    
  
  
    
      
        ::Catch::Detail::stringify( with_null_terminator ) == R"("abc")"s
      
      
        ""abc"" == ""abc""
      
    
    
      
        ::Catch::Detail::stringify( no_null_terminator ) == R"("abc")"s
      
      
        ""abc"" == ""abc""
      
    
    
  
  
    
      
        ::Catch::Detail::stringify( with_null_terminator ) == R"("abc")"s
      
      
        ""abc"" == ""abc""
      
    
    
      
        ::Catch::Detail::stringify( no_null_terminator ) == R"("abc")"s
      
      
        ""abc"" == ""abc""
      
    
    
  
  
    
      
        minute == seconds
      
      
        1 m == 60 s
      
    
    
      
        hour != seconds
      
      
        1 h != 60 s
      
    
    
      
        micro != milli
      
      
        1 us != 1 ms
      
    
    
      
        nano != micro
      
      
        1 ns != 1 us
      
    
    
  
  
    
      
        half_minute != femto_second
      
      
        1 [30/1]s != 1 fs
      
    
    
      
        pico_second != atto_second
      
      
        1 ps != 1 as
      
    
    
  
  
    
      
        now != later
      
      
        {iso8601-timestamp}
!=
{iso8601-timestamp}
      
    
    
  
  
    
      
        s1 == s2
      
      
        "if ($b == 10) {
		$a	= 20;
}"
==
"if ($b == 10) {
	$a = 20;
}
"
      
    
    
  
  
    
      
        
          what, ContainsSubstring( "[@zzz]" )
        
        
          "error: tag alias, '[@zzz]' already registered.
	First seen at: file:2
	Redefined at: file:10" contains: "[@zzz]"
        
      
      
        
          what, ContainsSubstring( "file" )
        
        
          "error: tag alias, '[@zzz]' already registered.
	First seen at: file:2
	Redefined at: file:10" contains: "file"
        
      
      
        
          what, ContainsSubstring( "2" )
        
        
          "error: tag alias, '[@zzz]' already registered.
	First seen at: file:2
	Redefined at: file:10" contains: "2"
        
      
      
        
          what, ContainsSubstring( "10" )
        
        
          "error: tag alias, '[@zzz]' already registered.
	First seen at: file:2
	Redefined at: file:10" contains: "10"
        
      
      
    
    
      
        
          registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
        
        
          registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
        
      
      
        
          registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) )
        
        
          registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) )
        
      
      
        
          registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) )
        
        
          registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) )
        
      
      
        
          registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) )
        
        
          registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) )
        
      
      
    
    
  
  
    
      
        testCase.tags.size() == 2
      
      
        2 == 2
      
    
    
      
        testCase.tags, VectorContains( Tag( "tag with spaces" ) ) && VectorContains( Tag( "I said \"good day\" sir!"_catch_sr ) )
      
      
        { {?}, {?} } ( Contains: {?} and Contains: {?} )
      
    
    
  
  
    
      
        Template_Fixture<TestType>::m_a == 1
      
      
        1 == 1
      
    
    
  
  
    
      
        Template_Fixture<TestType>::m_a == 1
      
      
        1 == 1
      
    
    
  
  
    
      
        Template_Fixture<TestType>::m_a == 1
      
      
        1.0 == 1
      
    
    
  
  
    
      
        sizeof(TestType) > 0
      
      
        1 > 0
      
    
    
  
  
    
      
        sizeof(TestType) > 0
      
      
        4 > 0
      
    
    
  
  
    
      
        sizeof(TestType) > 0
      
      
        1 > 0
      
    
    
  
  
    
      
        sizeof(TestType) > 0
      
      
        4 > 0
      
    
    
  
  
    
      
        sizeof(TestType) > 0
      
      
        4 > 0
      
    
    
  
  
    
      
        sizeof(TestType) > 0
      
      
        1 > 0
      
    
    
  
  
    
      
        sizeof(TestType) > 0
      
      
        4 > 0
      
    
    
  
  
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 10
        
        
          10 == 10
        
      
      
        
          v.capacity() >= 10
        
        
          10 >= 10
        
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 0
        
        
          0 == 0
        
      
      
        
          v.capacity() >= 5
        
        
          5 >= 5
        
      
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 5
        
        
          5 == 5
        
      
      
        
          v.capacity() >= 10
        
        
          10 >= 10
        
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 5
        
        
          5 == 5
        
      
      
        
          v.capacity() >= 5
        
        
          5 >= 5
        
      
      
    
    
  
  
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 10
        
        
          10 == 10
        
      
      
        
          v.capacity() >= 10
        
        
          10 >= 10
        
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 0
        
        
          0 == 0
        
      
      
        
          v.capacity() >= 5
        
        
          5 >= 5
        
      
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 5
        
        
          5 == 5
        
      
      
        
          v.capacity() >= 10
        
        
          10 >= 10
        
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 5
        
        
          5 == 5
        
      
      
        
          v.capacity() >= 5
        
        
          5 >= 5
        
      
      
    
    
  
  
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 10
        
        
          10 == 10
        
      
      
        
          v.capacity() >= 10
        
        
          10 >= 10
        
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 0
        
        
          0 == 0
        
      
      
        
          v.capacity() >= 5
        
        
          5 >= 5
        
      
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 5
        
        
          5 == 5
        
      
      
        
          v.capacity() >= 10
        
        
          10 >= 10
        
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 5
        
        
          5 == 5
        
      
      
        
          v.capacity() >= 5
        
        
          5 >= 5
        
      
      
    
    
  
  
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 10
        
        
          10 == 10
        
      
      
        
          v.capacity() >= 10
        
        
          10 >= 10
        
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 0
        
        
          0 == 0
        
      
      
        
          v.capacity() >= 5
        
        
          5 >= 5
        
      
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 5
        
        
          5 == 5
        
      
      
        
          v.capacity() >= 10
        
        
          10 >= 10
        
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 5
        
        
          5 == 5
        
      
      
        
          v.capacity() >= 5
        
        
          5 >= 5
        
      
      
    
    
  
  
    
      
        v.size() == V
      
      
        6 == 6
      
    
    
      
        v.capacity() >= V
      
      
        6 >= 6
      
    
    
      
        
          v.size() == 2 * V
        
        
          12 == 12
        
      
      
        
          v.capacity() >= 2 * V
        
        
          12 >= 12
        
      
      
    
    
      
        v.size() == V
      
      
        6 == 6
      
    
    
      
        v.capacity() >= V
      
      
        6 >= 6
      
    
    
      
        
          v.size() == 0
        
        
          0 == 0
        
      
      
        
          v.capacity() >= V
        
        
          6 >= 6
        
      
      
      
    
    
      
        v.size() == V
      
      
        6 == 6
      
    
    
      
        v.capacity() >= V
      
      
        6 >= 6
      
    
    
      
        
          v.size() == V
        
        
          6 == 6
        
      
      
        
          v.capacity() >= 2 * V
        
        
          12 >= 12
        
      
      
    
    
      
        v.size() == V
      
      
        6 == 6
      
    
    
      
        v.capacity() >= V
      
      
        6 >= 6
      
    
    
      
        
          v.size() == V
        
        
          6 == 6
        
      
      
        
          v.capacity() >= V
        
        
          6 >= 6
        
      
      
    
    
  
  
    
      
        v.size() == V
      
      
        4 == 4
      
    
    
      
        v.capacity() >= V
      
      
        4 >= 4
      
    
    
      
        
          v.size() == 2 * V
        
        
          8 == 8
        
      
      
        
          v.capacity() >= 2 * V
        
        
          8 >= 8
        
      
      
    
    
      
        v.size() == V
      
      
        4 == 4
      
    
    
      
        v.capacity() >= V
      
      
        4 >= 4
      
    
    
      
        
          v.size() == 0
        
        
          0 == 0
        
      
      
        
          v.capacity() >= V
        
        
          4 >= 4
        
      
      
      
    
    
      
        v.size() == V
      
      
        4 == 4
      
    
    
      
        v.capacity() >= V
      
      
        4 >= 4
      
    
    
      
        
          v.size() == V
        
        
          4 == 4
        
      
      
        
          v.capacity() >= 2 * V
        
        
          8 >= 8
        
      
      
    
    
      
        v.size() == V
      
      
        4 == 4
      
    
    
      
        v.capacity() >= V
      
      
        4 >= 4
      
    
    
      
        
          v.size() == V
        
        
          4 == 4
        
      
      
        
          v.capacity() >= V
        
        
          4 >= 4
        
      
      
    
    
  
  
    
      
        v.size() == V
      
      
        5 == 5
      
    
    
      
        v.capacity() >= V
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 2 * V
        
        
          10 == 10
        
      
      
        
          v.capacity() >= 2 * V
        
        
          10 >= 10
        
      
      
    
    
      
        v.size() == V
      
      
        5 == 5
      
    
    
      
        v.capacity() >= V
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 0
        
        
          0 == 0
        
      
      
        
          v.capacity() >= V
        
        
          5 >= 5
        
      
      
      
    
    
      
        v.size() == V
      
      
        5 == 5
      
    
    
      
        v.capacity() >= V
      
      
        5 >= 5
      
    
    
      
        
          v.size() == V
        
        
          5 == 5
        
      
      
        
          v.capacity() >= 2 * V
        
        
          10 >= 10
        
      
      
    
    
      
        v.size() == V
      
      
        5 == 5
      
    
    
      
        v.capacity() >= V
      
      
        5 >= 5
      
    
    
      
        
          v.size() == V
        
        
          5 == 5
        
      
      
        
          v.capacity() >= V
        
        
          5 >= 5
        
      
      
    
    
  
  
    
      
        v.size() == V
      
      
        15 == 15
      
    
    
      
        v.capacity() >= V
      
      
        15 >= 15
      
    
    
      
        
          v.size() == 2 * V
        
        
          30 == 30
        
      
      
        
          v.capacity() >= 2 * V
        
        
          30 >= 30
        
      
      
    
    
      
        v.size() == V
      
      
        15 == 15
      
    
    
      
        v.capacity() >= V
      
      
        15 >= 15
      
    
    
      
        
          v.size() == 0
        
        
          0 == 0
        
      
      
        
          v.capacity() >= V
        
        
          15 >= 15
        
      
      
      
    
    
      
        v.size() == V
      
      
        15 == 15
      
    
    
      
        v.capacity() >= V
      
      
        15 >= 15
      
    
    
      
        
          v.size() == V
        
        
          15 == 15
        
      
      
        
          v.capacity() >= 2 * V
        
        
          30 >= 30
        
      
      
    
    
      
        v.size() == V
      
      
        15 == 15
      
    
    
      
        v.capacity() >= V
      
      
        15 >= 15
      
    
    
      
        
          v.size() == V
        
        
          15 == 15
        
      
      
        
          v.capacity() >= V
        
        
          15 >= 15
        
      
      
    
    
  
  
    
      
        testCase.tags.size() == 1
      
      
        1 == 1
      
    
    
      
        testCase.tags[0] == Tag( "tag1" )
      
      
        {?} == {?}
      
    
    
  
  
    
  
  
    
      
        0x == bit30and31
      
      
        3221225472 (0x) == 3221225472
      
    
    
  
  
    
  
  
    
      
        true
      
      
        true
      
    
    
      
        false
      
      
        false
      
    
    
      
        true
      
      
        true
      
    
    
      
        false
      
      
        false
      
    
    
  
  
    
      
        true
      
      
        true
      
    
    
    
  
  
    
      
        false
      
      
        false
      
    
    
    
  
  
    
      
        1 == 2
      
      
        1 == 2
      
    
    
  
  
    
      
        
          listingString, ContainsSubstring("[fakeTag]"s)
        
        
          "All available tags:
   1  [fakeTag]
1 tag
" contains: "[fakeTag]"
        
      
      
    
    
      
        
          listingString, ContainsSubstring( "fake reporter"s ) && ContainsSubstring( "fake description"s )
        
        
          "Available reporters:
  fake reporter:  fake description
" ( contains: "fake reporter" and contains: "fake description" )
        
      
      
    
    
      
        
          listingString, ContainsSubstring( "fake test name"s ) && ContainsSubstring( "fakeTestTag"s )
        
        
          "All available test cases:
  fake test name
      [fakeTestTag]
1 test case
" ( contains: "fake test name" and contains: "fakeTestTag" )
        
      
      
    
    
      
        
          listingString, ContainsSubstring( "fakeListener"s ) && ContainsSubstring( "fake description"s )
        
        
          "Registered listeners:
  fakeListener:  fake description
" ( contains: "fakeListener" and contains: "fake description" )
        
      
      
    
    
  
  
    
  
  
    
      For some reason someone is throwing a string literal!
    
    
  
  
    
      
        testCase.isOpen()
      
      
        true
      
    
    
      
        s1.isOpen()
      
      
        true
      
    
    
      
        
          s1.isSuccessfullyCompleted()
        
        
          true
        
      
      
        
          testCase.isComplete() == false
        
        
          false == false
        
      
      
        
          ctx.completedCycle()
        
        
          true
        
      
      
        
          testCase.isSuccessfullyCompleted()
        
        
          true
        
      
      
    
    
      
        testCase.isOpen()
      
      
        true
      
    
    
      
        s1.isOpen()
      
      
        true
      
    
    
      
        
          s1.isComplete()
        
        
          true
        
      
      
        
          s1.isSuccessfullyCompleted() == false
        
        
          false == false
        
      
      
        
          testCase.isComplete() == false
        
        
          false == false
        
      
      
        
          ctx.completedCycle()
        
        
          true
        
      
      
        
          testCase.isSuccessfullyCompleted() == false
        
        
          false == false
        
      
      
        
          
            testCase2.isOpen()
          
          
            true
          
        
        
          
            s1b.isOpen() == false
          
          
            false == false
          
        
        
          
            ctx.completedCycle()
          
          
            true
          
        
        
          
            testCase.isComplete()
          
          
            true
          
        
        
          
            testCase.isSuccessfullyCompleted()
          
          
            true
          
        
        
      
      
    
    
      
        testCase.isOpen()
      
      
        true
      
    
    
      
        s1.isOpen()
      
      
        true
      
    
    
      
        
          s1.isComplete()
        
        
          true
        
      
      
        
          s1.isSuccessfullyCompleted() == false
        
        
          false == false
        
      
      
        
          testCase.isComplete() == false
        
        
          false == false
        
      
      
        
          ctx.completedCycle()
        
        
          true
        
      
      
        
          testCase.isSuccessfullyCompleted() == false
        
        
          false == false
        
      
      
        
          
            testCase2.isOpen()
          
          
            true
          
        
        
          
            s1b.isOpen() == false
          
          
            false == false
          
        
        
          
            s2.isOpen()
          
          
            true
          
        
        
          
            ctx.completedCycle()
          
          
            true
          
        
        
          
            testCase.isComplete()
          
          
            true
          
        
        
          
            testCase.isSuccessfullyCompleted()
          
          
            true
          
        
        
      
      
    
    
      
        testCase.isOpen()
      
      
        true
      
    
    
      
        s1.isOpen()
      
      
        true
      
    
    
      
        
          s2.isOpen() == false
        
        
          false == false
        
      
      
        
          testCase.isComplete() == false
        
        
          false == false
        
      
      
        
          
            testCase2.isOpen()
          
          
            true
          
        
        
          
            s1b.isOpen() == false
          
          
            false == false
          
        
        
          
            s2b.isOpen()
          
          
            true
          
        
        
          
            ctx.completedCycle() == false
          
          
            false == false
          
        
        
          
            
              ctx.completedCycle()
            
            
              true
            
          
          
            
              s2b.isSuccessfullyCompleted()
            
            
              true
            
          
          
            
              testCase2.isComplete() == false
            
            
              false == false
            
          
          
            
              testCase2.isSuccessfullyCompleted()
            
            
              true
            
          
          
        
        
      
      
    
    
      
        testCase.isOpen()
      
      
        true
      
    
    
      
        s1.isOpen()
      
      
        true
      
    
    
      
        
          s2.isOpen() == false
        
        
          false == false
        
      
      
        
          testCase.isComplete() == false
        
        
          false == false
        
      
      
        
          
            testCase2.isOpen()
          
          
            true
          
        
        
          
            s1b.isOpen() == false
          
          
            false == false
          
        
        
          
            s2b.isOpen()
          
          
            true
          
        
        
          
            ctx.completedCycle() == false
          
          
            false == false
          
        
        
          
            
              ctx.completedCycle()
            
            
              true
            
          
          
            
              s2b.isComplete()
            
            
              true
            
          
          
            
              s2b.isSuccessfullyCompleted() == false
            
            
              false == false
            
          
          
            
              testCase2.isSuccessfullyCompleted() == false
            
            
              false == false
            
          
          
            
              testCase3.isOpen()
            
            
              true
            
          
          
            
              s1c.isOpen() == false
            
            
              false == false
            
          
          
            
              s2c.isOpen() == false
            
            
              false == false
            
          
          
            
              testCase3.isSuccessfullyCompleted()
            
            
              true
            
          
          
        
        
      
      
    
    
      
        testCase.isOpen()
      
      
        true
      
    
    
      
        s1.isOpen()
      
      
        true
      
    
    
      
        
          s2.isOpen()
        
        
          true
        
      
      
        
          s2.isComplete()
        
        
          true
        
      
      
        
          s1.isComplete() == false
        
        
          false == false
        
      
      
        
          s1.isComplete()
        
        
          true
        
      
      
        
          testCase.isComplete() == false
        
        
          false == false
        
      
      
        
          testCase.isComplete()
        
        
          true
        
      
      
    
    
  
  
    
      
        trim(std::string(no_whitespace)) == no_whitespace
      
      
        "There is no extra whitespace here"
==
"There is no extra whitespace here"
      
    
    
      
        trim(std::string(leading_whitespace)) == no_whitespace
      
      
        "There is no extra whitespace here"
==
"There is no extra whitespace here"
      
    
    
      
        trim(std::string(trailing_whitespace)) == no_whitespace
      
      
        "There is no extra whitespace here"
==
"There is no extra whitespace here"
      
    
    
      
        trim(std::string(whitespace_at_both_ends)) == no_whitespace
      
      
        "There is no extra whitespace here"
==
"There is no extra whitespace here"
      
    
    
      
        trim(StringRef(no_whitespace)) == StringRef(no_whitespace)
      
      
        There is no extra whitespace here
==
There is no extra whitespace here
      
    
    
      
        trim(StringRef(leading_whitespace)) == StringRef(no_whitespace)
      
      
        There is no extra whitespace here
==
There is no extra whitespace here
      
    
    
      
        trim(StringRef(trailing_whitespace)) == StringRef(no_whitespace)
      
      
        There is no extra whitespace here
==
There is no extra whitespace here
      
    
    
      
        trim(StringRef(whitespace_at_both_ends)) == StringRef(no_whitespace)
      
      
        There is no extra whitespace here
==
There is no extra whitespace here
      
    
    
  
  
    
      3.14
    
    
  
  
    
    
    
  
  
    
      
        
          data, AllMatch(SizeIs(5))
        
        
          { { 0, 1, 2, 3, 5 }, { 4, -3, -2, 5, 0 }, { 0, 0, 0, 5, 0 }, { 0, -5, 0, 5, 0 }, { 1, 0, 0, -1, 5 } } all match has size == 5
        
      
      
        
          data, !AllMatch(Contains(0) && Contains(1))
        
        
          { { 0, 1, 2, 3, 5 }, { 4, -3, -2, 5, 0 }, { 0, 0, 0, 5, 0 }, { 0, -5, 0, 5, 0 }, { 1, 0, 0, -1, 5 } } not all match ( contains element 0 and contains element 1 )
        
      
      
    
    
      
        
          needs_adl, AllMatch( Predicate<int>( []( int elem ) { return elem < 6; } ) )
        
        
          { 1, 2, 3, 4, 5 } all match matches undescribed predicate
        
      
      
    
    
      
        
          
            mocked, allMatch
          
          
            { 1, 2, 3, 4, 5 } all match matches undescribed predicate
          
        
        
          
            mocked.m_derefed[0]
          
          
            true
          
        
        
          
            mocked.m_derefed[1]
          
          
            true
          
        
        
          
            mocked.m_derefed[2]
          
          
            true
          
        
        
          
            mocked.m_derefed[3]
          
          
            true
          
        
        
          
            mocked.m_derefed[4]
          
          
            true
          
        
        
      
      
    
    
      
        
          
            mocked, !allMatch
          
          
            { 1, 2, 3, 4, 5 } not all match matches undescribed predicate
          
        
        
          
            mocked.m_derefed[0]
          
          
            true
          
        
        
          
            mocked.m_derefed[1]
          
          
            true
          
        
        
          
            mocked.m_derefed[2]
          
          
            true
          
        
        
          
            !(mocked.m_derefed[3])
          
          
            !false
          
        
        
          
            !(mocked.m_derefed[4])
          
          
            !false
          
        
        
      
      
    
    
  
  
    
      
        
          
            data, AllTrue()
          
          
            { true, true, true, true, true } contains only true
          
        
        
      
      
    
    
      
        
          
            data, AllTrue()
          
          
            {  } contains only true
          
        
        
      
      
    
    
      
        
          
            data, !AllTrue()
          
          
            { true, true, false, true, true } not contains only true
          
        
        
      
      
    
    
      
        
          
            data, !AllTrue()
          
          
            { false, false, false, false, false } not contains only true
          
        
        
      
      
    
    
      
        
          
            data, AllTrue()
          
          
            { true, true, true, true, true } contains only true
          
        
        
      
      
    
    
      
        
          
            data, !AllTrue()
          
          
            { true, true, false, true, true } not contains only true
          
        
        
      
      
    
    
      
        
          
            data, !AllTrue()
          
          
            { false, false, false, false, false } not contains only true
          
        
        
      
      
    
    
      
        
          
            mocked, AllTrue()
          
          
            { true, true, true, true, true } contains only true
          
        
        
          
            mocked.m_derefed[0]
          
          
            true
          
        
        
          
            mocked.m_derefed[1]
          
          
            true
          
        
        
          
            mocked.m_derefed[2]
          
          
            true
          
        
        
          
            mocked.m_derefed[3]
          
          
            true
          
        
        
          
            mocked.m_derefed[4]
          
          
            true
          
        
        
      
      
    
    
      
        
          
            mocked, !AllTrue()
          
          
            { true, true, false, true, true } not contains only true
          
        
        
          
            mocked.m_derefed[0]
          
          
            true
          
        
        
          
            mocked.m_derefed[1]
          
          
            true
          
        
        
          
            mocked.m_derefed[2]
          
          
            true
          
        
        
          
            !(mocked.m_derefed[3])
          
          
            !false
          
        
        
          
            !(mocked.m_derefed[4])
          
          
            !false
          
        
        
      
      
    
    
  
  
    
      
        
          data, AnyMatch(SizeIs(5))
        
        
          { { 0, 1, 2, 3, 5 }, { 4, -3, -2, 5, 0 }, { 0, 0, 0, 5, 0 }, { 0, -5, 0, 5, 0 }, { 1, 0, 0, -1, 5 } } any match has size == 5
        
      
      
        
          data, !AnyMatch(Contains(0) && Contains(10))
        
        
          { { 0, 1, 2, 3, 5 }, { 4, -3, -2, 5, 0 }, { 0, 0, 0, 5, 0 }, { 0, -5, 0, 5, 0 }, { 1, 0, 0, -1, 5 } } not any match ( contains element 0 and contains element 10 )
        
      
      
    
    
      
        
          needs_adl, AnyMatch( Predicate<int>( []( int elem ) { return elem < 3; } ) )
        
        
          { 1, 2, 3, 4, 5 } any match matches undescribed predicate
        
      
      
    
    
      
        
          
            mocked, !anyMatch
          
          
            { 1, 2, 3, 4, 5 } not any match matches undescribed predicate
          
        
        
          
            mocked.m_derefed[0]
          
          
            true
          
        
        
          
            mocked.m_derefed[1]
          
          
            true
          
        
        
          
            mocked.m_derefed[2]
          
          
            true
          
        
        
          
            mocked.m_derefed[3]
          
          
            true
          
        
        
          
            mocked.m_derefed[4]
          
          
            true
          
        
        
      
      
    
    
      
        
          
            mocked, anyMatch
          
          
            { 1, 2, 3, 4, 5 } any match matches undescribed predicate
          
        
        
          
            mocked.m_derefed[0]
          
          
            true
          
        
        
          
            !(mocked.m_derefed[1])
          
          
            !false
          
        
        
          
            !(mocked.m_derefed[2])
          
          
            !false
          
        
        
          
            !(mocked.m_derefed[3])
          
          
            !false
          
        
        
          
            !(mocked.m_derefed[4])
          
          
            !false
          
        
        
      
      
    
    
  
  
    
      
        
          
            data, AnyTrue()
          
          
            { true, true, true, true, true } contains at least one true
          
        
        
      
      
    
    
      
        
          
            data, !AnyTrue()
          
          
            {  } not contains at least one true
          
        
        
      
      
    
    
      
        
          
            data, AnyTrue()
          
          
            { false, false, true, false, false } contains at least one true
          
        
        
      
      
    
    
      
        
          
            data, !AnyTrue()
          
          
            { false, false, false, false, false } not contains at least one true
          
        
        
      
      
    
    
      
        
          
            data, AnyTrue()
          
          
            { true, true, true, true, true } contains at least one true
          
        
        
      
      
    
    
      
        
          
            data, AnyTrue()
          
          
            { false, false, true, false, false } contains at least one true
          
        
        
      
      
    
    
      
        
          
            data, !AnyTrue()
          
          
            { false, false, false, false, false } not contains at least one true
          
        
        
      
      
    
    
      
        
          
            mocked, AnyTrue()
          
          
            { false, false, false, false, true } contains at least one true
          
        
        
          
            mocked.m_derefed[0]
          
          
            true
          
        
        
          
            mocked.m_derefed[1]
          
          
            true
          
        
        
          
            mocked.m_derefed[2]
          
          
            true
          
        
        
          
            mocked.m_derefed[3]
          
          
            true
          
        
        
          
            mocked.m_derefed[4]
          
          
            true
          
        
        
      
      
    
    
      
        
          
            mocked, AnyTrue()
          
          
            { false, false, true, true, true } contains at least one true
          
        
        
          
            mocked.m_derefed[0]
          
          
            true
          
        
        
          
            mocked.m_derefed[1]
          
          
            true
          
        
        
          
            mocked.m_derefed[2]
          
          
            true
          
        
        
          
            !(mocked.m_derefed[3])
          
          
            !false
          
        
        
          
            !(mocked.m_derefed[4])
          
          
            !false
          
        
        
      
      
    
    
  
  
    
      
        
          data, NoneMatch(SizeIs(6))
        
        
          { { 0, 1, 2, 3, 5 }, { 4, -3, -2, 5, 0 }, { 0, 0, 0, 5, 0 }, { 0, -5, 0, 5, 0 }, { 1, 0, 0, -1, 5 } } none match has size == 6
        
      
      
        
          data, !NoneMatch(Contains(0) && Contains(1))
        
        
          { { 0, 1, 2, 3, 5 }, { 4, -3, -2, 5, 0 }, { 0, 0, 0, 5, 0 }, { 0, -5, 0, 5, 0 }, { 1, 0, 0, -1, 5 } } not none match ( contains element 0 and contains element 1 )
        
      
      
    
    
      
        
          needs_adl, NoneMatch( Predicate<int>( []( int elem ) { return elem > 6; } ) )
        
        
          { 1, 2, 3, 4, 5 } none match matches undescribed predicate
        
      
      
    
    
      
        
          
            mocked, noneMatch
          
          
            { 1, 2, 3, 4, 5 } none match matches undescribed predicate
          
        
        
          
            mocked.m_derefed[0]
          
          
            true
          
        
        
          
            mocked.m_derefed[1]
          
          
            true
          
        
        
          
            mocked.m_derefed[2]
          
          
            true
          
        
        
          
            mocked.m_derefed[3]
          
          
            true
          
        
        
          
            mocked.m_derefed[4]
          
          
            true
          
        
        
      
      
    
    
      
        
          
            mocked, !noneMatch
          
          
            { 1, 2, 3, 4, 5 } not none match matches undescribed predicate
          
        
        
          
            mocked.m_derefed[0]
          
          
            true
          
        
        
          
            !(mocked.m_derefed[1])
          
          
            !false
          
        
        
          
            !(mocked.m_derefed[2])
          
          
            !false
          
        
        
          
            !(mocked.m_derefed[3])
          
          
            !false
          
        
        
          
            !(mocked.m_derefed[4])
          
          
            !false
          
        
        
      
      
    
    
  
  
    
      
        
          
            data, !NoneTrue()
          
          
            { true, true, true, true, true } not contains no true
          
        
        
      
      
    
    
      
        
          
            data, NoneTrue()
          
          
            {  } contains no true
          
        
        
      
      
    
    
      
        
          
            data, !NoneTrue()
          
          
            { false, false, true, false, false } not contains no true
          
        
        
      
      
    
    
      
        
          
            data, NoneTrue()
          
          
            { false, false, false, false, false } contains no true
          
        
        
      
      
    
    
      
        
          
            data, !NoneTrue()
          
          
            { true, true, true, true, true } not contains no true
          
        
        
      
      
    
    
      
        
          
            data, !NoneTrue()
          
          
            { false, false, true, false, false } not contains no true
          
        
        
      
      
    
    
      
        
          
            data, NoneTrue()
          
          
            { false, false, false, false, false } contains no true
          
        
        
      
      
    
    
      
        
          
            mocked, NoneTrue()
          
          
            { false, false, false, false, false } contains no true
          
        
        
          
            mocked.m_derefed[0]
          
          
            true
          
        
        
          
            mocked.m_derefed[1]
          
          
            true
          
        
        
          
            mocked.m_derefed[2]
          
          
            true
          
        
        
          
            mocked.m_derefed[3]
          
          
            true
          
        
        
          
            mocked.m_derefed[4]
          
          
            true
          
        
        
      
      
    
    
      
        
          
            mocked, !NoneTrue()
          
          
            { false, false, true, true, true } not contains no true
          
        
        
          
            mocked.m_derefed[0]
          
          
            true
          
        
        
          
            mocked.m_derefed[1]
          
          
            true
          
        
        
          
            mocked.m_derefed[2]
          
          
            true
          
        
        
          
            !(mocked.m_derefed[3])
          
          
            !false
          
        
        
          
            !(mocked.m_derefed[4])
          
          
            !false
          
        
        
      
      
    
    
  
  
    
      
        
          empty_vec, SizeIs(0)
        
        
          {  } has size == 0
        
      
      
        
          empty_vec, !SizeIs(2)
        
        
          {  } not has size == 2
        
      
      
        
          empty_vec, SizeIs(Lt(2))
        
        
          {  } size matches is less than 2
        
      
      
        
          arr, SizeIs(2)
        
        
          { 0, 0 } has size == 2
        
      
      
        
          arr, SizeIs( Lt(3))
        
        
          { 0, 0 } size matches is less than 3
        
      
      
        
          arr, !SizeIs(!Lt(3))
        
        
          { 0, 0 } not size matches not is less than 3
        
      
      
        
          map, SizeIs(3)
        
        
          { {?}, {?}, {?} } has size == 3
        
      
      
    
    
      
        
          unrelated::ADL_size{}, SizeIs(12)
        
        
          {?} has size == 12
        
      
      
    
    
      
        
          has_size{}, SizeIs(13)
        
        
          {?} has size == 13
        
      
      
    
    
  
  
    
      
        d == approx( 1.23 )
      
      
        1.23 == Approx( 1.23 )
      
    
    
      
        d == approx( 1.22 )
      
      
        1.23 == Approx( 1.22 )
      
    
    
      
        d == approx( 1.24 )
      
      
        1.23 == Approx( 1.24 )
      
    
    
      
        d != approx( 1.25 )
      
      
        1.23 != Approx( 1.25 )
      
    
    
      
        approx( d ) == 1.23
      
      
        Approx( 1.23 ) == 1.23
      
    
    
      
        approx( d ) == 1.22
      
      
        Approx( 1.23 ) == 1.22
      
    
    
      
        approx( d ) == 1.24
      
      
        Approx( 1.23 ) == 1.24
      
    
    
      
        approx( d ) != 1.25
      
      
        Approx( 1.23 ) != 1.25
      
    
    
  
  
    
    
  
  
    
      
        
          empty, Approx( empty )
        
        
          {  } is approx: {  }
        
      
      
    
    
      
        
          
            v1, Approx( v1 )
          
          
            { 1.0, 2.0, 3.0 } is approx: { 1.0, 2.0, 3.0 }
          
        
        
          
            v1, Approx<double>( { 1., 2., 3. } )
          
          
            { 1.0, 2.0, 3.0 } is approx: { 1.0, 2.0, 3.0 }
          
        
        
      
      
    
    
      
        
          
            v1, !Approx( temp )
          
          
            { 1.0, 2.0, 3.0 } not is approx: { 1.0, 2.0, 3.0, 4.0 }
          
        
        
      
      
    
    
      
        
          
            v1, !Approx( v2 )
          
          
            { 1.0, 2.0, 3.0 } not is approx: { 1.5, 2.5, 3.5 }
          
        
        
          
            v1, Approx( v2 ).margin( 0.5 )
          
          
            { 1.0, 2.0, 3.0 } is approx: { 1.5, 2.5, 3.5 }
          
        
        
          
            v1, Approx( v2 ).epsilon( 0.5 )
          
          
            { 1.0, 2.0, 3.0 } is approx: { 1.5, 2.5, 3.5 }
          
        
        
          
            v1, Approx( v2 ).epsilon( 0.1 ).scale( 500 )
          
          
            { 1.0, 2.0, 3.0 } is approx: { 1.5, 2.5, 3.5 }
          
        
        
      
      
    
    
  
  
    
      
        
          empty, Approx( t1 )
        
        
          {  } is approx: { 1.0, 2.0 }
        
      
      
    
    
      
        
          v1, Approx( v2 )
        
        
          { 2.0, 4.0, 6.0 } is approx: { 1.0, 3.0, 5.0 }
        
      
      
    
    
  
  
    
      
        
          v, VectorContains( 1 )
        
        
          { 1, 2, 3 } Contains: 1
        
      
      
        
          v, VectorContains( 2 )
        
        
          { 1, 2, 3 } Contains: 2
        
      
      
        
          v5, ( VectorContains<int, CustomAllocator<int>>( 2 ) )
        
        
          { 1, 2, 3 } Contains: 2
        
      
      
    
    
      
        
          v, Contains( v2 )
        
        
          { 1, 2, 3 } Contains: { 1, 2 }
        
      
      
        
          v, Contains<int>( { 1, 2 } )
        
        
          { 1, 2, 3 } Contains: { 1, 2 }
        
      
      
        
          v5, ( Contains<int, std::allocator<int>, CustomAllocator<int>>( v2 ) )
        
        
          { 1, 2, 3 } Contains: { 1, 2 }
        
      
      
        
          v, Contains( v2 )
        
        
          { 1, 2, 3 } Contains: { 1, 2, 3 }
        
      
      
        
          v, Contains( empty )
        
        
          { 1, 2, 3 } Contains: {  }
        
      
      
        
          empty, Contains( empty )
        
        
          {  } Contains: {  }
        
      
      
        
          v5, ( Contains<int, std::allocator<int>, CustomAllocator<int>>( v2 ) )
        
        
          { 1, 2, 3 } Contains: { 1, 2, 3 }
        
      
      
        
          v5, Contains( v6 )
        
        
          { 1, 2, 3 } Contains: { 1, 2 }
        
      
      
    
    
      
        
          v, VectorContains( 1 ) && VectorContains( 2 )
        
        
          { 1, 2, 3 } ( Contains: 1 and Contains: 2 )
        
      
      
    
    
      
        
          v, Equals( v )
        
        
          { 1, 2, 3 } Equals: { 1, 2, 3 }
        
      
      
        
          empty, Equals( empty )
        
        
          {  } Equals: {  }
        
      
      
        
          v, Equals<int>( { 1, 2, 3 } )
        
        
          { 1, 2, 3 } Equals: { 1, 2, 3 }
        
      
      
        
          v, Equals( v2 )
        
        
          { 1, 2, 3 } Equals: { 1, 2, 3 }
        
      
      
        
          v5, ( Equals<int, std::allocator<int>, CustomAllocator<int>>( v2 ) )
        
        
          { 1, 2, 3 } Equals: { 1, 2, 3 }
        
      
      
        
          v5, Equals( v6 )
        
        
          { 1, 2, 3 } Equals: { 1, 2, 3 }
        
      
      
    
    
      
        
          v, UnorderedEquals( v )
        
        
          { 1, 2, 3 } UnorderedEquals: { 1, 2, 3 }
        
      
      
        
          v, UnorderedEquals<int>( { 3, 2, 1 } )
        
        
          { 1, 2, 3 } UnorderedEquals: { 3, 2, 1 }
        
      
      
        
          empty, UnorderedEquals( empty )
        
        
          {  } UnorderedEquals: {  }
        
      
      
        
          permuted, UnorderedEquals( v )
        
        
          { 1, 3, 2 } UnorderedEquals: { 1, 2, 3 }
        
      
      
        
          permuted, UnorderedEquals( v )
        
        
          { 2, 3, 1 } UnorderedEquals: { 1, 2, 3 }
        
      
      
        
          v5, ( UnorderedEquals<int, std::allocator<int>, CustomAllocator<int>>( permuted ) )
        
        
          { 1, 2, 3 } UnorderedEquals: { 2, 3, 1 }
        
      
      
        
          v5_permuted, UnorderedEquals( v5 )
        
        
          { 1, 3, 2 } UnorderedEquals: { 1, 2, 3 }
        
      
      
    
    
  
  
    
      
        
          v, VectorContains( -1 )
        
        
          { 1, 2, 3 } Contains: -1
        
      
      
        
          empty, VectorContains( 1 )
        
        
          {  } Contains: 1
        
      
      
    
    
      
        
          empty, Contains( v )
        
        
          {  } Contains: { 1, 2, 3 }
        
      
      
        
          v, Contains( v2 )
        
        
          { 1, 2, 3 } Contains: { 1, 2, 4 }
        
      
      
    
    
      
        
          v, Equals( v2 )
        
        
          { 1, 2, 3 } Equals: { 1, 2 }
        
      
      
        
          v2, Equals( v )
        
        
          { 1, 2 } Equals: { 1, 2, 3 }
        
      
      
        
          empty, Equals( v )
        
        
          {  } Equals: { 1, 2, 3 }
        
      
      
        
          v, Equals( empty )
        
        
          { 1, 2, 3 } Equals: {  }
        
      
      
    
    
      
        
          v, UnorderedEquals( empty )
        
        
          { 1, 2, 3 } UnorderedEquals: {  }
        
      
      
        
          empty, UnorderedEquals( v )
        
        
          {  } UnorderedEquals: { 1, 2, 3 }
        
      
      
        
          permuted, UnorderedEquals( v )
        
        
          { 1, 3 } UnorderedEquals: { 1, 2, 3 }
        
      
      
        
          permuted, UnorderedEquals( v )
        
        
          { 3, 1 } UnorderedEquals: { 1, 2, 3 }
        
      
      
    
    
  
  
    
      
        thisThrows(), std::domain_error
      
      
        thisThrows(), std::domain_error
      
    
    
      
        thisDoesntThrow()
      
      
        thisDoesntThrow()
      
    
    
      
        thisThrows()
      
      
        thisThrows()
      
    
    
  
  
    
      unexpected exception
    
    
  
  
    
      
        thisThrows() == 0
      
      
        thisThrows() == 0
      
      
        expected exception
      
    
    
  
  
    
      
        thisThrows() == 0
      
      
        thisThrows() == 0
      
      
        expected exception
      
    
    
  
  
    
      
        thisThrows() == 0
      
      
        thisThrows() == 0
      
      
        expected exception
      
    
    
  
  
    
    
  
  
    
  
  
    
  
  
    
  
  
    
  
  
    
  
  
    
      
        
          encode( "normal string" ) == "normal string"
        
        
          "normal string" == "normal string"
        
      
      
    
    
      
        
          encode( "" ) == ""
        
        
          "" == ""
        
      
      
    
    
      
        
          encode( "smith & jones" ) == "smith & jones"
        
        
          "smith & jones" == "smith & jones"
        
      
      
    
    
      
        
          encode( "smith < jones" ) == "smith < jones"
        
        
          "smith < jones" == "smith < jones"
        
      
      
    
    
      
        
          encode( "smith > jones" ) == "smith > jones"
        
        
          "smith > jones" == "smith > jones"
        
      
      
        
          encode( "smith ]]> jones" ) == "smith ]]> jones"
        
        
          "smith ]]> jones"
==
"smith ]]> jones"
        
      
      
    
    
      
        
          encode( stringWithQuotes ) == stringWithQuotes
        
        
          "don't "quote" me on that"
==
"don't "quote" me on that"
        
      
      
        
          encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't "quote" me on that"
        
        
          "don't "quote" me on that"
==
"don't "quote" me on that"
        
      
      
    
    
      
        
          encode( "[\x01]" ) == "[\\x01]"
        
        
          "[\x01]" == "[\x01]"
        
      
      
    
    
      
        
          encode( "[\x7F]" ) == "[\\x7F]"
        
        
          "[\x7F]" == "[\x7F]"
        
      
      
    
    
  
  
    
      
        stream.str(), ContainsSubstring(R"(attr1="true")") && ContainsSubstring(R"(attr2="false")")
      
      
        "<?xml version="1.0" encoding="UTF-8"?>
<Element1 attr1="true" attr2="false"/>
" ( contains: "attr1="true"" and contains: "attr2="false"" )
      
    
    
  
  
    
      
        analysis.mean.point.count() == 23
      
      
        23.0 == 23
      
    
    
      
        analysis.mean.lower_bound.count() == 23
      
      
        23.0 == 23
      
    
    
      
        analysis.mean.upper_bound.count() == 23
      
      
        23.0 == 23
      
    
    
      
        analysis.standard_deviation.point.count() == 0
      
      
        0.0 == 0
      
    
    
      
        analysis.standard_deviation.lower_bound.count() == 0
      
      
        0.0 == 0
      
    
    
      
        analysis.standard_deviation.upper_bound.count() == 0
      
      
        0.0 == 0
      
    
    
      
        analysis.outliers.total() == 0
      
      
        0 == 0
      
    
    
      
        analysis.outliers.low_mild == 0
      
      
        0 == 0
      
    
    
      
        analysis.outliers.low_severe == 0
      
      
        0 == 0
      
    
    
      
        analysis.outliers.high_mild == 0
      
      
        0 == 0
      
    
    
      
        analysis.outliers.high_severe == 0
      
      
        0 == 0
      
    
    
      
        analysis.outliers.samples_seen == 0
      
      
        0 == 0
      
    
    
      
        analysis.outlier_variance == 0
      
      
        0.0 == 0
      
    
    
  
  
    
      
        Catch::Detail::stringify( empty ) == "{  }"
      
      
        "{  }" == "{  }"
      
    
    
      
        Catch::Detail::stringify( oneValue ) == "{ 42 }"
      
      
        "{ 42 }" == "{ 42 }"
      
    
    
      
        Catch::Detail::stringify( twoValues ) == "{ 42, 250 }"
      
      
        "{ 42, 250 }" == "{ 42, 250 }"
      
    
    
  
  
    
      
        
          model.started == 1
        
        
          1 == 1
        
      
      
        
          model.finished == 0
        
        
          0 == 0
        
      
      
        
          model.started == 1
        
        
          1 == 1
        
      
      
        
          model.finished == 1
        
        
          1 == 1
        
      
      
        
          called == 1
        
        
          1 == 1
        
      
      
    
    
      
        
          model.started == 0
        
        
          0 == 0
        
      
      
        
          model.finished == 0
        
        
          0 == 0
        
      
      
        
          model.started == 0
        
        
          0 == 0
        
      
      
        
          model.finished == 0
        
        
          0 == 0
        
      
      
        
          called == 1
        
        
          1 == 1
        
      
      
    
    
  
  
    
      
        obj.prop != 0
      
      
        0x != 0
      
    
    
  
  
    
      
        flag
      
      
        true
      
    
    
      
        testCheckedElse( true )
      
      
        true
      
    
    
  
  
    
      
        flag
      
      
        false
      
    
    
      
        testCheckedElse( false )
      
      
        false
      
    
    
  
  
    
      
        flag
      
      
        true
      
    
    
      
        testCheckedIf( true )
      
      
        true
      
    
    
  
  
    
      
        flag
      
      
        false
      
    
    
      
        testCheckedIf( false )
      
      
        false
      
    
    
  
  
    
      
        
          o.samples_seen == static_cast<int>(x.size())
        
        
          6 == 6
        
      
      
        
          o.low_severe == los
        
        
          0 == 0
        
      
      
        
          o.low_mild == lom
        
        
          0 == 0
        
      
      
        
          o.high_mild == him
        
        
          0 == 0
        
      
      
        
          o.high_severe == his
        
        
          0 == 0
        
      
      
        
          o.total() == los + lom + him + his
        
        
          0 == 0
        
      
      
    
    
      
        
          o.samples_seen == static_cast<int>(x.size())
        
        
          6 == 6
        
      
      
        
          o.low_severe == los
        
        
          1 == 1
        
      
      
        
          o.low_mild == lom
        
        
          0 == 0
        
      
      
        
          o.high_mild == him
        
        
          0 == 0
        
      
      
        
          o.high_severe == his
        
        
          0 == 0
        
      
      
        
          o.total() == los + lom + him + his
        
        
          1 == 1
        
      
      
    
    
      
        
          o.samples_seen == static_cast<int>(x.size())
        
        
          6 == 6
        
      
      
        
          o.low_severe == los
        
        
          0 == 0
        
      
      
        
          o.low_mild == lom
        
        
          1 == 1
        
      
      
        
          o.high_mild == him
        
        
          0 == 0
        
      
      
        
          o.high_severe == his
        
        
          0 == 0
        
      
      
        
          o.total() == los + lom + him + his
        
        
          1 == 1
        
      
      
    
    
      
        
          o.samples_seen == static_cast<int>(x.size())
        
        
          6 == 6
        
      
      
        
          o.low_severe == los
        
        
          0 == 0
        
      
      
        
          o.low_mild == lom
        
        
          0 == 0
        
      
      
        
          o.high_mild == him
        
        
          1 == 1
        
      
      
        
          o.high_severe == his
        
        
          0 == 0
        
      
      
        
          o.total() == los + lom + him + his
        
        
          1 == 1
        
      
      
    
    
      
        
          o.samples_seen == static_cast<int>(x.size())
        
        
          6 == 6
        
      
      
        
          o.low_severe == los
        
        
          0 == 0
        
      
      
        
          o.low_mild == lom
        
        
          0 == 0
        
      
      
        
          o.high_mild == him
        
        
          0 == 0
        
      
      
        
          o.high_severe == his
        
        
          1 == 1
        
      
      
        
          o.total() == los + lom + him + his
        
        
          1 == 1
        
      
      
    
    
      
        
          o.samples_seen == static_cast<int>(x.size())
        
        
          6 == 6
        
      
      
        
          o.low_severe == los
        
        
          1 == 1
        
      
      
        
          o.low_mild == lom
        
        
          0 == 0
        
      
      
        
          o.high_mild == him
        
        
          1 == 1
        
      
      
        
          o.high_severe == his
        
        
          0 == 0
        
      
      
        
          o.total() == los + lom + him + his
        
        
          2 == 2
        
      
      
    
    
  
  
    
      
        unsigned_char_var == 1
      
      
        1 == 1
      
    
    
      
        unsigned_short_var == 1
      
      
        1 == 1
      
    
    
      
        unsigned_int_var == 1
      
      
        1 == 1
      
    
    
      
        unsigned_long_var == 1
      
      
        1 == 1
      
    
    
  
  
    
      
        long_var == unsigned_char_var
      
      
        1 == 1
      
    
    
      
        long_var == unsigned_short_var
      
      
        1 == 1
      
    
    
      
        long_var == unsigned_int_var
      
      
        1 == 1
      
    
    
      
        long_var == unsigned_long_var
      
      
        1 == 1
      
    
    
  
  
    
      
        convertToBits( 0.f ) == 0
      
      
        0 == 0
      
    
    
      
        convertToBits( -0.f ) == ( 1ULL << 31 )
      
      
        2147483648 (0x)
==
2147483648 (0x)
      
    
    
      
        convertToBits( 0. ) == 0
      
      
        0 == 0
      
    
    
      
        convertToBits( -0. ) == ( 1ULL << 63 )
      
      
        9223372036854775808 (0x)
==
9223372036854775808 (0x)
      
    
    
      
        convertToBits( std::numeric_limits<float>::denorm_min() ) == 1
      
      
        1 == 1
      
    
    
      
        convertToBits( std::numeric_limits<double>::denorm_min() ) == 1
      
      
        1 == 1
      
    
    
  
  
    
      
        Catch::TestCaseInfo("", { "test with an empty tag", "[]" }, dummySourceLineInfo)
      
      
        Catch::TestCaseInfo("", { "test with an empty tag", "[]" }, dummySourceLineInfo)
      
    
    
  
  
    
      
        erfc_inv(1.103560) == Approx(-0.09203687623843015)
      
      
        -0.0920368762 == Approx( -0.0920368762 )
      
    
    
      
        erfc_inv(1.067400) == Approx(-0.05980291115763361)
      
      
        -0.0598029112 == Approx( -0.0598029112 )
      
    
    
      
        erfc_inv(0.050000) == Approx(1.38590382434967796)
      
      
        1.3859038243 == Approx( 1.3859038243 )
      
    
    
  
  
    
      
        res.mean.count() == rate
      
      
        2000.0 == 2000 (0x)
      
    
    
      
        res.outliers.total() == 0
      
      
        0 == 0
      
    
    
  
  
    
    
    
    
  
  
    
  
  
    
  
  
    
  
  
    
      Previous info should not be seen
    
    
  
  
    
      previous unscoped info SHOULD not be seen
    
    
  
  
    
  
  
    
  
  
    
      
        l == std::numeric_limits<long long>::max()
      
      
        9223372036854775807 (0x)
==
9223372036854775807 (0x)
      
    
    
  
  
    
    
    
    
    
    
    
    
    
    
    
  
  
    
      Testing if fib[0] (1) is even
    
    
      
        ( fib[i] % 2 ) == 0
      
      
        1 == 0
      
    
    
      Testing if fib[1] (1) is even
    
    
      
        ( fib[i] % 2 ) == 0
      
      
        1 == 0
      
    
    
      Testing if fib[2] (2) is even
    
    
      
        ( fib[i] % 2 ) == 0
      
      
        0 == 0
      
    
    
      Testing if fib[3] (3) is even
    
    
      
        ( fib[i] % 2 ) == 0
      
      
        1 == 0
      
    
    
      Testing if fib[4] (5) is even
    
    
      
        ( fib[i] % 2 ) == 0
      
      
        1 == 0
      
    
    
      Testing if fib[5] (8) is even
    
    
      
        ( fib[i] % 2 ) == 0
      
      
        0 == 0
      
    
    
      Testing if fib[6] (13) is even
    
    
      
        ( fib[i] % 2 ) == 0
      
      
        1 == 0
      
    
    
      Testing if fib[7] (21) is even
    
    
      
        ( fib[i] % 2 ) == 0
      
      
        1 == 0
      
    
    
  
  
    
      
        Catch::makeStream( "%debug" )
      
      
        Catch::makeStream( "%debug" )
      
    
    
  
  
    
    
    
      
        
          *ptr == std::tuple<int, double, int>{1, 2., 3}
        
        
          {?} == {?}
        
      
      
    
    
  
  
    
      
        m == 19.
      
      
        19.0 == 19.0
      
    
    
  
  
    
      
        x == 17
      
      
        17 == 17
      
    
    
      
        x == 23
      
      
        23 == 23
      
    
    
      
        r.elapsed.count() == 42
      
      
        42 == 42
      
    
    
      
        r.result == 23
      
      
        23 == 23
      
    
    
      
        r.iterations == 1
      
      
        1 == 1
      
    
    
      
        s.elapsed.count() == 69
      
      
        69 == 69
      
    
    
      
        s.result == 17
      
      
        17 == 17
      
    
    
      
        s.iterations == 1
      
      
        1 == 1
      
    
    
  
  
    
      info
    
    
      unscoped info
    
    
      and warn may mix
    
    
      info
    
    
      unscoped info
    
    
      they are not cleared after warnings
    
    
  
  
    
    
    
    
  
  
    
      
        
          a != b
        
        
          1 != 2
        
      
      
        
          b != a
        
        
          2 != 1
        
      
      
      
    
    
  
  
    
      
        s == "7"
      
      
        "7" == "7"
      
    
    
  
  
    
      
        ti == typeid(int)
      
      
        {?} == {?}
      
    
    
  
  
    
      
        normal_cdf(0.000000) == Approx(0.50000000000000000)
      
      
        0.5 == Approx( 0.5 )
      
    
    
      
        normal_cdf(1.000000) == Approx(0.84134474606854293)
      
      
        0.8413447461 == Approx( 0.8413447461 )
      
    
    
      
        normal_cdf(-1.000000) == Approx(0.15865525393145705)
      
      
        0.1586552539 == Approx( 0.1586552539 )
      
    
    
      
        normal_cdf(2.809729) == Approx(0.99752083845315409)
      
      
        0.9975208385 == Approx( 0.9975208385 )
      
    
    
      
        normal_cdf(-1.352570) == Approx(0.08809652095066035)
      
      
        0.088096521 == Approx( 0.088096521 )
      
    
    
  
  
    
      
        normal_quantile(0.551780) == Approx(0.13015979861484198)
      
      
        0.1301597986 == Approx( 0.1301597986 )
      
    
    
      
        normal_quantile(0.533700) == Approx(0.08457408802851875)
      
      
        0.084574088 == Approx( 0.084574088 )
      
    
    
      
        normal_quantile(0.025000) == Approx(-1.95996398454005449)
      
      
        -1.9599639845 == Approx( -1.9599639845 )
      
    
    
  
  
    
  
  
    
      this MAY be seen only for the FIRST assertion IF info is printed for passing assertions
    
    
      
        true
      
      
        true
      
    
    
      this MAY be seen only for the SECOND assertion IF info is printed for passing assertions
    
    
      
        true
      
      
        true
      
    
    
      this SHOULD be seen
    
    
      
        false
      
      
        false
      
    
    
  
  
    
      
        makeString( false ) != static_cast<char*>(0)
      
      
        "valid string" != {null string}
      
    
    
      
        makeString( true ) == static_cast<char*>(0)
      
      
        {null string} == {null string}
      
    
    
  
  
    
      
        ptr.get() == 0
      
      
        0 == 0
      
    
    
  
  
    
      
        ::Catch::Detail::stringify( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }"
      
      
        "{ { 42, "Arthur" }, { "Ford", 24 } }"
==
"{ { 42, "Arthur" }, { "Ford", 24 } }"
      
    
    
  
  
    
      
        
          parseEnums( "" ), Equals( std::vector<Catch::StringRef>{} )
        
        
          {  } Equals: {  }
        
      
      
    
    
      
        
          parseEnums( "ClassName::EnumName::Value1" ), Equals(std::vector<Catch::StringRef>{"Value1"} )
        
        
          { Value1 } Equals: { Value1 }
        
      
      
        
          parseEnums( "Value1" ), Equals( std::vector<Catch::StringRef>{"Value1"} )
        
        
          { Value1 } Equals: { Value1 }
        
      
      
        
          parseEnums( "EnumName::Value1" ), Equals(std::vector<Catch::StringRef>{"Value1"} )
        
        
          { Value1 } Equals: { Value1 }
        
      
      
    
    
      
        
          parseEnums( "ClassName::EnumName::Value1, ClassName::EnumName::Value2" ), Equals( std::vector<Catch::StringRef>{"Value1", "Value2"} )
        
        
          { Value1, Value2 } Equals: { Value1, Value2 }
        
      
      
        
          parseEnums( "ClassName::EnumName::Value1, ClassName::EnumName::Value2, ClassName::EnumName::Value3" ), Equals( std::vector<Catch::StringRef>{"Value1", "Value2", "Value3"} )
        
        
          { Value1, Value2, Value3 } Equals: { Value1, Value2, Value3 }
        
      
      
        
          parseEnums( "ClassName::EnumName::Value1,ClassName::EnumName::Value2 , ClassName::EnumName::Value3" ), Equals( std::vector<Catch::StringRef>{"Value1", "Value2", "Value3"} )
        
        
          { Value1, Value2, Value3 } Equals: { Value1, Value2, Value3 }
        
      
      
    
    
  
  
    
      
        p == 0
      
      
        0 == 0
      
    
    
  
  
    
      this MAY be seen IF info is printed for passing assertions
    
    
      
        true
      
      
        true
      
    
    
  
  
    
      this SHOULD be seen
    
    
      this SHOULD also be seen
    
    
      
        false
      
      
        false
      
    
    
  
  
    
      this SHOULD be seen only ONCE
    
    
      
        false
      
      
        false
      
    
    
      
        true
      
      
        true
      
    
    
      this MAY also be seen only ONCE IF info is printed for passing assertions
    
    
      
        true
      
      
        true
      
    
    
      
        true
      
      
        true
      
    
    
  
  
    
      
        
          a != b
        
        
          1 != 2
        
      
      
        
          b != a
        
        
          2 != 1
        
      
      
    
    
    
  
  
    
      
        
          Catch::replaceInPlace(letters, "b", "z")
        
        
          true
        
      
      
        
          letters == "azcdefcg"
        
        
          "azcdefcg" == "azcdefcg"
        
      
      
    
    
      
        
          Catch::replaceInPlace(letters, "c", "z")
        
        
          true
        
      
      
        
          letters == "abzdefzg"
        
        
          "abzdefzg" == "abzdefzg"
        
      
      
    
    
      
        
          Catch::replaceInPlace(letters, "a", "z")
        
        
          true
        
      
      
        
          letters == "zbcdefcg"
        
        
          "zbcdefcg" == "zbcdefcg"
        
      
      
    
    
      
        
          Catch::replaceInPlace(letters, "g", "z")
        
        
          true
        
      
      
        
          letters == "abcdefcz"
        
        
          "abcdefcz" == "abcdefcz"
        
      
      
    
    
      
        
          Catch::replaceInPlace(letters, letters, "replaced")
        
        
          true
        
      
      
        
          letters == "replaced"
        
        
          "replaced" == "replaced"
        
      
      
    
    
      
        
          !(Catch::replaceInPlace(letters, "x", "z"))
        
        
          !false
        
      
      
        
          letters == letters
        
        
          "abcdefcg" == "abcdefcg"
        
      
      
    
    
      
        
          Catch::replaceInPlace(s, "'", "|'")
        
        
          true
        
      
      
        
          s == "didn|'t"
        
        
          "didn|'t" == "didn|'t"
        
      
      
    
    
  
  
    
      
        Catch::makeStream( "%somestream" )
      
      
        Catch::makeStream( "%somestream" )
      
    
    
  
  
    
      
        res.size() == count
      
      
        10 == 10
      
    
    
      
        res[i] == rate
      
      
        1000.0 == 1000 (0x)
      
    
    
      
        res[i] == rate
      
      
        1000.0 == 1000 (0x)
      
    
    
      
        res[i] == rate
      
      
        1000.0 == 1000 (0x)
      
    
    
      
        res[i] == rate
      
      
        1000.0 == 1000 (0x)
      
    
    
      
        res[i] == rate
      
      
        1000.0 == 1000 (0x)
      
    
    
      
        res[i] == rate
      
      
        1000.0 == 1000 (0x)
      
    
    
      
        res[i] == rate
      
      
        1000.0 == 1000 (0x)
      
    
    
      
        res[i] == rate
      
      
        1000.0 == 1000 (0x)
      
    
    
      
        res[i] == rate
      
      
        1000.0 == 1000 (0x)
      
    
    
  
  
    
      
        meter.runs() >= old_runs
      
      
        1 >= 1
      
    
    
      
        meter.runs() >= old_runs
      
      
        2 >= 1
      
    
    
      
        meter.runs() >= old_runs
      
      
        4 >= 2
      
    
    
      
        meter.runs() >= old_runs
      
      
        8 >= 4
      
    
    
      
        meter.runs() >= old_runs
      
      
        16 >= 8
      
    
    
      
        meter.runs() >= old_runs
      
      
        32 >= 16
      
    
    
      
        meter.runs() >= old_runs
      
      
        64 >= 32
      
    
    
      
        meter.runs() >= old_runs
      
      
        128 >= 64
      
    
    
      
        Timing.elapsed >= time
      
      
        128 ns >= 100 ns
      
    
    
      
        Timing.result == Timing.iterations + 17
      
      
        145 == 145
      
    
    
      
        Timing.iterations >= time.count()
      
      
        128 >= 100
      
    
    
  
  
    
      
        x >= old_x
      
      
        1 >= 1
      
    
    
      
        x >= old_x
      
      
        2 >= 1
      
    
    
      
        x >= old_x
      
      
        4 >= 2
      
    
    
      
        x >= old_x
      
      
        8 >= 4
      
    
    
      
        x >= old_x
      
      
        16 >= 8
      
    
    
      
        x >= old_x
      
      
        32 >= 16
      
    
    
      
        x >= old_x
      
      
        64 >= 32
      
    
    
      
        x >= old_x
      
      
        128 >= 64
      
    
    
      
        Timing.elapsed >= time
      
      
        128 ns >= 100 ns
      
    
    
      
        Timing.result == Timing.iterations + 17
      
      
        145 == 145
      
    
    
      
        Timing.iterations >= time.count()
      
      
        128 >= 100
      
    
    
  
  
    
  
  
    
      3
    
    
      
        false
      
      
        false
      
    
    
  
  
    
      hi
    
    
      i := 7
    
    
      
        false
      
      
        false
      
    
    
  
  
    
      
        testcase.tags, VectorContains( Tag( "magic-tag" ) ) && VectorContains( Tag( "."_catch_sr ) )
      
      
        { {?}, {?} } ( Contains: {?} and Contains: {?} )
      
    
    
  
  
    
      
        splitStringRef("", ','), Equals(std::vector<StringRef>())
      
      
        {  } Equals: {  }
      
    
    
      
        splitStringRef("abc", ','), Equals(std::vector<StringRef>{"abc"})
      
      
        { abc } Equals: { abc }
      
    
    
      
        splitStringRef("abc,def", ','), Equals(std::vector<StringRef>{"abc", "def"})
      
      
        { abc, def } Equals: { abc, def }
      
    
    
  
  
    
      Count 1 to 3...
    
    
      1
    
    
      2
    
    
      3
    
    
      
        false
      
      
        false
      
    
    
      Count 4 to 6...
    
    
      4
    
    
      5
    
    
      6
    
    
      
        false
      
      
        false
      
    
    
  
  
    
      
        !(startsWith("", 'c'))
      
      
        !false
      
    
    
      
        startsWith(std::string("abc"), 'a')
      
      
        true
      
    
    
      
        startsWith("def"_catch_sr, 'd')
      
      
        true
      
    
    
  
  
    
      
        
          Catch::Detail::stringify( emptyMap ) == "{  }"
        
        
          "{  }" == "{  }"
        
      
      
    
    
      
        
          Catch::Detail::stringify( map ) == "{ { \"one\", 1 } }"
        
        
          "{ { "one", 1 } }" == "{ { "one", 1 } }"
        
      
      
    
    
      
        
          Catch::Detail::stringify( map ) == "{ { \"abc\", 1 }, { \"def\", 2 }, { \"ghi\", 3 } }"
        
        
          "{ { "abc", 1 }, { "def", 2 }, { "ghi", 3 } }"
==
"{ { "abc", 1 }, { "def", 2 }, { "ghi", 3 } }"
        
      
      
    
    
  
  
    
      
        ::Catch::Detail::stringify(value) == "{ 34, \"xyzzy\" }"
      
      
        "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify( value ) == "{ 34, \"xyzzy\" }"
      
      
        "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
      
    
    
  
  
    
      
        
          Catch::Detail::stringify( emptySet ) == "{  }"
        
        
          "{  }" == "{  }"
        
      
      
    
    
      
        
          Catch::Detail::stringify( set ) == "{ \"one\" }"
        
        
          "{ "one" }" == "{ "one" }"
        
      
      
    
    
      
        
          Catch::Detail::stringify( set ) == "{ \"abc\", \"def\", \"ghi\" }"
        
        
          "{ "abc", "def", "ghi" }"
==
"{ "abc", "def", "ghi" }"
        
      
      
    
    
  
  
    
      
        ::Catch::Detail::stringify( pr ) == "{ { \"green\", 55 } }"
      
      
        "{ { "green", 55 } }"
==
"{ { "green", 55 } }"
      
    
    
  
  
    
      
        Catch::makeStream( "%stderr" )->isConsole()
      
      
        true
      
    
    
      
        Catch::makeStream( "%stdout" )->isConsole()
      
      
        true
      
    
    
  
  
    
      
        ::Catch::Detail::stringify(streamable_range{}) == "op<<(streamable_range)"
      
      
        "op<<(streamable_range)"
==
"op<<(streamable_range)"
      
    
    
      
        ::Catch::Detail::stringify(stringmaker_range{}) == "stringmaker(streamable_range)"
      
      
        "stringmaker(streamable_range)"
==
"stringmaker(streamable_range)"
      
    
    
      
        ::Catch::Detail::stringify(just_range{}) == "{ 1, 2, 3, 4 }"
      
      
        "{ 1, 2, 3, 4 }" == "{ 1, 2, 3, 4 }"
      
    
    
      
        ::Catch::Detail::stringify(disabled_range{}) == "{?}"
      
      
        "{?}" == "{?}"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify( item ) == "StringMaker<has_maker>"
      
      
        "StringMaker<has_maker>"
==
"StringMaker<has_maker>"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify( item ) == "StringMaker<has_maker_and_operator>"
      
      
        "StringMaker<has_maker_and_operator>"
==
"StringMaker<has_maker_and_operator>"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify(item) == "{?}"
      
      
        "{?}" == "{?}"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify( item ) == "operator<<( has_operator )"
      
      
        "operator<<( has_operator )"
==
"operator<<( has_operator )"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify( item ) == "operator<<( has_template_operator )"
      
      
        "operator<<( has_template_operator )"
==
"operator<<( has_template_operator )"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify( v ) == "{ StringMaker<has_maker> }"
      
      
        "{ StringMaker<has_maker> }"
==
"{ StringMaker<has_maker> }"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify( v ) == "{ StringMaker<has_maker_and_operator> }"
      
      
        "{ StringMaker<has_maker_and_operator> }"
==
"{ StringMaker<has_maker_and_operator> }"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify( v ) == "{ operator<<( has_operator ) }"
      
      
        "{ operator<<( has_operator ) }"
==
"{ operator<<( has_operator ) }"
      
    
    
  
  
    
      
        data.str.size() == data.len
      
      
        3 == 3
      
    
    
      
        data.str.size() == data.len
      
      
        3 == 3
      
    
    
      
        data.str.size() == data.len
      
      
        5 == 5
      
    
    
      
        data.str.size() == data.len
      
      
        4 == 4
      
    
    
  
  
    
      
        strlen(std::get<0>(data)) == static_cast<size_t>(std::get<1>(data))
      
      
        5 == 5
      
    
    
      
        strlen(std::get<0>(data)) == static_cast<size_t>(std::get<1>(data))
      
      
        6 == 6
      
    
    
      
        strlen(std::get<0>(data)) == static_cast<size_t>(std::get<1>(data))
      
      
        5 == 5
      
    
    
      
        strlen(std::get<0>(data)) == static_cast<size_t>(std::get<1>(data))
      
      
        6 == 6
      
    
    
  
  
    
      
        testcase.tags.size() == 1
      
      
        1 == 1
      
    
    
      
        testcase.tags[0].original == "magic.tag"_catch_sr
      
      
        magic.tag == magic.tag
      
    
    
  
  
    
      Why would you throw a std::string?
    
    
  
  
    
      
        result == "\"wide load\""
      
      
        ""wide load"" == ""wide load""
      
    
    
  
  
    
      
        result == "\"wide load\""
      
      
        ""wide load"" == ""wide load""
      
    
    
  
  
    
      
        result == "\"wide load\""
      
      
        ""wide load"" == ""wide load""
      
    
    
  
  
    
      
        result == "\"wide load\""
      
      
        ""wide load"" == ""wide load""
      
    
    
  
  
    
      
        ::Catch::Detail::stringify(e0) == "E2/V0"
      
      
        "E2/V0" == "E2/V0"
      
    
    
      
        ::Catch::Detail::stringify(e1) == "E2/V1"
      
      
        "E2/V1" == "E2/V1"
      
    
    
      
        ::Catch::Detail::stringify(e3) == "Unknown enum value 10"
      
      
        "Unknown enum value 10"
==
"Unknown enum value 10"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify(e0) == "0"
      
      
        "0" == "0"
      
    
    
      
        ::Catch::Detail::stringify(e1) == "1"
      
      
        "1" == "1"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify(e0) == "E2{0}"
      
      
        "E2{0}" == "E2{0}"
      
    
    
      
        ::Catch::Detail::stringify(e1) == "E2{1}"
      
      
        "E2{1}" == "E2{1}"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify(e0) == "0"
      
      
        "0" == "0"
      
    
    
      
        ::Catch::Detail::stringify(e1) == "1"
      
      
        "1" == "1"
      
    
    
  
  
    
      
        "{ }" == ::Catch::Detail::stringify(type{})
      
      
        "{ }" == "{ }"
      
    
    
      
        "{ }" == ::Catch::Detail::stringify(value)
      
      
        "{ }" == "{ }"
      
    
    
  
  
    
      
        "1.2f" == ::Catch::Detail::stringify(float(1.2))
      
      
        "1.2f" == "1.2f"
      
    
    
      
        "{ 1.2f, 0 }" == ::Catch::Detail::stringify(type{1.2f,0})
      
      
        "{ 1.2f, 0 }" == "{ 1.2f, 0 }"
      
    
    
  
  
    
      
        "{ 0 }" == ::Catch::Detail::stringify(type{0})
      
      
        "{ 0 }" == "{ 0 }"
      
    
    
  
  
    
      
        "{ \"hello\", \"world\" }" == ::Catch::Detail::stringify(type{"hello","world"})
      
      
        "{ "hello", "world" }"
==
"{ "hello", "world" }"
      
    
    
  
  
    
      
        "{ { 42 }, { }, 1.2f }" == ::Catch::Detail::stringify(value)
      
      
        "{ { 42 }, { }, 1.2f }"
==
"{ { 42 }, { }, 1.2f }"
      
    
    
  
  
    
      
        e.point == 23
      
      
        23.0 == 23
      
    
    
      
        e.upper_bound == 23
      
      
        23.0 == 23
      
    
    
      
        e.lower_bound == 23
      
      
        23.0 == 23
      
    
    
      
        e.confidence_interval == 0.95
      
      
        0.95 == 0.95
      
    
    
  
  
    
      
        
          !(ptr)
        
        
          !{?}
        
      
      
        
          ptr.get() == 0
        
        
          0 == 0
        
      
      
    
    
      
        
          ptr
        
        
          {?}
        
      
      
        
          *ptr == 0
        
        
          0 == 0
        
      
      
        
          ptr.get() == naked_ptr
        
        
          0x == 0x
        
      
      
        
          
            !(ptr)
          
          
            !{?}
          
        
        
          
            ptr.get() == 0
          
          
            0 == 0
          
        
        
      
      
    
    
      
        
          ptr
        
        
          {?}
        
      
      
        
          *ptr == 0
        
        
          0 == 0
        
      
      
        
          ptr.get() == naked_ptr
        
        
          0x == 0x
        
      
      
        
          
            ptr
          
          
            {?}
          
        
        
          
            ptr.get() != 0
          
          
            0x != 0
          
        
        
          
            *ptr == 2
          
          
            2 == 2
          
        
        
      
      
    
    
      
        
          !(ptr)
        
        
          !{?}
        
      
      
        
          ptr.get() == 0
        
        
          0 == 0
        
      
      
    
    
      
        
          !(ptr1)
        
        
          !{?}
        
      
      
        
          ptr2
        
        
          {?}
        
      
      
        
          *ptr2 == 1
        
        
          1 == 1
        
      
      
    
    
      
        
          !(ptr2)
        
        
          !{?}
        
      
      
        
          ptr1
        
        
          {?}
        
      
      
        
          *ptr1 == 2
        
        
          2 == 2
        
      
      
    
    
      
        
          *ptr1 == 2
        
        
          2 == 2
        
      
      
        
          *ptr2 == 1
        
        
          1 == 1
        
      
      
    
    
  
  
    
      
        ::Catch::Detail::stringify(v) == "{  }"
      
      
        "{  }" == "{  }"
      
    
    
      
        ::Catch::Detail::stringify(v) == "{ { \"hello\" }, { \"world\" } }"
      
      
        "{ { "hello" }, { "world" } }"
==
"{ { "hello" }, { "world" } }"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify(bools) == "{  }"
      
      
        "{  }" == "{  }"
      
    
    
      
        ::Catch::Detail::stringify(bools) == "{ true }"
      
      
        "{ true }" == "{ true }"
      
    
    
      
        ::Catch::Detail::stringify(bools) == "{ true, false }"
      
      
        "{ true, false }" == "{ true, false }"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify(vv) == "{  }"
      
      
        "{  }" == "{  }"
      
    
    
      
        ::Catch::Detail::stringify(vv) == "{ 42 }"
      
      
        "{ 42 }" == "{ 42 }"
      
    
    
      
        ::Catch::Detail::stringify(vv) == "{ 42, 250 }"
      
      
        "{ 42, 250 }" == "{ 42, 250 }"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify(vv) == "{  }"
      
      
        "{  }" == "{  }"
      
    
    
      
        ::Catch::Detail::stringify(vv) == "{ 42 }"
      
      
        "{ 42 }" == "{ 42 }"
      
    
    
      
        ::Catch::Detail::stringify(vv) == "{ 42, 250 }"
      
      
        "{ 42, 250 }" == "{ 42, 250 }"
      
    
    
  
  
    
      
        ::Catch::Detail::stringify(vv) == "{  }"
      
      
        "{  }" == "{  }"
      
    
    
      
        ::Catch::Detail::stringify(vv) == "{ \"hello\" }"
      
      
        "{ "hello" }" == "{ "hello" }"
      
    
    
      
        ::Catch::Detail::stringify(vv) == "{ \"hello\", \"world\" }"
      
      
        "{ "hello", "world" }"
==
"{ "hello", "world" }"
      
    
    
  
  
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 10
        
        
          10 == 10
        
      
      
        
          v.capacity() >= 10
        
        
          10 >= 10
        
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 0
        
        
          0 == 0
        
      
      
        
          v.capacity() >= 5
        
        
          5 >= 5
        
      
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 5
        
        
          5 == 5
        
      
      
        
          v.capacity() >= 10
        
        
          10 >= 10
        
      
      
    
    
      
        v.size() == 5
      
      
        5 == 5
      
    
    
      
        v.capacity() >= 5
      
      
        5 >= 5
      
    
    
      
        
          v.size() == 5
        
        
          5 == 5
        
      
      
        
          v.capacity() >= 5
        
        
          5 >= 5
        
      
      
    
    
  
  
    
      
        (iterations * rate) > Catch::Benchmark::Detail::warmup_time.count()
      
      
        160000000 (0x) > 100
      
    
    
      
        (end - start) > Catch::Benchmark::Detail::warmup_time
      
      
        310016000 ns > 100 ms
      
    
    
  
  
    
      
        q1 == 14.5
      
      
        14.5 == 14.5
      
    
    
      
        med == 18.
      
      
        18.0 == 18.0
      
    
    
      
        q3 == 23.
      
      
        23.0 == 23.0