anchor.diff:  uses 
     DUnitX.TestFramework; 
     
  -const CanonicalVersion = '1.2.0';
  +const CanonicalVersion = '1.2.1';
   
   type
  -  [TestFixture('Equilateral')] 
  -  EquilateralTests = class(TObject) 
  +  [TestFixture('Equilateral Triangle')]
  +  EquilateralTests = class(TObject)
     public
       [Test]
   //    [Ignore('Comment the "[Ignore]" statement to run the test')]
  -    procedure True_if_all_sides_are_equal;
  -
  -    [Test]
  -    [Ignore]
  -    procedure False_if_any_side_is_unequal;
  -
  -    [Test]
  -    [Ignore]
  -    procedure False_if_no_sides_are_equal;
  -
  -    [Test]
  -    [Ignore]
  -    procedure All_zero_sides_are_illegal_so_the_triangle_is_not_equilateral;
  +    procedure AllSidesAreEqual;
  +
  +    [Test]
  +    [Ignore]
  +    procedure AnySideIsUnequal;
  +
  +    [Test]
  +    [Ignore]
  +    procedure NoSidesAreEqual;
  +
  +    [Test]
  +    [Ignore]
  +    procedure AllZeroSidesIsNotATriangle;
   
       [Test]
       [Ignore]
       procedure Sides_may_be_floats;
     end;
   
  -  [TestFixture('Isosceles')]
  +  [TestFixture('Isosceles Triangle')]
     IsoscelesTests = class(TObject)
     public
       [Test]
       [Ignore]
  -    procedure True_if_last_two_sides_are_equal;
  -
  -    [Test]
  -    [Ignore]
  -    procedure True_if_first_two_sides_are_equal;
  -
  -    [Test]
  -    [Ignore]
  -    procedure True_if_first_and_last_sides_are_equal;
  -
  -    [Test]
  -    [Ignore]
  -    procedure Equilateral_triangles_are_also_isosceles;
  -
  -    [Test]
  -    [Ignore]
  -    procedure False_if_no_sides_are_equal;
  -
  -    [Test]
  -    [Ignore]
  -    procedure Sides_that_violate_triangle_inequality_are_not_isosceles_even_if_two_are_equal_1;
  -
  -    [Test]
  -    [Ignore]
  -    procedure Sides_that_violate_triangle_inequality_are_not_isosceles_even_if_two_are_equal_2;
  -
  -    [Test]
  -    [Ignore]
  -    procedure Sides_that_violate_triangle_inequality_are_not_isosceles_even_if_two_are_equal_3;
  +    procedure LastTwoSidesAreEqual;
  +
  +    [Test]
  +    [Ignore]
  +    procedure FirstTwoSidesAreEqual;
  +
  +    [Test]
  +    [Ignore]
  +    procedure FirstAndLastSidesAreEqual;
  +
  +    [Test]
  +    [Ignore]
  +    procedure EquilateralTrianglesAreAlsoIsosceles;
  +
  +    [Test]
  +    [Ignore]
  +    procedure NoSidesAreEqual;
  +
  +    [Test]
  +    [Ignore]
  +    procedure FirstTriangleInequalityViolation;
  +
  +    [Test]
  +    [Ignore]
  +    procedure SecondTriangleInequalityViolation;
  +
  +    [Test]
  +    [Ignore]
  +    procedure ThirdTriangleInequalityViolation;
   
       [Test]
       [Ignore]
       procedure Sides_may_be_floats;
     end;
   
  -  [TestFixture('Scalene')]
  +  [TestFixture('Scalene Triangle')]
     ScaleneTests = class(TObject)
     public
       [Test]
       [Ignore]
  -    procedure True_if_no_sides_are_equal;
  -
  -    [Test]
  -    [Ignore]
  -    procedure False_if_all_sides_are_equal;
  -
  -    [Test]
  -    [Ignore]
  -    procedure False_if_two_sides_are_equal;
  -
  -    [Test]
  -    [Ignore]
  -    procedure Sides_that_violate_triangle_inequality_are_not_scalene_even_if_they_are_all_different;
  +    procedure NoSidesAreEqual;
  +
  +    [Test]
  +    [Ignore]
  +    procedure AllSidesAreEqual;
  +
  +    [Test]
  +    [Ignore]
  +    procedure TwoSidesAreEqual;
  +
  +    [Test]
  +    [Ignore]
  +    procedure MayNotViolateTriangleInequality;
   
       [Test]
       [Ignore]
  
positive.code: uses uTriangle; 
   
  {$region 'EquilateralTests'} 
  procedure EquilateralTests.True_if_all_sides_are_equal; 
  begin 
    Assert.AreEqual(true, Triangle.Sides(Equilateral, 2, 2, 2)); 
  end; 
   
  procedure EquilateralTests.False_if_any_side_is_unequal; 
  begin 
    Assert.AreEqual(false, Triangle.Sides(Equilateral, 2, 3, 2)); 
  end; 
   
  procedure EquilateralTests.False_if_no_sides_are_equal; 
  begin 
    Assert.AreEqual(false, Triangle.Sides(Equilateral, 5, 4, 6)); 
  end; 
   
  procedure EquilateralTests.All_zero_sides_are_illegal_so_the_triangle_is_not_equilateral; 
  begin 
    Assert.AreEqual(false, Triangle.Sides(Equilateral, 0, 0, 0)); 
  end; 
   
  
negative.code:   Assert.AreEqual(true, Triangle.Sides(Equilateral, 0.5, 0.5, 0.5)); 
  end; 
  {$endregion} 
  
  {$region'IsoscelesTests'} 
  procedure IsoscelesTests.LastTwoSidesAreEqual;
  begin 
    Assert.AreEqual(true, Triangle.Sides(Isosceles, 3, 4, 4)); 
  end;
  
  procedure IsoscelesTests.FirstTwoSidesAreEqual;
  begin
    Assert.AreEqual(true, Triangle.Sides(Isosceles, 4, 4, 3));
  end;
  
  procedure IsoscelesTests.FirstAndLastSidesAreEqual;
  begin
    Assert.AreEqual(true, Triangle.Sides(Isosceles, 4, 3, 4));
  end;
  
  procedure IsoscelesTests.EquilateralTrianglesAreAlsoIsosceles;
  begin
    Assert.AreEqual(true, Triangle.Sides(Isosceles, 4, 4, 4));
  end;
  
  procedure IsoscelesTests.NoSidesAreEqual;
  begin
    Assert.AreEqual(false, Triangle.Sides(Isosceles, 2, 3, 4));
  end;
  
  procedure IsoscelesTests.FirstTriangleInequalityViolation;
  begin
    Assert.AreEqual(false, Triangle.Sides(Isosceles, 1, 1, 3));
  end;
  
  procedure IsoscelesTests.SecondTriangleInequalityViolation;
  begin
    Assert.AreEqual(false, Triangle.Sides(Isosceles, 1, 3, 1));
  end;
  
  procedure IsoscelesTests.ThirdTriangleInequalityViolation;
  begin
    Assert.AreEqual(false, Triangle.Sides(Isosceles, 3, 1, 1));
  end;
  