lazarus/components/tachart/test/UtilsTest.pas
ask c4940acd19 TAChart: Add copyright headers.
git-svn-id: trunk@26678 -
2010-07-16 08:29:11 +00:00

118 lines
2.7 KiB
ObjectPascal

{
*****************************************************************************
* *
* See the file COPYING.modifiedLGPL.txt, included in this distribution, *
* for details about the copyright. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
* *
*****************************************************************************
Authors: Alexander Klenin
}
unit UtilsTest;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FPCUnit, TestRegistry, TAChartUtils;
type
{ TIntervalListTest }
TIntervalListTest = class(TTestCase)
private
FIList: TIntervalList;
protected
procedure SetUp; override;
procedure TearDown; override;
published
procedure Basic;
procedure Intersect;
procedure Merge;
end;
implementation
{ TIntervalListTest }
procedure TIntervalListTest.Basic;
begin
AssertEquals(0, FIList.IntervalCount);
FIList.AddRange(1.0, 2.0);
AssertEquals(1, FIList.IntervalCount);
FIList.AddPoint(3.0);
AssertEquals(2, FIList.IntervalCount);
AssertEquals(3.0, FIList.Interval[1].FEnd);
FIList.Clear;
AssertEquals(0, FIList.IntervalCount);
end;
procedure TIntervalListTest.Intersect;
var
l, r: Double;
hint: Integer = 0;
begin
FIList.Clear;
FIList.AddRange(1.0, 2.0);
l := 5.0;
r := 6.0;
AssertFalse(FIList.Intersect(l, r, hint));
l := 1.5;
r := 6.0;
AssertTrue(FIList.Intersect(l, r, hint));
AssertEquals(2.0, r);
FIList.Epsilon := 0.1;
l := 0.5;
r := 2.5;
AssertTrue(FIList.Intersect(l, r, hint));
AssertEquals(0.9, l);
AssertEquals(2.1, r);
end;
procedure TIntervalListTest.Merge;
begin
FIList.Clear;
FIList.AddRange(1.0, 2.0);
FIList.AddRange(3.0, 4.0);
AssertEquals(2, FIList.IntervalCount);
FIList.AddRange(1.5, 2.5);
AssertEquals(2, FIList.IntervalCount);
AssertEquals(2.5, FIList.Interval[0].FEnd);
FIList.AddRange(3.5, 3.6);
AssertEquals(2, FIList.IntervalCount);
FIList.AddRange(2.5, 3.0);
AssertEquals(1, FIList.IntervalCount);
FIList.AddPoint(4.0);
AssertEquals(1, FIList.IntervalCount);
FIList.AddPoint(4.1);
AssertEquals(2, FIList.IntervalCount);
end;
procedure TIntervalListTest.SetUp;
begin
inherited SetUp;
FIList := TIntervalList.Create;
end;
procedure TIntervalListTest.TearDown;
begin
inherited TearDown;
FreeAndNil(FIList);
end;
initialization
RegisterTests([TIntervalListTest]);
end.