<Catch name="CatchSelfTest">
  <Group name="CatchSelfTest">
    <TestCase name="toString(enum)">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
        <Original>
          Catch::toString(e0) == "0"
        </Original>
        <Expanded>
          "0" == "0"
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
        <Original>
          Catch::toString(e1) == "1"
        </Original>
        <Expanded>
          "1" == "1"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="toString(enum w/operator&lt;&lt;)">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
        <Original>
          Catch::toString(e0) == "E2{0}"
        </Original>
        <Expanded>
          "E2{0}" == "E2{0}"
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
        <Original>
          Catch::toString(e1) == "E2{1}"
        </Original>
        <Expanded>
          "E2{1}" == "E2{1}"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="toString(enum class)">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
        <Original>
          Catch::toString(e0) == "0"
        </Original>
        <Expanded>
          "0" == "0"
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
        <Original>
          Catch::toString(e1) == "1"
        </Original>
        <Expanded>
          "1" == "1"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="toString(enum class w/operator&lt;&lt;)">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
        <Original>
          Catch::toString(e0) == "E2/V0"
        </Original>
        <Expanded>
          "E2/V0" == "E2/V0"
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
        <Original>
          Catch::toString(e1) == "E2/V1"
        </Original>
        <Expanded>
          "E2/V1" == "E2/V1"
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/EnumToString.cpp" >
        <Original>
          Catch::toString(e3) == "Unknown enum value 10"
        </Original>
        <Expanded>
          "Unknown enum value 10"
==
"Unknown enum value 10"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Some simple comparisons between doubles">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          d == Approx( 1.23 )
        </Original>
        <Expanded>
          1.23 == Approx( 1.23 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          d != Approx( 1.22 )
        </Original>
        <Expanded>
          1.23 != Approx( 1.22 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          d != Approx( 1.24 )
        </Original>
        <Expanded>
          1.23 != Approx( 1.24 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          Approx( d ) == 1.23
        </Original>
        <Expanded>
          Approx( 1.23 ) == 1.23
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          Approx( d ) != 1.22
        </Original>
        <Expanded>
          Approx( 1.23 ) != 1.22
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          Approx( d ) != 1.24
        </Original>
        <Expanded>
          Approx( 1.23 ) != 1.24
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Approximate comparisons with different epsilons">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          d != Approx( 1.231 )
        </Original>
        <Expanded>
          1.23 != Approx( 1.231 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          d == Approx( 1.231 ).epsilon( 0.1 )
        </Original>
        <Expanded>
          1.23 == Approx( 1.231 )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Approximate comparisons with floats">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          1.23f == Approx( 1.23f )
        </Original>
        <Expanded>
          1.23f == Approx( 1.2300000191 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          0.0f == Approx( 0.0f )
        </Original>
        <Expanded>
          0.0f == Approx( 0.0 )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Approximate comparisons with ints">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          1 == Approx( 1 )
        </Original>
        <Expanded>
          1 == Approx( 1.0 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          0 == Approx( 0 )
        </Original>
        <Expanded>
          0 == Approx( 0.0 )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Approximate comparisons with mixed numeric types">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          1.0f == Approx( 1 )
        </Original>
        <Expanded>
          1.0f == Approx( 1.0 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          0 == Approx( dZero)
        </Original>
        <Expanded>
          0 == Approx( 0.0 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          0 == Approx( dSmall ).epsilon( 0.001 )
        </Original>
        <Expanded>
          0 == Approx( 0.00001 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          1.234f == Approx( dMedium )
        </Original>
        <Expanded>
          1.234f == Approx( 1.234 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          dMedium == Approx( 1.234f )
        </Original>
        <Expanded>
          1.234 == Approx( 1.2339999676 )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Use a custom approx">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          d == approx( 1.23 )
        </Original>
        <Expanded>
          1.23 == Approx( 1.23 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          d == approx( 1.22 )
        </Original>
        <Expanded>
          1.23 == Approx( 1.22 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          d == approx( 1.24 )
        </Original>
        <Expanded>
          1.23 == Approx( 1.24 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          d != approx( 1.25 )
        </Original>
        <Expanded>
          1.23 != Approx( 1.25 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          approx( d ) == 1.23
        </Original>
        <Expanded>
          Approx( 1.23 ) == 1.23
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          approx( d ) == 1.22
        </Original>
        <Expanded>
          Approx( 1.23 ) == 1.22
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          approx( d ) == 1.24
        </Original>
        <Expanded>
          Approx( 1.23 ) == 1.24
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          approx( d ) != 1.25
        </Original>
        <Expanded>
          Approx( 1.23 ) != 1.25
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Approximate PI">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 )
        </Original>
        <Expanded>
          3.1428571429 == Approx( 3.141 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ApproxTests.cpp" >
        <Original>
          divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 )
        </Original>
        <Expanded>
          3.1428571429 != Approx( 3.141 )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="A METHOD_AS_TEST_CASE based test run that succeeds">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
        <Original>
          s == "hello"
        </Original>
        <Expanded>
          "hello" == "hello"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="A METHOD_AS_TEST_CASE based test run that fails">
      <Expression success="false" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
        <Original>
          s == "world"
        </Original>
        <Expanded>
          "hello" == "world"
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="A TEST_CASE_METHOD based test run that succeeds">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
        <Original>
          m_a == 1
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="A TEST_CASE_METHOD based test run that fails">
      <Expression success="false" type="REQUIRE" filename="projects/SelfTest/ClassTests.cpp" >
        <Original>
          m_a == 2
        </Original>
        <Expanded>
          1 == 2
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Equality checks that should succeed">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven == 7
        </Original>
        <Expanded>
          7 == 7
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one == Approx( 9.1f )
        </Original>
        <Expanded>
          9.1f == Approx( 9.1000003815 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.double_pi == Approx( 3.1415926535 )
        </Original>
        <Expanded>
          3.1415926535 == Approx( 3.1415926535 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello == "hello"
        </Original>
        <Expanded>
          "hello" == "hello"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          "hello" == data.str_hello
        </Original>
        <Expanded>
          "hello" == "hello"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello.size() == 5
        </Original>
        <Expanded>
          5 == 5
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          x == Approx( 1.3 )
        </Original>
        <Expanded>
          1.3 == Approx( 1.3 )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Equality checks that should fail">
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven == 6
        </Original>
        <Expanded>
          7 == 6
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven == 8
        </Original>
        <Expanded>
          7 == 8
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven == 0
        </Original>
        <Expanded>
          7 == 0
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one == Approx( 9.11f )
        </Original>
        <Expanded>
          9.1f == Approx( 9.1099996567 )
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one == Approx( 9.0f )
        </Original>
        <Expanded>
          9.1f == Approx( 9.0 )
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one == Approx( 1 )
        </Original>
        <Expanded>
          9.1f == Approx( 1.0 )
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one == Approx( 0 )
        </Original>
        <Expanded>
          9.1f == Approx( 0.0 )
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.double_pi == Approx( 3.1415 )
        </Original>
        <Expanded>
          3.1415926535 == Approx( 3.1415 )
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello == "goodbye"
        </Original>
        <Expanded>
          "hello" == "goodbye"
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello == "hell"
        </Original>
        <Expanded>
          "hello" == "hell"
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello == "hello1"
        </Original>
        <Expanded>
          "hello" == "hello1"
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello.size() == 6
        </Original>
        <Expanded>
          5 == 6
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          x == Approx( 1.301 )
        </Original>
        <Expanded>
          1.3 == Approx( 1.301 )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Inequality checks that should succeed">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven != 6
        </Original>
        <Expanded>
          7 != 6
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven != 8
        </Original>
        <Expanded>
          7 != 8
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one != Approx( 9.11f )
        </Original>
        <Expanded>
          9.1f != Approx( 9.1099996567 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one != Approx( 9.0f )
        </Original>
        <Expanded>
          9.1f != Approx( 9.0 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one != Approx( 1 )
        </Original>
        <Expanded>
          9.1f != Approx( 1.0 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one != Approx( 0 )
        </Original>
        <Expanded>
          9.1f != Approx( 0.0 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.double_pi != Approx( 3.1415 )
        </Original>
        <Expanded>
          3.1415926535 != Approx( 3.1415 )
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello != "goodbye"
        </Original>
        <Expanded>
          "hello" != "goodbye"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello != "hell"
        </Original>
        <Expanded>
          "hello" != "hell"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello != "hello1"
        </Original>
        <Expanded>
          "hello" != "hello1"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello.size() != 6
        </Original>
        <Expanded>
          5 != 6
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Inequality checks that should fail">
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven != 7
        </Original>
        <Expanded>
          7 != 7
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one != Approx( 9.1f )
        </Original>
        <Expanded>
          9.1f != Approx( 9.1000003815 )
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.double_pi != Approx( 3.1415926535 )
        </Original>
        <Expanded>
          3.1415926535 != Approx( 3.1415926535 )
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello != "hello"
        </Original>
        <Expanded>
          "hello" != "hello"
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello.size() != 5
        </Original>
        <Expanded>
          5 != 5
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Ordering comparison checks that should succeed">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven &lt; 8
        </Original>
        <Expanded>
          7 &lt; 8
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven > 6
        </Original>
        <Expanded>
          7 > 6
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven > 0
        </Original>
        <Expanded>
          7 > 0
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven > -1
        </Original>
        <Expanded>
          7 > -1
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven >= 7
        </Original>
        <Expanded>
          7 >= 7
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven >= 6
        </Original>
        <Expanded>
          7 >= 6
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven &lt;= 7
        </Original>
        <Expanded>
          7 &lt;= 7
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven &lt;= 8
        </Original>
        <Expanded>
          7 &lt;= 8
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one > 9
        </Original>
        <Expanded>
          9.1f > 9
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one &lt; 10
        </Original>
        <Expanded>
          9.1f &lt; 10
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one &lt; 9.2
        </Original>
        <Expanded>
          9.1f &lt; 9.2
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello &lt;= "hello"
        </Original>
        <Expanded>
          "hello" &lt;= "hello"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello >= "hello"
        </Original>
        <Expanded>
          "hello" >= "hello"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello &lt; "hellp"
        </Original>
        <Expanded>
          "hello" &lt; "hellp"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello &lt; "zebra"
        </Original>
        <Expanded>
          "hello" &lt; "zebra"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello > "hellm"
        </Original>
        <Expanded>
          "hello" > "hellm"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello > "a"
        </Original>
        <Expanded>
          "hello" > "a"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Ordering comparison checks that should fail">
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven > 7
        </Original>
        <Expanded>
          7 > 7
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven &lt; 7
        </Original>
        <Expanded>
          7 &lt; 7
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven > 8
        </Original>
        <Expanded>
          7 > 8
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven &lt; 6
        </Original>
        <Expanded>
          7 &lt; 6
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven &lt; 0
        </Original>
        <Expanded>
          7 &lt; 0
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven &lt; -1
        </Original>
        <Expanded>
          7 &lt; -1
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven >= 8
        </Original>
        <Expanded>
          7 >= 8
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.int_seven &lt;= 6
        </Original>
        <Expanded>
          7 &lt;= 6
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one &lt; 9
        </Original>
        <Expanded>
          9.1f &lt; 9
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one > 10
        </Original>
        <Expanded>
          9.1f > 10
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.float_nine_point_one > 9.2
        </Original>
        <Expanded>
          9.1f > 9.2
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello > "hello"
        </Original>
        <Expanded>
          "hello" > "hello"
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello &lt; "hello"
        </Original>
        <Expanded>
          "hello" &lt; "hello"
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello > "hellp"
        </Original>
        <Expanded>
          "hello" > "hellp"
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello > "z"
        </Original>
        <Expanded>
          "hello" > "z"
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello &lt; "hellm"
        </Original>
        <Expanded>
          "hello" &lt; "hellm"
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello &lt; "a"
        </Original>
        <Expanded>
          "hello" &lt; "a"
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello >= "z"
        </Original>
        <Expanded>
          "hello" >= "z"
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          data.str_hello &lt;= "a"
        </Original>
        <Expanded>
          "hello" &lt;= "a"
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Comparisons with int literals don't warn when mixing signed/ unsigned">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          i == 1
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          ui == 2
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          l == 3
        </Original>
        <Expanded>
          3 == 3
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          ul == 4
        </Original>
        <Expanded>
          4 == 4
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          c == 5
        </Original>
        <Expanded>
          5 == 5
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          uc == 6
        </Original>
        <Expanded>
          6 == 6
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          1 == i
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          2 == ui
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          3 == l
        </Original>
        <Expanded>
          3 == 3
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          4 == ul
        </Original>
        <Expanded>
          4 == 4
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          5 == c
        </Original>
        <Expanded>
          5 == 5
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          6 == uc
        </Original>
        <Expanded>
          6 == 6
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          (std::numeric_limits&lt;unsigned long>::max)() > ul
        </Original>
        <Expanded>
          18446744073709551615 (0x<hex digits>)
>
4
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="comparisons between int variables">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          long_var == unsigned_char_var
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          long_var == unsigned_short_var
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          long_var == unsigned_int_var
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          long_var == unsigned_long_var
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="comparisons between const int variables">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          unsigned_char_var == 1
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          unsigned_short_var == 1
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          unsigned_int_var == 1
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          unsigned_long_var == 1
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Comparisons between unsigned ints and negative signed ints match c++ standard behaviour">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          ( -1 > 2u )
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          -1 > 2u
        </Original>
        <Expanded>
          -1 > 2
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          ( 2u &lt; -1 )
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          2u &lt; -1
        </Original>
        <Expanded>
          2 &lt; -1
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          ( minInt > 2u )
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          minInt > 2u
        </Original>
        <Expanded>
          -2147483648 > 2
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Comparisons between ints where one side is computed">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          54 == 6*9
        </Original>
        <Expanded>
          54 == 54
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Pointers can be compared to null">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          p == nullptr
        </Original>
        <Expanded>
          NULL == nullptr
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          p == pNULL
        </Original>
        <Expanded>
          NULL == NULL
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          p != nullptr
        </Original>
        <Expanded>
          0x<hex digits> != nullptr
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          cp != nullptr
        </Original>
        <Expanded>
          0x<hex digits> != nullptr
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          cpc != nullptr
        </Original>
        <Expanded>
          0x<hex digits> != nullptr
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          returnsNull() == nullptr
        </Original>
        <Expanded>
          {null string} == nullptr
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          returnsConstNull() == nullptr
        </Original>
        <Expanded>
          {null string} == nullptr
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          nullptr != p
        </Original>
        <Expanded>
          nullptr != 0x<hex digits>
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="'Not' checks that should succeed">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          false == false
        </Original>
        <Expanded>
          false == false
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          true == true
        </Original>
        <Expanded>
          true == true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          !false
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          !false
        </Original>
        <Expanded>
          !false
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          !falseValue
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          !falseValue
        </Original>
        <Expanded>
          !false
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          !(1 == 2)
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          !1 == 2
        </Original>
        <Expanded>
          !(1 == 2)
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="'Not' checks that should fail">
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          false != false
        </Original>
        <Expanded>
          false != false
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          true != true
        </Original>
        <Expanded>
          true != true
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          !true
        </Original>
        <Expanded>
          false
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          !true
        </Original>
        <Expanded>
          !true
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          !trueValue
        </Original>
        <Expanded>
          false
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          !trueValue
        </Original>
        <Expanded>
          !true
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          !(1 == 1)
        </Original>
        <Expanded>
          false
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK_FALSE" filename="projects/SelfTest/ConditionTests.cpp" >
        <Original>
          !1 == 1
        </Original>
        <Expanded>
          !(1 == 1)
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="When checked exceptions are thrown they can be expected or unexpected">
      <Expression success="true" type="REQUIRE_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          thisThrows()
        </Original>
        <Expanded>
          thisThrows()
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE_NOTHROW" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          thisDoesntThrow()
        </Original>
        <Expanded>
          thisDoesntThrow()
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE_THROWS" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          thisThrows()
        </Original>
        <Expanded>
          thisThrows()
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Expected exceptions that don't throw or unexpected exceptions fail the test">
      <Expression success="false" type="CHECK_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          thisThrows()
        </Original>
        <Expanded>
          thisThrows()
        </Expanded>
        <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
          expected exception
        </Exception>
      </Expression>
      <Expression success="false" type="CHECK_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          thisDoesntThrow()
        </Original>
        <Expanded>
          thisDoesntThrow()
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK_NOTHROW" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          thisThrows()
        </Original>
        <Expanded>
          thisThrows()
        </Expanded>
        <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
          expected exception
        </Exception>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="When unchecked exceptions are thrown directly they are always failures">
      <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
        unexpected exception
      </Exception>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="An unchecked exception reports the line of the last assertion">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          1 == 1
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <Expression success="false" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          {Unknown expression after the reported line}
        </Original>
        <Expanded>
          {Unknown expression after the reported line}
        </Expanded>
        <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
          unexpected exception
        </Exception>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="When unchecked exceptions are thrown from sections they are always failures">
      <Section name="section name">
        <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
          unexpected exception
        </Exception>
        <OverallResults successes="0" failures="1" expectedFailures="0"/>
      </Section>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="When unchecked exceptions are thrown from functions they are always failures">
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          thisThrows() == 0
        </Original>
        <Expanded>
          thisThrows() == 0
        </Expanded>
        <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
          expected exception
        </Exception>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="When unchecked exceptions are thrown during a REQUIRE the test should abort fail">
      <Expression success="false" type="REQUIRE" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          thisThrows() == 0
        </Original>
        <Expanded>
          thisThrows() == 0
        </Expanded>
        <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
          expected exception
        </Exception>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="When unchecked exceptions are thrown during a CHECK the test should abort and fail">
      <Expression success="false" type="CHECK" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          thisThrows() == 0
        </Original>
        <Expanded>
          thisThrows() == 0
        </Expanded>
        <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
          expected exception
        </Exception>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="When unchecked exceptions are thrown, but caught, they do not affect the test">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Non-std exceptions can be translated">
      <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
        custom exception
      </Exception>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Custom std-exceptions can be custom translated">
      <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
        custom std exception
      </Exception>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Custom exceptions can be translated when testing for nothrow">
      <Expression success="false" type="REQUIRE_NOTHROW" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          throwCustom()
        </Original>
        <Expanded>
          throwCustom()
        </Expanded>
        <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
          custom exception - not std
        </Exception>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Custom exceptions can be translated when testing for throwing as something else">
      <Expression success="false" type="REQUIRE_THROWS_AS" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          throwCustom()
        </Original>
        <Expanded>
          throwCustom()
        </Expanded>
        <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
          custom exception - not std
        </Exception>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Unexpected exceptions can be translated">
      <Exception filename="projects/SelfTest/ExceptionTests.cpp" >
        3.14
      </Exception>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="NotImplemented exception">
      <Expression success="true" type="REQUIRE_THROWS" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          thisFunctionNotImplemented( 7 )
        </Original>
        <Expanded>
          thisFunctionNotImplemented( 7 )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Exception messages can be tested for">
      <Section name="exact match">
        <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
          <Original>
            thisThrows(), "expected exception"
          </Original>
          <Expanded>
            thisThrows(), "expected exception"
          </Expanded>
        </Expression>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="different case">
        <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
          <Original>
            thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No )
          </Original>
          <Expanded>
            thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No )
          </Expanded>
        </Expression>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="wildcarded">
        <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
          <Original>
            thisThrows(), StartsWith( "expected" )
          </Original>
          <Expanded>
            thisThrows(), StartsWith( "expected" )
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
          <Original>
            thisThrows(), EndsWith( "exception" )
          </Original>
          <Expanded>
            thisThrows(), EndsWith( "exception" )
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
          <Original>
            thisThrows(), Contains( "except" )
          </Original>
          <Expanded>
            thisThrows(), Contains( "except" )
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
          <Original>
            thisThrows(), Contains( "exCept", Catch::CaseSensitive::No )
          </Original>
          <Expanded>
            thisThrows(), Contains( "exCept", Catch::CaseSensitive::No )
          </Expanded>
        </Expression>
        <OverallResults successes="4" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Mismatching exception messages failing the test">
      <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          thisThrows(), "expected exception"
        </Original>
        <Expanded>
          thisThrows(), "expected exception"
        </Expanded>
      </Expression>
      <Expression success="false" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/ExceptionTests.cpp" >
        <Original>
          thisThrows(), "should fail"
        </Original>
        <Expanded>
          expected exception
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Generators over two ranges">
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          200 == 200
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          4 == 4
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          200 == 200
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          6 == 6
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          200 == 200
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          8 == 8
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          200 == 200
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          10 == 10
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          200 == 200
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          30 == 30
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          200 == 200
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          40 == 40
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          200 == 200
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          42 == 42
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          200 == 200
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          72 == 72
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          200 == 200
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          202 == 202
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          4 == 4
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          202 == 202
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          6 == 6
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          202 == 202
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          8 == 8
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          202 == 202
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          10 == 10
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          202 == 202
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          30 == 30
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          202 == 202
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          40 == 40
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          202 == 202
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          42 == 42
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          202 == 202
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          72 == 72
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          202 == 202
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          204 == 204
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          4 == 4
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          204 == 204
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          6 == 6
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          204 == 204
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          8 == 8
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          204 == 204
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          10 == 10
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          204 == 204
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          30 == 30
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          204 == 204
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          40 == 40
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          204 == 204
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          42 == 42
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          204 == 204
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          72 == 72
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          204 == 204
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          206 == 206
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          4 == 4
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          206 == 206
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          6 == 6
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          206 == 206
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          8 == 8
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          206 == 206
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          10 == 10
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          206 == 206
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          30 == 30
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          206 == 206
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          40 == 40
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          206 == 206
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          42 == 42
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          206 == 206
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          72 == 72
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          206 == 206
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          208 == 208
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          4 == 4
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          208 == 208
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          6 == 6
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          208 == 208
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          8 == 8
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          208 == 208
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          10 == 10
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          208 == 208
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          30 == 30
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          208 == 208
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          40 == 40
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          208 == 208
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          42 == 42
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          208 == 208
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          72 == 72
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          208 == 208
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          210 == 210
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          4 == 4
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          210 == 210
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          6 == 6
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          210 == 210
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          8 == 8
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          210 == 210
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          10 == 10
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          210 == 210
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          30 == 30
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          210 == 210
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          40 == 40
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          210 == 210
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          42 == 42
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          210 == 210
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          72 == 72
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          210 == 210
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          212 == 212
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          4 == 4
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          212 == 212
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          6 == 6
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          212 == 212
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          8 == 8
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          212 == 212
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          10 == 10
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          212 == 212
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          30 == 30
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          212 == 212
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          40 == 40
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          212 == 212
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          42 == 42
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          212 == 212
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          72 == 72
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          212 == 212
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          214 == 214
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          4 == 4
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          214 == 214
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          6 == 6
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          214 == 214
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          8 == 8
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          214 == 214
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          10 == 10
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          214 == 214
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          30 == 30
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          214 == 214
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          40 == 40
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          214 == 214
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          42 == 42
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          214 == 214
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( i, 2 ) == i*2
        </Original>
        <Expanded>
          72 == 72
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          multiply( j, 2 ) == j*2
        </Original>
        <Expanded>
          214 == 214
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Generator over a range of pairs">
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          i->first == i->second-1
        </Original>
        <Expanded>
          0 == 0
        </Expanded>
      </Expression>
      <Expression success="true" type="CATCH_REQUIRE" filename="projects/SelfTest/GeneratorTests.cpp" >
        <Original>
          i->first == i->second-1
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="INFO and WARN do not abort tests">
      <Info>
        this is a message
      </Info>
      <Warning>
        this is a warning
      </Warning>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="SUCCEED counts as a test pass">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="INFO gets logged on failure">
      <Info>
        this message should be logged
      </Info>
      <Info>
        so should this
      </Info>
      <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          a == 1
        </Original>
        <Expanded>
          2 == 1
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="INFO gets logged on failure, even if captured before successful assertions">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          a == 2
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <Info>
        this message should be logged
      </Info>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          a == 1
        </Original>
        <Expanded>
          2 == 1
        </Expanded>
      </Expression>
      <Info>
        and this, but later
      </Info>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          a == 0
        </Original>
        <Expanded>
          2 == 0
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          a == 2
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="FAIL aborts the test">
      <Failure>
        This is a failure
      </Failure>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="FAIL does not require an argument">
      <Failure/>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="SUCCESS does not require an argument">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Output from all sections is reported">
      <Section name="one">
        <Failure>
          Message from section one
        </Failure>
        <OverallResults successes="0" failures="1" expectedFailures="0"/>
      </Section>
      <Section name="two">
        <Failure>
          Message from section two
        </Failure>
        <OverallResults successes="0" failures="1" expectedFailures="0"/>
      </Section>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Standard output from all sections is reported">
      <Section name="one">
        <OverallResults successes="0" failures="1" expectedFailures="0"/>
      </Section>
      <Section name="two">
        <OverallResults successes="0" failures="1" expectedFailures="0"/>
      </Section>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="SCOPED_INFO is reset for each loop">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          i &lt; 10
        </Original>
        <Expanded>
          0 &lt; 10
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          i &lt; 10
        </Original>
        <Expanded>
          1 &lt; 10
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          i &lt; 10
        </Original>
        <Expanded>
          2 &lt; 10
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          i &lt; 10
        </Original>
        <Expanded>
          3 &lt; 10
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          i &lt; 10
        </Original>
        <Expanded>
          4 &lt; 10
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          i &lt; 10
        </Original>
        <Expanded>
          5 &lt; 10
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          i &lt; 10
        </Original>
        <Expanded>
          6 &lt; 10
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          i &lt; 10
        </Original>
        <Expanded>
          7 &lt; 10
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          i &lt; 10
        </Original>
        <Expanded>
          8 &lt; 10
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          i &lt; 10
        </Original>
        <Expanded>
          9 &lt; 10
        </Expanded>
      </Expression>
      <Info>
        current counter 10
      </Info>
      <Info>
        i := 10
      </Info>
      <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          i &lt; 10
        </Original>
        <Expanded>
          10 &lt; 10
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="The NO_FAIL macro reports a failure but does not fail the test">
      <Expression success="false" type="CHECK_NOFAIL" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          1 == 2
        </Original>
        <Expanded>
          1 == 2
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="just info">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="just failure">
      <Failure>
        Previous info should not be seen
      </Failure>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="sends information to INFO">
      <Info>
        hi
      </Info>
      <Info>
        i := 7
      </Info>
      <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MessageTests.cpp" >
        <Original>
          false
        </Original>
        <Expanded>
          false
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Pointers can be converted to strings">
      <Warning>
        actual address of p: 0x<hex digits>
      </Warning>
      <Warning>
        toString(p): 0x<hex digits>
      </Warning>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="random SECTION tests">
      <Section name="s1" description="doesn't equal">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            a != b
          </Original>
          <Expanded>
            1 != 2
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            b != a
          </Original>
          <Expanded>
            2 != 1
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="s2" description="not equal">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            a != b
          </Original>
          <Expanded>
            1 != 2
          </Expanded>
        </Expression>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="nested SECTION tests">
      <Section name="s1" description="doesn't equal">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            a != b
          </Original>
          <Expanded>
            1 != 2
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            b != a
          </Original>
          <Expanded>
            2 != 1
          </Expanded>
        </Expression>
        <Section name="s2" description="not equal">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
            <Original>
              a != b
            </Original>
            <Expanded>
              1 != 2
            </Expanded>
          </Expression>
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="more nested SECTION tests">
      <Section name="s1" description="doesn't equal">
        <Section name="s2" description="equal">
          <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
            <Original>
              a == b
            </Original>
            <Expanded>
              1 == 2
            </Expanded>
          </Expression>
          <OverallResults successes="0" failures="1" expectedFailures="0"/>
        </Section>
        <OverallResults successes="0" failures="1" expectedFailures="0"/>
      </Section>
      <Section name="s1" description="doesn't equal">
        <Section name="s3" description="not equal">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
            <Original>
              a != b
            </Original>
            <Expanded>
              1 != 2
            </Expanded>
          </Expression>
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="s1" description="doesn't equal">
        <Section name="s4" description="less than">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
            <Original>
              a &lt; b
            </Original>
            <Expanded>
              1 &lt; 2
            </Expanded>
          </Expression>
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="even more nested SECTION tests">
      <Section name="c">
        <Section name="d (leaf)">
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="c">
        <Section name="e (leaf)">
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="f (leaf)">
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="looped SECTION tests">
      <Section name="s1" description="b is currently: 0">
        <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            b > a
          </Original>
          <Expanded>
            0 > 1
          </Expanded>
        </Expression>
        <OverallResults successes="0" failures="1" expectedFailures="0"/>
      </Section>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="looped tests">
      <Info>
        Testing if fib[0] (1) is even
      </Info>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          ( fib[i] % 2 ) == 0
        </Original>
        <Expanded>
          1 == 0
        </Expanded>
      </Expression>
      <Info>
        Testing if fib[1] (1) is even
      </Info>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          ( fib[i] % 2 ) == 0
        </Original>
        <Expanded>
          1 == 0
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          ( fib[i] % 2 ) == 0
        </Original>
        <Expanded>
          0 == 0
        </Expanded>
      </Expression>
      <Info>
        Testing if fib[3] (3) is even
      </Info>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          ( fib[i] % 2 ) == 0
        </Original>
        <Expanded>
          1 == 0
        </Expanded>
      </Expression>
      <Info>
        Testing if fib[4] (5) is even
      </Info>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          ( fib[i] % 2 ) == 0
        </Original>
        <Expanded>
          1 == 0
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          ( fib[i] % 2 ) == 0
        </Original>
        <Expanded>
          0 == 0
        </Expanded>
      </Expression>
      <Info>
        Testing if fib[6] (13) is even
      </Info>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          ( fib[i] % 2 ) == 0
        </Original>
        <Expanded>
          1 == 0
        </Expanded>
      </Expression>
      <Info>
        Testing if fib[7] (21) is even
      </Info>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          ( fib[i] % 2 ) == 0
        </Original>
        <Expanded>
          1 == 0
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Sends stuff to stdout and stderr">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="null strings">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          makeString( false ) != static_cast&lt;char*>(nullptr)
        </Original>
        <Expanded>
          "valid string" != {null string}
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          makeString( true ) == static_cast&lt;char*>(nullptr)
        </Original>
        <Expanded>
          {null string} == {null string}
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="checkedIf">
      <Expression success="true" type="CHECKED_IF" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          flag
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testCheckedIf( true )
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="checkedIf, failing">
      <Expression success="false" type="CHECKED_IF" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          flag
        </Original>
        <Expanded>
          false
        </Expanded>
      </Expression>
      <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testCheckedIf( false )
        </Original>
        <Expanded>
          false
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="checkedElse">
      <Expression success="true" type="CHECKED_ELSE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          flag
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testCheckedElse( true )
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="checkedElse, failing">
      <Expression success="false" type="CHECKED_ELSE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          flag
        </Original>
        <Expanded>
          false
        </Expanded>
      </Expression>
      <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testCheckedElse( false )
        </Original>
        <Expanded>
          false
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="xmlentitycheck">
      <Section name="embedded xml" description="&lt;test>it should be possible to embed xml characters, such as &lt;, &quot; or &amp;, or even whole &lt;xml>documents&lt;/xml> within an attribute&lt;/test>">
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="encoded chars" description="these should all be encoded: &amp;&amp;&amp;&quot;&quot;&quot;&lt;&lt;&lt;&amp;&quot;&lt;&lt;&amp;&quot;">
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="send a single char to INFO">
      <Info>
        3
      </Info>
      <Expression success="false" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          false
        </Original>
        <Expanded>
          false
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="atomic if">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          x == 0
        </Original>
        <Expanded>
          0 == 0
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="String matchers">
      <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), Contains( "string" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" contains: "string"
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), Contains( "abc" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" contains: "abc"
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), StartsWith( "this" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" starts with: "this"
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), EndsWith( "substring" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" ends with: "substring"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Contains string matcher">
      <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), Contains( "not there" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" contains: "not there"
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="StartsWith string matcher">
      <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), StartsWith( "string" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" starts with: "string"
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="EndsWith string matcher">
      <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), EndsWith( "this" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" ends with: "this"
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Equals string matcher">
      <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), Equals( "something else" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" equals: "something else"
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Equals string matcher, with NULL">
      <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          "", Equals(nullptr)
        </Original>
        <Expanded>
          "" equals: ""
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="AllOf matcher">
      <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), AllOf( Catch::Contains( "string" ), Catch::Contains( "abc" ) )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="AnyOf matcher">
      <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), AnyOf( Catch::Contains( "string" ), Catch::Contains( "not there" ) )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" ( contains: "string" or contains: "not there" )
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), AnyOf( Catch::Contains( "not there" ), Catch::Contains( "string" ) )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" ( contains: "not there" or contains: "string" )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Equals">
      <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), Equals( "this string contains 'abc' as a substring" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" equals: "this string contains 'abc' as a substring"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Matchers can be (AllOf) composed with the &amp;&amp; operator">
      <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), Contains( "string" ) &amp;&amp; Contains( "abc" ) &amp;&amp; Contains( "substring" ) &amp;&amp; Contains( "contains" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" ( contains: "string" and contains: "abc" and contains: "substring" and contains: "contains" )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Matchers can be (AnyOf) composed with the || operator">
      <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), Contains( "string" ) || Contains( "different" ) || Contains( "random" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" ( contains: "string" or contains: "different" or contains: "random" )
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching2(), Contains( "string" ) || Contains( "different" ) || Contains( "random" )
        </Original>
        <Expanded>
          "some completely different text that contains one common word" ( contains: "string" or contains: "different" or contains: "random" )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Matchers can be composed with both &amp;&amp; and ||">
      <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) &amp;&amp; Contains( "substring" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "substring" )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Matchers can be composed with both &amp;&amp; and || - failing">
      <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), ( Contains( "string" ) || Contains( "different" ) ) &amp;&amp; Contains( "random" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" ( ( contains: "string" or contains: "different" ) and contains: "random" )
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Matchers can be negated (Not) with the ! operator">
      <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), !Contains( "different" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" not contains: "different"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Matchers can be negated (Not) with the ! operator - failing">
      <Expression success="false" type="CHECK_THAT" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          testStringForMatching(), !Contains( "substring" )
        </Original>
        <Expanded>
          "this string contains 'abc' as a substring" not contains: "substring"
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Factorials are computed">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          Factorial(0) == 1
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          Factorial(1) == 1
        </Original>
        <Expanded>
          1 == 1
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          Factorial(2) == 2
        </Original>
        <Expanded>
          2 == 2
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          Factorial(3) == 6
        </Original>
        <Expanded>
          6 == 6
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          Factorial(10) == 3628800
        </Original>
        <Expanded>
          3628800 (0x<hex digits>) == 3628800 (0x<hex digits>)
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="An empty test with no assertions">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Nice descriptive name">
      <Warning>
        This one ran
      </Warning>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="first tag">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="second tag">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="vectors can be sized and resized">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          v.size() == 5
        </Original>
        <Expanded>
          5 == 5
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          v.capacity() >= 5
        </Original>
        <Expanded>
          5 >= 5
        </Expanded>
      </Expression>
      <Section name="resizing bigger changes size and capacity">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            v.size() == 10
          </Original>
          <Expanded>
            10 == 10
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            v.capacity() >= 10
          </Original>
          <Expanded>
            10 >= 10
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          v.size() == 5
        </Original>
        <Expanded>
          5 == 5
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          v.capacity() >= 5
        </Original>
        <Expanded>
          5 >= 5
        </Expanded>
      </Expression>
      <Section name="resizing smaller changes size but not capacity">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            v.size() == 0
          </Original>
          <Expanded>
            0 == 0
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            v.capacity() >= 5
          </Original>
          <Expanded>
            5 >= 5
          </Expanded>
        </Expression>
        <Section name="We can use the 'swap trick' to reset the capacity">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
            <Original>
              v.capacity() == 0
            </Original>
            <Expanded>
              0 == 0
            </Expanded>
          </Expression>
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          v.size() == 5
        </Original>
        <Expanded>
          5 == 5
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          v.capacity() >= 5
        </Original>
        <Expanded>
          5 >= 5
        </Expanded>
      </Expression>
      <Section name="reserving bigger changes capacity but not size">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            v.size() == 5
          </Original>
          <Expanded>
            5 == 5
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            v.capacity() >= 10
          </Original>
          <Expanded>
            10 >= 10
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          v.size() == 5
        </Original>
        <Expanded>
          5 == 5
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          v.capacity() >= 5
        </Original>
        <Expanded>
          5 >= 5
        </Expanded>
      </Expression>
      <Section name="reserving smaller does not change size or capacity">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            v.size() == 5
          </Original>
          <Expanded>
            5 == 5
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            v.capacity() >= 5
          </Original>
          <Expanded>
            5 >= 5
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="A couple of nested sections followed by a failure">
      <Section name="Outer">
        <Section name="Inner">
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Failure>
        to infinity and beyond
      </Failure>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="not allowed">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Tabs and newlines show in output">
      <Expression success="false" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          s1 == s2
        </Original>
        <Expanded>
          "if ($b == 10) {
		$a	= 20;
}"
==
"if ($b == 10) {
	$a = 20;
}
"
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="toString on const wchar_t const pointer returns the string contents">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          result == "\"wide load\""
        </Original>
        <Expanded>
          ""wide load"" == ""wide load""
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="toString on const wchar_t pointer returns the string contents">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          result == "\"wide load\""
        </Original>
        <Expanded>
          ""wide load"" == ""wide load""
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="toString on wchar_t const pointer returns the string contents">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          result == "\"wide load\""
        </Original>
        <Expanded>
          ""wide load"" == ""wide load""
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="toString on wchar_t returns the string contents">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          result == "\"wide load\""
        </Original>
        <Expanded>
          ""wide load"" == ""wide load""
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="XmlEncode">
      <Section name="normal string">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            encode( "normal string" ) == "normal string"
          </Original>
          <Expanded>
            "normal string" == "normal string"
          </Expanded>
        </Expression>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="empty string">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            encode( "" ) == ""
          </Original>
          <Expanded>
            "" == ""
          </Expanded>
        </Expression>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="string with ampersand">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            encode( "smith &amp; jones" ) == "smith &amp;amp; jones"
          </Original>
          <Expanded>
            "smith &amp;amp; jones" == "smith &amp;amp; jones"
          </Expanded>
        </Expression>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="string with less-than">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            encode( "smith &lt; jones" ) == "smith &amp;lt; jones"
          </Original>
          <Expanded>
            "smith &amp;lt; jones" == "smith &amp;lt; jones"
          </Expanded>
        </Expression>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="string with greater-than">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            encode( "smith > jones" ) == "smith > jones"
          </Original>
          <Expanded>
            "smith > jones" == "smith > jones"
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            encode( "smith ]]&gt; jones" ) == "smith ]]&amp;gt; jones"
          </Original>
          <Expanded>
            "smith ]]&amp;gt; jones"
==
"smith ]]&amp;gt; jones"
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="string with quotes">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            encode( stringWithQuotes ) == stringWithQuotes
          </Original>
          <Expanded>
            "don't "quote" me on that"
==
"don't "quote" me on that"
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't &amp;quot;quote&amp;quot; me on that"
          </Original>
          <Expanded>
            "don't &amp;quot;quote&amp;quot; me on that"
==
"don't &amp;quot;quote&amp;quot; me on that"
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="string with control char (1)">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            encode( "[\x01]" ) == "[&amp;#x1]"
          </Original>
          <Expanded>
            "[&amp;#x1]" == "[&amp;#x1]"
          </Expanded>
        </Expression>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="string with control char (x7F)">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
          <Original>
            encode( "[\x7F]" ) == "[&amp;#x7F]"
          </Original>
          <Expanded>
            "[&amp;#x7F]" == "[&amp;#x7F]"
          </Expanded>
        </Expression>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="long long">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/MiscTests.cpp" >
        <Original>
          l == std::numeric_limits&lt;long long>::max()
        </Original>
        <Expanded>
          9223372036854775807 (0x<hex digits>)
==
9223372036854775807 (0x<hex digits>)
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="This test 'should' fail but doesn't">
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="Process can be configured on command line">
      <Section name="default - no arguments">
        <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            parseIntoConfig( argv, config )
          </Original>
          <Expanded>
            parseIntoConfig( argv, config )
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            config.shouldDebugBreak == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            config.abortAfter == -1
          </Original>
          <Expanded>
            -1 == -1
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            config.noThrow == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            config.reporterNames.empty()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="test lists">
        <Section name="1 test" description="Specify one test case using">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              cfg.testSpec().matches( fakeTestCase( "notIncluded" ) ) == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              cfg.testSpec().matches( fakeTestCase( "test1" ) )
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <OverallResults successes="3" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="test lists">
        <Section name="Specify one test case exclusion using exclude:">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) )
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <OverallResults successes="3" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="test lists">
        <Section name="Specify one test case exclusion using ~">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              cfg.testSpec().matches( fakeTestCase( "test1" ) ) == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              cfg.testSpec().matches( fakeTestCase( "alwaysIncluded" ) )
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <OverallResults successes="3" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="reporter">
        <Section name="-r/console">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.reporterNames[0] == "console"
            </Original>
            <Expanded>
              "console" == "console"
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="reporter">
        <Section name="-r/xml">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.reporterNames[0] == "xml"
            </Original>
            <Expanded>
              "xml" == "xml"
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="reporter">
        <Section name="-r xml and junit">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.reporterNames.size() == 2
            </Original>
            <Expanded>
              2 == 2
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.reporterNames[0] == "xml"
            </Original>
            <Expanded>
              "xml" == "xml"
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.reporterNames[1] == "junit"
            </Original>
            <Expanded>
              "junit" == "junit"
            </Expanded>
          </Expression>
          <OverallResults successes="4" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="4" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="reporter">
        <Section name="--reporter/junit">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.reporterNames[0] == "junit"
            </Original>
            <Expanded>
              "junit" == "junit"
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="debugger">
        <Section name="-b">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.shouldDebugBreak == true
            </Original>
            <Expanded>
              true == true
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="debugger">
        <Section name="--break">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.shouldDebugBreak
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="abort">
        <Section name="-a aborts after first failure">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.abortAfter == 1
            </Original>
            <Expanded>
              1 == 1
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="abort">
        <Section name="-x 2 aborts after two failures">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.abortAfter == 2
            </Original>
            <Expanded>
              2 == 2
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="abort">
        <Section name="-x must be greater than zero">
          <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfigAndReturnError( argv, config ), Contains( "greater than zero" )
            </Original>
            <Expanded>
              "Value after -x or --abortAfter must be greater than zero
- while parsing: (-x, --abortx &lt;no. failures>)" contains: "greater than zero"
            </Expanded>
          </Expression>
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="abort">
        <Section name="-x must be numeric">
          <Expression success="true" type="REQUIRE_THAT" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfigAndReturnError( argv, config ), Contains( "-x" )
            </Original>
            <Expanded>
              "Unable to convert oops to destination type
- while parsing: (-x, --abortx &lt;no. failures>)" contains: "-x"
            </Expanded>
          </Expression>
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="nothrow">
        <Section name="-e">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.noThrow == true
            </Original>
            <Expanded>
              true == true
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="nothrow">
        <Section name="--nothrow">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.noThrow == true
            </Original>
            <Expanded>
              true == true
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="output filename">
        <Section name="-o filename">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.outputFilename == "filename.ext"
            </Original>
            <Expanded>
              "filename.ext" == "filename.ext"
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="output filename">
        <Section name="--out">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.outputFilename == "filename.ext"
            </Original>
            <Expanded>
              "filename.ext" == "filename.ext"
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="combinations">
        <Section name="Single character flags can be combined">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.abortAfter == 1
            </Original>
            <Expanded>
              1 == 1
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.shouldDebugBreak
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.noThrow == true
            </Original>
            <Expanded>
              true == true
            </Expanded>
          </Expression>
          <OverallResults successes="4" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="4" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="use-colour">
        <Section name="without option">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.useColour == UseColour::Auto
            </Original>
            <Expanded>
              0 == 0
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="use-colour">
        <Section name="auto">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.useColour == UseColour::Auto
            </Original>
            <Expanded>
              0 == 0
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="use-colour">
        <Section name="yes">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.useColour == UseColour::Yes
            </Original>
            <Expanded>
              1 == 1
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="use-colour">
        <Section name="no">
          <Expression success="true" type="CHECK_NOTHROW" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config )
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              config.useColour == UseColour::No
            </Original>
            <Expanded>
              2 == 2
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="use-colour">
        <Section name="error">
          <Expression success="true" type="REQUIRE_THROWS_WITH" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              parseIntoConfig( argv, config ), Contains( "colour mode must be one of" )
            </Original>
            <Expanded>
              parseIntoConfig( argv, config ), Contains( "colour mode must be one of" )
            </Expanded>
          </Expression>
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Long strings can be wrapped">
      <Section name="plain string">
        <Section name="No wrapping">
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString
            </Original>
            <Expanded>
              "one two three four"
==
"one two three four"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 18 ) ).toString() == testString
            </Original>
            <Expanded>
              "one two three four"
==
"one two three four"
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="plain string">
        <Section name="Wrapped once">
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 17 ) ).toString() == "one two three\nfour"
            </Original>
            <Expanded>
              "one two three
four"
==
"one two three
four"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 16 ) ).toString() == "one two three\nfour"
            </Original>
            <Expanded>
              "one two three
four"
==
"one two three
four"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 14 ) ).toString() == "one two three\nfour"
            </Original>
            <Expanded>
              "one two three
four"
==
"one two three
four"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 13 ) ).toString() == "one two three\nfour"
            </Original>
            <Expanded>
              "one two three
four"
==
"one two three
four"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 12 ) ).toString() == "one two\nthree four"
            </Original>
            <Expanded>
              "one two
three four"
==
"one two
three four"
            </Expanded>
          </Expression>
          <OverallResults successes="5" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="plain string">
        <Section name="Wrapped twice">
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour"
            </Original>
            <Expanded>
              "one two
three
four"
==
"one two
three
four"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 8 ) ).toString() == "one two\nthree\nfour"
            </Original>
            <Expanded>
              "one two
three
four"
==
"one two
three
four"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 7 ) ).toString() == "one two\nthree\nfour"
            </Original>
            <Expanded>
              "one two
three
four"
==
"one two
three
four"
            </Expanded>
          </Expression>
          <OverallResults successes="3" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="plain string">
        <Section name="Wrapped three times">
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour"
            </Original>
            <Expanded>
              "one
two
three
four"
==
"one
two
three
four"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 5 ) ).toString() == "one\ntwo\nthree\nfour"
            </Original>
            <Expanded>
              "one
two
three
four"
==
"one
two
three
four"
            </Expanded>
          </Expression>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="plain string">
        <Section name="Short wrap">
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( "abcdef", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndef"
            </Original>
            <Expanded>
              "abc-
def"
==
"abc-
def"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( "abcdefg", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndefg"
            </Original>
            <Expanded>
              "abc-
defg"
==
"abc-
defg"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( "abcdefgh", TextAttributes().setWidth( 4 ) ).toString() == "abc-\ndef-\ngh"
            </Original>
            <Expanded>
              "abc-
def-
gh"
==
"abc-
def-
gh"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 4 ) ).toString() == "one\ntwo\nthr-\nee\nfour"
            </Original>
            <Expanded>
              "one
two
thr-
ee
four"
==
"one
two
thr-
ee
four"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 3 ) ).toString() == "one\ntwo\nth-\nree\nfo-\nur"
            </Original>
            <Expanded>
              "one
two
th-
ree
fo-
ur"
==
"one
two
th-
ree
fo-
ur"
            </Expanded>
          </Expression>
          <OverallResults successes="5" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="plain string">
        <Section name="As container">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              text.size() == 4
            </Original>
            <Expanded>
              4 == 4
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              text[0] == "one"
            </Original>
            <Expanded>
              "one" == "one"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              text[1] == "two"
            </Original>
            <Expanded>
              "two" == "two"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              text[2] == "three"
            </Original>
            <Expanded>
              "three" == "three"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              text[3] == "four"
            </Original>
            <Expanded>
              "four" == "four"
            </Expanded>
          </Expression>
          <OverallResults successes="5" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="plain string">
        <Section name="Indent first line differently">
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              text.toString() == " one two\n    three\n    four"
            </Original>
            <Expanded>
              " one two
    three
    four"
==
" one two
    three
    four"
            </Expanded>
          </Expression>
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="With newlines">
        <Section name="No wrapping">
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 80 ) ).toString() == testString
            </Original>
            <Expanded>
              "one two
three four"
==
"one two
three four"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 18 ) ).toString() == testString
            </Original>
            <Expanded>
              "one two
three four"
==
"one two
three four"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 10 ) ).toString() == testString
            </Original>
            <Expanded>
              "one two
three four"
==
"one two
three four"
            </Expanded>
          </Expression>
          <OverallResults successes="3" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="With newlines">
        <Section name="Trailing newline">
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( "abcdef\n", TextAttributes().setWidth( 10 ) ).toString() == "abcdef\n"
            </Original>
            <Expanded>
              "abcdef
"
==
"abcdef
"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( "abcdef", TextAttributes().setWidth( 6 ) ).toString() == "abcdef"
            </Original>
            <Expanded>
              "abcdef" == "abcdef"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( "abcdef\n", TextAttributes().setWidth( 6 ) ).toString() == "abcdef\n"
            </Original>
            <Expanded>
              "abcdef
"
==
"abcdef
"
            </Expanded>
          </Expression>
          <OverallResults successes="3" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="With newlines">
        <Section name="Wrapped once">
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 9 ) ).toString() == "one two\nthree\nfour"
            </Original>
            <Expanded>
              "one two
three
four"
==
"one two
three
four"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 8 ) ).toString() == "one two\nthree\nfour"
            </Original>
            <Expanded>
              "one two
three
four"
==
"one two
three
four"
            </Expanded>
          </Expression>
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 7 ) ).toString() == "one two\nthree\nfour"
            </Original>
            <Expanded>
              "one two
three
four"
==
"one two
three
four"
            </Expanded>
          </Expression>
          <OverallResults successes="3" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="With newlines">
        <Section name="Wrapped twice">
          <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
            <Original>
              Text( testString, TextAttributes().setWidth( 6 ) ).toString() == "one\ntwo\nthree\nfour"
            </Original>
            <Expanded>
              "one
two
three
four"
==
"one
two
three
four"
            </Expanded>
          </Expression>
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="With tabs">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            Text( testString, TextAttributes().setWidth( 15 ) ).toString() == "one two three\n        four\n        five\n        six"
          </Original>
          <Expanded>
            "one two three
        four
        five
        six"
==
"one two three
        four
        five
        six"
          </Expanded>
        </Expression>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="replaceInPlace">
      <Section name="replace single char">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            replaceInPlace( letters, "b", "z" )
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            letters == "azcdefcg"
          </Original>
          <Expanded>
            "azcdefcg" == "azcdefcg"
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="replace two chars">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            replaceInPlace( letters, "c", "z" )
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            letters == "abzdefzg"
          </Original>
          <Expanded>
            "abzdefzg" == "abzdefzg"
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="replace first char">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            replaceInPlace( letters, "a", "z" )
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            letters == "zbcdefcg"
          </Original>
          <Expanded>
            "zbcdefcg" == "zbcdefcg"
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="replace last char">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            replaceInPlace( letters, "g", "z" )
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            letters == "abcdefcz"
          </Original>
          <Expanded>
            "abcdefcz" == "abcdefcz"
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="replace all chars">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            replaceInPlace( letters, letters, "replaced" )
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            letters == "replaced"
          </Original>
          <Expanded>
            "replaced" == "replaced"
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="replace no chars">
        <Expression success="true" type="CHECK_FALSE" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            !replaceInPlace( letters, "x", "z" )
          </Original>
          <Expanded>
            !false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            letters == letters
          </Original>
          <Expanded>
            "abcdefcg" == "abcdefcg"
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="escape '">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            replaceInPlace( s, "'", "|'" )
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
          <Original>
            s == "didn|'t"
          </Original>
          <Expanded>
            "didn|'t" == "didn|'t"
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Strings can be rendered with colour">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Text can be formatted using the Text class">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
        <Original>
          Text( "hi there" ).toString() == "hi there"
        </Original>
        <Expanded>
          "hi there" == "hi there"
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/TestMain.cpp" >
        <Original>
          Text( "hi there", narrow ).toString() == "hi\nthere"
        </Original>
        <Expanded>
          "hi
there"
==
"hi
there"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Long text is truncted">
      <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TestMain.cpp" >
        <Original>
          t.toString(), EndsWith( "... message truncated due to excessive size" )
        </Original>
        <Expanded>
          "******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
******************************************************************************-
************************
******************************************************************************-
... message truncated due to excessive size" ends with: "... message truncated due to excessive size"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="ManuallyRegistered">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Parsing a std::pair">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          (std::pair&lt;int, int>( 1, 2 )) == aNicePair
        </Original>
        <Expanded>
          std::pair( 1, 2 ) == std::pair( 1, 2 )
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Where there is more to the expression after the RHS">
      <Warning>
        Uncomment the code in this test to check that it gives a sensible compiler error
      </Warning>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Where the LHS is not a simple value">
      <Warning>
        Uncomment the code in this test to check that it gives a sensible compiler error
      </Warning>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="A failing expression with a non streamable type is still captured">
      <Expression success="false" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          &amp;o1 == &amp;o2
        </Original>
        <Expanded>
          0x<hex digits> == 0x<hex digits>
        </Expanded>
      </Expression>
      <Expression success="false" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          o1 == o2
        </Original>
        <Expanded>
          {?} == {?}
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="string literals of different sizes can be compared">
      <Expression success="false" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          std::string( "first" ) == "second"
        </Original>
        <Expanded>
          "first" == "second"
        </Expanded>
      </Expression>
      <OverallResult success="false"/>
    </TestCase>
    <TestCase name="An expression with side-effects should only be evaluated once">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          i++ == 7
        </Original>
        <Expanded>
          7 == 7
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          i++ == 8
        </Original>
        <Expanded>
          8 == 8
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Operators at different namespace levels not hijacked by Koenig lookup">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          0x<hex digits> == o
        </Original>
        <Expanded>
          3221225472 (0x<hex digits>) == {?}
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Demonstrate that a non-const == is not used">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          t == 1u
        </Original>
        <Expanded>
          {?} == 1
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Test enum bit values">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          0x<hex digits> == bit30and31
        </Original>
        <Expanded>
          3221225472 (0x<hex digits>) == 3221225472
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="boolean member">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          obj.prop != nullptr
        </Original>
        <Expanded>
          0x<hex digits> != nullptr
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="(unimplemented) static bools can be evaluated">
      <Section name="compare to true">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
          <Original>
            is_true&lt;true>::value == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
          <Original>
            true == is_true&lt;true>::value
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="compare to false">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
          <Original>
            is_true&lt;false>::value == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
          <Original>
            false == is_true&lt;false>::value
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="negation">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
          <Original>
            !is_true&lt;false>::value
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="double negation">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
          <Original>
            !!is_true&lt;true>::value
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="direct">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
          <Original>
            is_true&lt;true>::value
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE_FALSE" filename="projects/SelfTest/TrickyTests.cpp" >
          <Original>
            !is_true&lt;false>::value
          </Original>
          <Expanded>
            !false
          </Expanded>
        </Expression>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Objects that evaluated in boolean contexts can be checked">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          True
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          !False
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK_FALSE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          !False
        </Original>
        <Expanded>
          !false
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Assertions then sections">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          Catch::alwaysTrue()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Section name="A section">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
          <Original>
            Catch::alwaysTrue()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Section name="Another section">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
            <Original>
              Catch::alwaysTrue()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          Catch::alwaysTrue()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Section name="A section">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
          <Original>
            Catch::alwaysTrue()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Section name="Another other section">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
            <Original>
              Catch::alwaysTrue()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="non streamable - with conv. op">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          s == "7"
        </Original>
        <Expanded>
          "7" == "7"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Comparing function pointers">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          a
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          a == &amp;foo
        </Original>
        <Expanded>
          0x<hex digits> == 0x<hex digits>
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Comparing member function pointers">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          m == &amp;S::f
        </Original>
        <Expanded>
          0x<hex digits>
==
0x<hex digits>
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="pointer to class">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          p == 0
        </Original>
        <Expanded>
          NULL == 0
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="null_ptr">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/TrickyTests.cpp" >
        <Original>
          ptr.get() == nullptr
        </Original>
        <Expanded>
          NULL == nullptr
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="X/level/0/a">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="X/level/0/b">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="X/level/1/a">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="X/level/1/b">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="toString( has_toString )">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
        <Original>
          Catch::toString( item ) == "toString( has_toString )"
        </Original>
        <Expanded>
          "toString( has_toString )"
==
"toString( has_toString )"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="toString( has_maker )">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
        <Original>
          Catch::toString( item ) == "StringMaker&lt;has_maker>"
        </Original>
        <Expanded>
          "StringMaker&lt;has_maker>"
==
"StringMaker&lt;has_maker>"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="toString( has_maker_and_toString )">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
        <Original>
          Catch::toString( item ) == "toString( has_maker_and_toString )"
        </Original>
        <Expanded>
          "toString( has_maker_and_toString )"
==
"toString( has_maker_and_toString )"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="toString( vectors&lt;has_toString )">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
        <Original>
          Catch::toString( v ) == "{ {?} }"
        </Original>
        <Expanded>
          "{ {?} }" == "{ {?} }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="toString( vectors&lt;has_maker )">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
        <Original>
          Catch::toString( v ) == "{ StringMaker&lt;has_maker> }"
        </Original>
        <Expanded>
          "{ StringMaker&lt;has_maker> }"
==
"{ StringMaker&lt;has_maker> }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="toString( vectors&lt;has_maker_and_toString )">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringWhich.cpp" >
        <Original>
          Catch::toString( v ) == "{ StringMaker&lt;has_maker_and_toString> }"
        </Original>
        <Expanded>
          "{ StringMaker&lt;has_maker_and_toString> }"
==
"{ StringMaker&lt;has_maker_and_toString> }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Tracker">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          testCase.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          s1.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Section name="successfully close one section">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s1.isSuccessfullyCompleted()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            testCase.isComplete() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            ctx.completedCycle()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            testCase.isSuccessfullyCompleted()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <OverallResults successes="4" failures="0" expectedFailures="0"/>
      </Section>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          testCase.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          s1.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Section name="fail one section">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s1.isComplete()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s1.isSuccessfullyCompleted() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            testCase.isComplete() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            ctx.completedCycle()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            testCase.isSuccessfullyCompleted() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Section name="re-enter after failed section">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              testCase2.isOpen()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s1b.isOpen() == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              ctx.completedCycle()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              testCase.isComplete()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              testCase.isSuccessfullyCompleted()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <OverallResults successes="5" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="10" failures="0" expectedFailures="0"/>
      </Section>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          testCase.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          s1.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Section name="fail one section">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s1.isComplete()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s1.isSuccessfullyCompleted() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            testCase.isComplete() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            ctx.completedCycle()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            testCase.isSuccessfullyCompleted() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Section name="re-enter after failed section and find next section">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              testCase2.isOpen()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s1b.isOpen() == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s2.isOpen()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              ctx.completedCycle()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              testCase.isComplete()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              testCase.isSuccessfullyCompleted()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <OverallResults successes="6" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="11" failures="0" expectedFailures="0"/>
      </Section>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          testCase.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          s1.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Section name="successfully close one section, then find another">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s2.isOpen() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            testCase.isComplete() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Section name="Re-enter - skips S1 and enters S2">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              testCase2.isOpen()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s1b.isOpen() == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s2b.isOpen()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              ctx.completedCycle() == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Section name="Successfully close S2">
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                ctx.completedCycle()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s2b.isSuccessfullyCompleted()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                testCase2.isComplete() == false
              </Original>
              <Expanded>
                false == false
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                testCase2.isSuccessfullyCompleted()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <OverallResults successes="4" failures="0" expectedFailures="0"/>
          </Section>
          <OverallResults successes="8" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="10" failures="0" expectedFailures="0"/>
      </Section>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          testCase.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          s1.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Section name="successfully close one section, then find another">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s2.isOpen() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            testCase.isComplete() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Section name="Re-enter - skips S1 and enters S2">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              testCase2.isOpen()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s1b.isOpen() == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s2b.isOpen()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              ctx.completedCycle() == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Section name="fail S2">
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                ctx.completedCycle()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s2b.isComplete()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s2b.isSuccessfullyCompleted() == false
              </Original>
              <Expanded>
                false == false
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                testCase2.isSuccessfullyCompleted() == false
              </Original>
              <Expanded>
                false == false
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                testCase3.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s1c.isOpen() == false
              </Original>
              <Expanded>
                false == false
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s2c.isOpen() == false
              </Original>
              <Expanded>
                false == false
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                testCase3.isSuccessfullyCompleted()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <OverallResults successes="8" failures="0" expectedFailures="0"/>
          </Section>
          <OverallResults successes="12" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="14" failures="0" expectedFailures="0"/>
      </Section>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          testCase.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          s1.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Section name="open a nested section">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s2.isOpen()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s2.isComplete()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s1.isComplete() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s1.isComplete()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            testCase.isComplete() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            testCase.isComplete()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <OverallResults successes="6" failures="0" expectedFailures="0"/>
      </Section>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          testCase.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          s1.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Section name="start a generator">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            g1.isOpen()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            g1.index() == 0
          </Original>
          <Expanded>
            0 == 0
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            g1.isComplete() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s1.isComplete() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Section name="close outer section">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s1.isComplete() == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              testCase.isSuccessfullyCompleted() == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Section name="Re-enter for second generation">
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                testCase2.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s1b.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                g1b.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                g1b.index() == 1
              </Original>
              <Expanded>
                1 == 1
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s1.isComplete() == false
              </Original>
              <Expanded>
                false == false
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s1b.isComplete()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                g1b.isComplete()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                testCase2.isComplete()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <OverallResults successes="8" failures="0" expectedFailures="0"/>
          </Section>
          <OverallResults successes="10" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="14" failures="0" expectedFailures="0"/>
      </Section>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          testCase.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          s1.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Section name="start a generator">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            g1.isOpen()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            g1.index() == 0
          </Original>
          <Expanded>
            0 == 0
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            g1.isComplete() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s1.isComplete() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Section name="Start a new inner section">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s2.isOpen()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s2.isComplete()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s1.isComplete() == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              testCase.isComplete() == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Section name="Re-enter for second generation">
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                testCase2.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s1b.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                g1b.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                g1b.index() == 1
              </Original>
              <Expanded>
                1 == 1
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s2b.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s2b.isComplete()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                g1b.isComplete()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s1b.isComplete()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                testCase2.isComplete()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <OverallResults successes="9" failures="0" expectedFailures="0"/>
          </Section>
          <OverallResults successes="13" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="17" failures="0" expectedFailures="0"/>
      </Section>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          testCase.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
        <Original>
          s1.isOpen()
        </Original>
        <Expanded>
          true
        </Expanded>
      </Expression>
      <Section name="start a generator">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            g1.isOpen()
          </Original>
          <Expanded>
            true
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            g1.index() == 0
          </Original>
          <Expanded>
            0 == 0
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            g1.isComplete() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
          <Original>
            s1.isComplete() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Section name="Fail an inner section">
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s2.isOpen()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s2.isComplete()
            </Original>
            <Expanded>
              true
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s2.isSuccessfullyCompleted() == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              s1.isComplete() == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
            <Original>
              testCase.isComplete() == false
            </Original>
            <Expanded>
              false == false
            </Expanded>
          </Expression>
          <Section name="Re-enter for second generation">
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                testCase2.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s1b.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                g1b.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                g1b.index() == 0
              </Original>
              <Expanded>
                0 == 0
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s2b.isOpen() == false
              </Original>
              <Expanded>
                false == false
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                g1b.isComplete() == false
              </Original>
              <Expanded>
                false == false
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s1b.isComplete() == false
              </Original>
              <Expanded>
                false == false
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                testCase2.isComplete() == false
              </Original>
              <Expanded>
                false == false
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                testCase3.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s1c.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                g1c.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                g1c.index() == 1
              </Original>
              <Expanded>
                1 == 1
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s2c.isOpen()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s2c.isComplete()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                g1c.isComplete()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                s1c.isComplete()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/PartTrackerTests.cpp" >
              <Original>
                testCase3.isComplete()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <OverallResults successes="17" failures="0" expectedFailures="0"/>
          </Section>
          <OverallResults successes="22" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="26" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="std::pair&lt;int,std::string> -> toString">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
        <Original>
          Catch::toString( value ) == "{ 34, \"xyzzy\" }"
        </Original>
        <Expanded>
          "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="std::pair&lt;int,const std::string> -> toString">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
        <Original>
          Catch::toString(value) == "{ 34, \"xyzzy\" }"
        </Original>
        <Expanded>
          "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="std::vector&lt;std::pair&lt;std::string,int> > -> toString">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
        <Original>
          Catch::toString( pr ) == "{ { \"green\", 55 } }"
        </Original>
        <Expanded>
          "{ { "green", 55 } }"
==
"{ { "green", 55 } }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="pair&lt;pair&lt;int,const char *,pair&lt;std::string,int> > -> toString">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringPair.cpp" >
        <Original>
          Catch::toString( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }"
        </Original>
        <Expanded>
          "{ { 42, "Arthur" }, { "Ford", 24 } }"
==
"{ { 42, "Arthur" }, { "Ford", 24 } }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="vector&lt;int> -> toString">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
        <Original>
          Catch::toString(vv) == "{  }"
        </Original>
        <Expanded>
          "{  }" == "{  }"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
        <Original>
          Catch::toString(vv) == "{ 42 }"
        </Original>
        <Expanded>
          "{ 42 }" == "{ 42 }"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
        <Original>
          Catch::toString(vv) == "{ 42, 250 }"
        </Original>
        <Expanded>
          "{ 42, 250 }" == "{ 42, 250 }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="vector&lt;string> -> toString">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
        <Original>
          Catch::toString(vv) == "{  }"
        </Original>
        <Expanded>
          "{  }" == "{  }"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
        <Original>
          Catch::toString(vv) == "{ \"hello\" }"
        </Original>
        <Expanded>
          "{ "hello" }" == "{ "hello" }"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
        <Original>
          Catch::toString(vv) == "{ \"hello\", \"world\" }"
        </Original>
        <Expanded>
          "{ "hello", "world" }"
==
"{ "hello", "world" }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="vector&lt;int,allocator> -> toString">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
        <Original>
          Catch::toString(vv) == "{  }"
        </Original>
        <Expanded>
          "{  }" == "{  }"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
        <Original>
          Catch::toString(vv) == "{ 42 }"
        </Original>
        <Expanded>
          "{ 42 }" == "{ 42 }"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
        <Original>
          Catch::toString(vv) == "{ 42, 250 }"
        </Original>
        <Expanded>
          "{ 42, 250 }" == "{ 42, 250 }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="vec&lt;vec&lt;string,alloc>> -> toString">
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
        <Original>
          Catch::toString(v) == "{  }"
        </Original>
        <Expanded>
          "{  }" == "{  }"
        </Expanded>
      </Expression>
      <Expression success="true" type="REQUIRE" filename="projects/SelfTest/ToStringVector.cpp" >
        <Original>
          Catch::toString(v) == "{ { \"hello\" }, { \"world\" } }"
        </Original>
        <Expanded>
          "{ { "hello" }, { "world" } }"
==
"{ { "hello" }, { "world" } }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Parse test names and tags">
      <Section name="Empty test spec should have no filters">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Test spec from empty string should have no filters">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches(tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Test spec from just a comma should have no filters">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Test spec from name should have one filter">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Test spec from quoted name should have one filter">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Test spec from name should have one filter">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="4" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Wildcard at the start">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            parseTestSpec( "*a" ).matches( tcA ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="6" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Wildcard at the end">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            parseTestSpec( "a*" ).matches( tcA ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="6" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Wildcard at both ends">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            parseTestSpec( "*a*" ).matches( tcA ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="6" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Redundant wildcard at the start">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Redundant wildcard at the end">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Redundant wildcard at both ends">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Wildcard at both ends, redundant at start">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Just wildcard">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Single tag">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="4" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Single tag, two matches">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="4" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Two tags">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="4" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Two tags, spare separated">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="4" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Wildcarded name and tag">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Single tag exclusion">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="4" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="One tag exclusion and one tag inclusion">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="4" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="One tag exclusion and one wldcarded name inclusion">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="One tag exclusion, using exclude:, and one wldcarded name inclusion">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="name exclusion">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="wildcarded name exclusion">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="wildcarded name exclusion with tag inclusion">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="wildcarded name exclusion, using exclude:, with tag inclusion">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="two wildcarded names">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="empty tag">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="empty quoted name">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="quoted string followed by tag exclusion">
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.hasFilters() == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcA ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcB ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcC ) == false
          </Original>
          <Expanded>
            false == false
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK" filename="projects/SelfTest/CmdLineTests.cpp" >
          <Original>
            spec.matches( tcD ) == true
          </Original>
          <Expanded>
            true == true
          </Expanded>
        </Expression>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="tuple&lt;>">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
        <Original>
          "{ }" == Catch::toString(type{})
        </Original>
        <Expanded>
          "{ }" == "{ }"
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
        <Original>
          "{ }" == Catch::toString(value)
        </Original>
        <Expanded>
          "{ }" == "{ }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="tuple&lt;int>">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
        <Original>
          "{ 0 }" == Catch::toString(type{0})
        </Original>
        <Expanded>
          "{ 0 }" == "{ 0 }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="tuple&lt;float,int>">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
        <Original>
          "1.2f" == Catch::toString(float(1.2))
        </Original>
        <Expanded>
          "1.2f" == "1.2f"
        </Expanded>
      </Expression>
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
        <Original>
          "{ 1.2f, 0 }" == Catch::toString(type{1.2,0})
        </Original>
        <Expanded>
          "{ 1.2f, 0 }" == "{ 1.2f, 0 }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="tuple&lt;string,string>">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
        <Original>
          "{ \"hello\", \"world\" }" == Catch::toString(type{"hello","world"})
        </Original>
        <Expanded>
          "{ "hello", "world" }"
==
"{ "hello", "world" }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="tuple&lt;tuple&lt;int>,tuple&lt;>,float>">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
        <Original>
          "{ { 42 }, { }, 1.2f }" == Catch::toString(value)
        </Original>
        <Expanded>
          "{ { 42 }, { }, 1.2f }"
==
"{ { 42 }, { }, 1.2f }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="tuple&lt;nullptr,int,const char *>">
      <Expression success="true" type="CHECK" filename="projects/SelfTest/ToStringTuple.cpp" >
        <Original>
          "{ nullptr, 42, \"Catch me\" }" == Catch::toString(value)
        </Original>
        <Expanded>
          "{ nullptr, 42, "Catch me" }"
==
"{ nullptr, 42, "Catch me" }"
        </Expanded>
      </Expression>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Tag alias can be registered against tag patterns">
      <Section name="The same tag alias can only be registered once">
        <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
          <Original>
            what, Contains( "[@zzz]" )
          </Original>
          <Expanded>
            "error: tag alias, "[@zzz]" already registered.
	First seen at file:2
	Redefined at file:10" contains: "[@zzz]"
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
          <Original>
            what, Contains( "file" )
          </Original>
          <Expanded>
            "error: tag alias, "[@zzz]" already registered.
	First seen at file:2
	Redefined at file:10" contains: "file"
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
          <Original>
            what, Contains( "2" )
          </Original>
          <Expanded>
            "error: tag alias, "[@zzz]" already registered.
	First seen at file:2
	Redefined at file:10" contains: "2"
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK_THAT" filename="projects/SelfTest/TagAliasTests.cpp" >
          <Original>
            what, Contains( "10" )
          </Original>
          <Expanded>
            "error: tag alias, "[@zzz]" already registered.
	First seen at file:2
	Redefined at file:10" contains: "10"
          </Expanded>
        </Expression>
        <OverallResults successes="4" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Tag aliases must be of the form [@name]">
        <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
          <Original>
            registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
          </Original>
          <Expanded>
            registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) )
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
          <Original>
            registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) )
          </Original>
          <Expanded>
            registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) )
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
          <Original>
            registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) )
          </Original>
          <Expanded>
            registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) )
          </Expanded>
        </Expression>
        <Expression success="true" type="CHECK_THROWS" filename="projects/SelfTest/TagAliasTests.cpp" >
          <Original>
            registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) )
          </Original>
          <Expanded>
            registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) )
          </Expanded>
        </Expression>
        <OverallResults successes="4" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Anonymous test case 1">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Test case with one argument">
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Variadic macros">
      <Section name="Section with one argument">
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Scenario: Do that thing with the thing">
      <Section name="Given: This stuff exists">
        <Section name="When: I do this">
          <Section name="Then: it should do this">
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
              <Original>
                itDoesThis()
              </Original>
              <Expanded>
                true
              </Expanded>
            </Expression>
            <Section name="And: do that">
              <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
                <Original>
                  itDoesThat()
                </Original>
                <Expanded>
                  true
                </Expanded>
              </Expression>
              <OverallResults successes="1" failures="0" expectedFailures="0"/>
            </Section>
            <OverallResults successes="2" failures="0" expectedFailures="0"/>
          </Section>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Scenario: Vector resizing affects size and capacity">
      <Section name="Given: an empty vector">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
          <Original>
            v.size() == 0
          </Original>
          <Expanded>
            0 == 0
          </Expanded>
        </Expression>
        <Section name="When: it is made larger">
          <Section name="Then: the size and capacity go up">
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
              <Original>
                v.size() == 10
              </Original>
              <Expanded>
                10 == 10
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
              <Original>
                v.capacity() >= 10
              </Original>
              <Expanded>
                10 >= 10
              </Expanded>
            </Expression>
            <Section name="And when: it is made smaller again">
              <Section name="Then: the size goes down but the capacity stays the same">
                <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
                  <Original>
                    v.size() == 5
                  </Original>
                  <Expanded>
                    5 == 5
                  </Expanded>
                </Expression>
                <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
                  <Original>
                    v.capacity() >= 10
                  </Original>
                  <Expanded>
                    10 >= 10
                  </Expanded>
                </Expression>
                <OverallResults successes="2" failures="0" expectedFailures="0"/>
              </Section>
              <OverallResults successes="2" failures="0" expectedFailures="0"/>
            </Section>
            <OverallResults successes="4" failures="0" expectedFailures="0"/>
          </Section>
          <OverallResults successes="4" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="5" failures="0" expectedFailures="0"/>
      </Section>
      <Section name="Given: an empty vector">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
          <Original>
            v.size() == 0
          </Original>
          <Expanded>
            0 == 0
          </Expanded>
        </Expression>
        <Section name="When: we reserve more space">
          <Section name="Then: The capacity is increased but the size remains the same">
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
              <Original>
                v.capacity() >= 10
              </Original>
              <Expanded>
                10 >= 10
              </Expanded>
            </Expression>
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
              <Original>
                v.size() == 0
              </Original>
              <Expanded>
                0 == 0
              </Expanded>
            </Expression>
            <OverallResults successes="2" failures="0" expectedFailures="0"/>
          </Section>
          <OverallResults successes="2" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="3" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Scenario: This is a really long scenario name to see how the list command deals with wrapping">
      <Section name="Given: A section name that is so long that it cannot fit in a single console width">
        <Section name="When: The test headers are printed as part of the normal running of the scenario">
          <Section name="Then: The, deliberately very long and overly verbose (you see what I did there?) section names must wrap, along with an indent">
            <OverallResults successes="1" failures="0" expectedFailures="0"/>
          </Section>
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="1" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <TestCase name="Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or methods">
      <Section name="Given: No operations precede me">
        <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
          <Original>
            before == 0
          </Original>
          <Expanded>
            0 == 0
          </Expanded>
        </Expression>
        <Section name="When: We get the count">
          <Section name="Then: Subsequently values are higher">
            <Expression success="true" type="REQUIRE" filename="projects/SelfTest/BDDTests.cpp" >
              <Original>
                after > before
              </Original>
              <Expanded>
                1 > 0
              </Expanded>
            </Expression>
            <OverallResults successes="1" failures="0" expectedFailures="0"/>
          </Section>
          <OverallResults successes="1" failures="0" expectedFailures="0"/>
        </Section>
        <OverallResults successes="2" failures="0" expectedFailures="0"/>
      </Section>
      <OverallResult success="true"/>
    </TestCase>
    <OverallResults successes="824" failures="81" expectedFailures="18"/>
  </Group>
  <OverallResults successes="824" failures="80" expectedFailures="18"/>
</Catch>
