1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
{
Copyright 2016-2017 Michalis Kamburelis.
This file is part of "Castle Game Engine".
"Castle Game Engine" is free software; see the file COPYING.txt,
included in this distribution, for details about the copyright.
"Castle Game Engine" 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.
----------------------------------------------------------------------------
}
{ Test CastleCurves unit. }
unit TestCastleCurves;
interface
uses fpcunit, testutils, testregistry, CastleBaseTestCase;
type
TTestCastleCurves = class(TCastleBaseTestCase)
published
procedure TestBoundingBox;
end;
implementation
uses SysUtils, Classes, Math,
CastleVectors, CastleUtils, CastleCurves, CastleBoxes;
procedure TTestCastleCurves.TestBoundingBox;
var
Curve: TPiecewiseCubicBezier;
begin
Curve := TPiecewiseCubicBezier.Create;
try
AssertBoxesEqual(TBox3D.Empty, Curve.BoundingBox);
Curve.UpdateControlPoints;
AssertBoxesEqual(TBox3D.Empty, Curve.BoundingBox); // still empty
Curve.ControlPoints.Add(Vector3(3, 4, 5));
Curve.ControlPoints.Add(Vector3(33, 44, 54));
Curve.UpdateControlPoints;
AssertBoxesEqual(Box3D(
Vector3(3, 4, 5),
Vector3(33, 44, 54)), Curve.BoundingBox);
finally FreeAndNil(Curve) end;
end;
initialization
RegisterTest(TTestCastleCurves);
end.
|