anchor.diff:  begin
     SUT.LeaveSection(STR_MSG);
   
  -  CheckEquals(1, FOutput.WrittenLinesCount, 'WrittenLinesCount = 1');
  +  CheckEquals(0, FOutput.SectionLevel, '(SectionLevel = 0)::<#1>');
  +  CheckEquals(0, FOutput.WrittenLinesCount, 'WrittenLinesCount = 0');
  +
  +  SUT.EnterSection(STR_MSG);
  +  SUT.LeaveSection(STR_MSG);
  +
  +  CheckEquals(0, FOutput.SectionLevel, '(SectionLevel = 0)::<#2>');
  +  CheckEquals(2, FOutput.WrittenLinesCount, 'WrittenLinesCount = 2');
     CheckTrue(FOutput.LastWrittenLine.Contains(STR_MSG), 'CheckTrue::LastWrittenLine.Contains(STR_MSG)');
   end;
   
  
positive.code: begin
    SUT.EnterSection([STR_VAL, INT_VAL]);
  
    CheckEquals(1, FOutput.WrittenLinesCount, 'WrittenLinesCount = 1');
    CheckTrue(FOutput.LastWrittenLine.Contains(STR_VAL), 'CheckTrue::LastWrittenLine.Contains(STR_VAL)');
    CheckTrue(FOutput.LastWrittenLine.Contains(INT_VAL.ToString), 'CheckTrue::LastWrittenLine.Contains(INT_VAL)');
  
negative.code: begin
    SUT.EnterSectionVal([STR_VAL, INT_VAL, Self]);
  
    CheckEquals(1, FOutput.SectionLevel, 'SectionLevel = 1');
    CheckEquals(1, FOutput.WrittenLinesCount, 'WrittenLinesCount = 1');
    CheckTrue(FOutput.LastWrittenLine.Contains(STR_VAL), 'CheckTrue::LastWrittenLine.Contains(STR_VAL)');
    CheckTrue(FOutput.LastWrittenLine.Contains(INT_VAL.ToString), 'CheckTrue::LastWrittenLine.Contains(INT_VAL)');
    CheckTrue(FOutput.LastWrittenLine.Contains(Self.ToString), 'CheckTrue::LastWrittenLine.Contains(Self)');
  end;
  
  procedure TestTLogger.TestLeaveSection;
  