TAChart: Check for incorrect parameters in TListChartSource.AddXYList. Add tests.

git-svn-id: trunk@37578 -
This commit is contained in:
ask 2012-06-08 05:32:33 +00:00
parent 3aa1d2ee1d
commit 3d7ff766da
2 changed files with 24 additions and 1 deletions

View File

@ -45,6 +45,9 @@ type
function GetCount: Integer; override;
function GetItem(AIndex: Integer): PChartDataItem; override;
procedure SetYCount(AValue: Cardinal); override;
public
type
EYListEmptyError = class(EChartError);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
@ -387,8 +390,11 @@ function TListChartSource.AddXYList(
AX: Double; const AY: array of Double;
const ALabel: String; AColor: TChartColor): Integer;
begin
if Length(AY) = 0 then
raise EYListEmptyError.Create('AddXYList: Y List is empty');
Result := Add(AX, AY[0], ALabel, AColor);
SetYListInternal(Result, High(AY), @AY[1]);
if Length(AY) > 1 then
SetYListInternal(Result, High(AY), @AY[1]);
end;
procedure TListChartSource.Clear; inline;

View File

@ -392,6 +392,23 @@ begin
FSource.DataPoints.Add('1|2|3|4|?|t');
AssertEquals(3, FSource.YCount);
AssertEquals(4, FSource[1]^.YList[1]);
FSource.AddXYList(2, [7, 8, 9]);
AssertEquals(3, FSource.YCount);
AssertEquals(7, FSource[2]^.Y);
AssertEquals(8, FSource[2]^.YList[0]);
AssertEquals(9, FSource[2]^.YList[1]);
FSource.AddXYList(3, [10]);
AssertEquals(4, FSource.Count);
AssertEquals(3, FSource.YCount);
AssertEquals(10, FSource[3]^.Y);
AssertEquals(0, FSource[3]^.YList[0]);
try
FSource.AddXYList(4, []);
Fail('Empty YList');
except on E: Exception do
AssertTrue('Empty YList', E is TListChartSource.EYListEmptyError);
end;
end;
procedure TListSourceTest.SetUp;