summaryrefslogtreecommitdiff
path: root/tikzit/src/common/test
diff options
context:
space:
mode:
authorAleks Kissinger <aleks0@gmail.com>2017-01-11 16:33:00 +0100
committerAleks Kissinger <aleks0@gmail.com>2017-01-11 16:33:00 +0100
commit1802977b95d29198f27535b1b731d1180c083667 (patch)
tree032c4beb7411d88d76794a25f0e3b00a3437da3e /tikzit/src/common/test
parentff79a9c213dfd75ea00ed5112d3a6e314601e064 (diff)
made new subdir
Diffstat (limited to 'tikzit/src/common/test')
-rw-r--r--tikzit/src/common/test/Makefile14
-rw-r--r--tikzit/src/common/test/color.m80
-rw-r--r--tikzit/src/common/test/common.m34
-rw-r--r--tikzit/src/common/test/maths.m562
-rw-r--r--tikzit/src/common/test/parser.m86
-rw-r--r--tikzit/src/common/test/test.h57
-rw-r--r--tikzit/src/common/test/test.m175
7 files changed, 0 insertions, 1008 deletions
diff --git a/tikzit/src/common/test/Makefile b/tikzit/src/common/test/Makefile
deleted file mode 100644
index d158d16..0000000
--- a/tikzit/src/common/test/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-OBJC = gcc -MMD -MP -DSTAND_ALONE -DGNUSTEP -DGNUSTEP_BASE_LIBRARY=1 -DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing -fPIC -Wall -DGSWARN -DGSDIAGNOSE -Wno-import -O0 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fgnu-runtime -fconstant-string-class=NSConstantString -I. -I.. -I/users/alemer/GNUstep/Library/Headers -std=c99 -D_GNU_SOURCE -rdynamic -fgnu-runtime -L/users/alemer/GNUstep/Library/Libraries -L/usr/local/lib64 -L/usr/lib64 -lgnustep-base -lpthread -lobjc -lm
-
-maths_test_objects = test.m maths.m ../util.m
-color_test_objects = test.m color.m ../ColorRGB.m ../util.m ../BasicMapTable.m ../RColor.m
-
-test: maths-test color-test
- ./maths-test
- ./color-test
-
-maths-test: $(maths_test_objects)
- $(OBJC) $(maths_test_objects) -o $@
-
-color-test: $(color_test_objects)
- $(OBJC) $(color_test_objects) -o $@
diff --git a/tikzit/src/common/test/color.m b/tikzit/src/common/test/color.m
deleted file mode 100644
index 48a6ff4..0000000
--- a/tikzit/src/common/test/color.m
+++ /dev/null
@@ -1,80 +0,0 @@
-//
-// color.m
-// TikZiT
-//
-// Copyright 2010 Aleks Kissinger. All rights reserved.
-//
-//
-// This file is part of TikZiT.
-//
-// TikZiT is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// TikZiT 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. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with TikZiT. If not, see <http://www.gnu.org/licenses/>.
-//
-#import "test/test.h"
-#import "ColorRGB.h"
-
-#ifdef STAND_ALONE
-void runTests() {
-#else
-void testColor() {
-#endif
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- startTestBlock(@"color");
-
- ColorRGB *red = [ColorRGB colorWithRed:255 green:0 blue:0];
- ColorRGB *lime = [ColorRGB colorWithRed:0 green:255 blue:0];
- ColorRGB *green = [ColorRGB colorWithRed:0 green:128 blue:0];
- TEST(@"Recognised red",
- [red name] != nil &&
- [[red name] isEqualToString:@"Red"]);
- TEST(@"Recognised lime",
- [lime name] != nil &&
- [[lime name] isEqualToString:@"Lime"]);
- TEST(@"Recognised green",
- [green name] != nil &&
- [[green name] isEqualToString:@"Green"]);
-
- ColorRGB *floatRed = [ColorRGB colorWithFloatRed:1.0f green:0.0f blue:0.0f];
- ColorRGB *floatLime = [ColorRGB colorWithFloatRed:0.0f green:1.0f blue:0.0f];
- ColorRGB *floatGreen = [ColorRGB colorWithFloatRed:0.0f green:0.5f blue:0.0f];
-
- TEST(@"Float red equal to int red", [floatRed isEqual:red]);
- TEST(@"Float lime equal to int lime", [floatLime isEqual:lime]);
- TEST(@"Float green equal to int green", [floatGreen isEqual:green]);
-
- TEST(@"Recognised float red",
- [floatRed name] != nil &&
- [[floatRed name] isEqualToString:@"Red"]);
-
- TEST(@"Recognised float lime",
- [floatLime name] != nil &&
- [[floatLime name] isEqualToString:@"Lime"]);
-
- TEST(@"Recognised float green",
- [floatGreen name] != nil &&
- [[floatGreen name] isEqualToString:@"Green"]);
-
- [floatRed setRedFloat:0.99f];
- TEST(@"Nudged red, not recognised now", [floatRed name] == nil);
- [floatRed setToClosestHashed];
- TEST(@"Set to closest hashed, reconised again",
- [floatRed name] != nil &&
- [[floatRed name] isEqualToString:@"Red"]);
-
- TEST(@"Red has correct hex (ff0000)", [[red hexName] isEqualToString:@"hexcolor0xff0000"]);
- TEST(@"Lime has correct hex (00ff00)", [[lime hexName] isEqualToString:@"hexcolor0x00ff00"]);
- TEST(@"Green has correct hex (008000)", [[green hexName] isEqualToString:@"hexcolor0x008000"]);
-
- endTestBlock(@"color");
- [pool drain];
-}
diff --git a/tikzit/src/common/test/common.m b/tikzit/src/common/test/common.m
deleted file mode 100644
index c9ac980..0000000
--- a/tikzit/src/common/test/common.m
+++ /dev/null
@@ -1,34 +0,0 @@
-//
-// common.m
-// TikZiT
-//
-// Copyright 2010 Aleks Kissinger. All rights reserved.
-//
-//
-// This file is part of TikZiT.
-//
-// TikZiT is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// TikZiT 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. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with TikZiT. If not, see <http://www.gnu.org/licenses/>.
-//
-#import "test/test.h"
-void testParser();
-void testColor();
-void testMaths();
-
-void testCommon() {
- startTestBlock(@"common");
- testParser();
- testColor();
- testMaths();
- endTestBlock(@"common");
-}
diff --git a/tikzit/src/common/test/maths.m b/tikzit/src/common/test/maths.m
deleted file mode 100644
index a11e58e..0000000
--- a/tikzit/src/common/test/maths.m
+++ /dev/null
@@ -1,562 +0,0 @@
-//
-// TikZiT
-//
-// Copyright 2011 Alex Merry
-//
-// This file is part of TikZiT.
-//
-// TikZiT is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// TikZiT 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. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with TikZiT. If not, see <http://www.gnu.org/licenses/>.
-//
-
-#import "../util.h"
-
-#import "test.h"
-
-void testRectAroundPoints() {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- startTestBlock(@"NSRectAroundPoints");
-
- NSRect rect = NSRectAroundPoints (NSZeroPoint, NSZeroPoint);
- assertRectsEqual (@"(0,0) and (0,0)", rect, NSZeroRect);
-
- rect = NSRectAroundPoints (NSZeroPoint, NSMakePoint (1.0f, 1.0f));
- assertRectsEqual (@"(0,0) and (1,1)", rect, NSMakeRect (0.0f, 0.0f, 1.0f, 1.0f));
-
- rect = NSRectAroundPoints (NSMakePoint (-1.0f, 1.0f), NSMakePoint (1.0f, -1.0f));
- assertRectsEqual (@"(-1,1) and (1,-1)", rect, NSMakeRect (-1.0f, -1.0f, 2.0f, 2.0f));
-
- endTestBlock(@"NSRectAroundPoints");
- [pool drain];
-}
-
-void testRectAroundPointsWithPadding() {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- startTestBlock(@"NSRectAroundPointsWithPadding");
-
- NSRect rect = NSRectAroundPointsWithPadding (NSZeroPoint, NSZeroPoint, 0.0f);
- assertRectsEqual (@"(0,0) and (0,0); 0 padding", rect, NSZeroRect);
-
- rect = NSRectAroundPointsWithPadding (NSZeroPoint, NSZeroPoint, 0.2f);
- assertRectsEqual (@"(0,0) and (0,0); 0.2 padding", rect, NSMakeRect (-0.2f, -0.2f, 0.4f, 0.4f));
-
- rect = NSRectAroundPointsWithPadding (NSZeroPoint, NSMakePoint (1.0f, 1.0f), -0.2f);
- assertRectsEqual (@"(0,0) and (1,1); -0.2 padding", rect, NSMakeRect (0.2f, 0.2f, 0.6f, 0.6f));
-
- endTestBlock(@"NSRectAroundPointsWithPadding");
- [pool drain];
-}
-
-void testGoodAtan() {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- startTestBlock(@"good_atan");
-
- assertFloatsEqual (@"0.0, 0.0", good_atan (0.0f, 0.0f), 0.0f);
- assertFloatsEqual (@"0.0, 1.0", good_atan (0.0f, 1.0f), 0.5f * M_PI);
- assertFloatsEqual (@"0.0, -1.0", good_atan (0.0f, -1.0f), 1.5f * M_PI);
- assertFloatsEqual (@"1.0, 0.0", good_atan (1.0f, 0.0f), 0.0f);
- assertFloatsEqual (@"1.0, 0.1", good_atan (1.0f, 0.1f), 0.0996687f);
-
- endTestBlock(@"good_atan");
- [pool drain];
-}
-
-void testBezierInterpolate() {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- startTestBlock(@"bezierInterpolate");
-
- assertFloatsEqual (@"0.0, (0.0, 0.1, 0.2, 0.3)", bezierInterpolate (0.0f, 0.0f, 0.1f, 0.2f, 0.3f), 0.0f);
- assertFloatsEqual (@"1.0, (0.0, 0.1, 0.2, 0.3)", bezierInterpolate (1.0f, 0.0f, 0.1f, 0.2f, 0.3f), 0.3f);
- assertFloatsEqual (@"0.5, (0.0, 0.1, 0.2, 0.3)", bezierInterpolate (0.5f, 0.0f, 0.1f, 0.2f, 0.3f), 0.15f);
- // FIXME: other tests
-
- endTestBlock(@"bezierInterpolate");
- [pool drain];
-}
-
-void testLineSegmentsIntersect() {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- startTestBlock(@"lineSegmentsIntersect");
-
- BOOL result = NO;
- NSPoint intersection = NSMakePoint (-1.0f, -1.0f);
-
- result = lineSegmentsIntersect (NSMakePoint (-1.0f, -1.0f), NSMakePoint (1.0f, 1.0f),
- NSMakePoint (-1.0f, 1.0f), NSMakePoint (1.0f, -1.0f),
- &intersection);
- TEST (@"Cross at zero: has intersection", result);
- assertPointsEqual (@"Cross at zero: intersection value", intersection, NSZeroPoint);
-
- result = lineSegmentsIntersect (NSMakePoint (-1.0f, -1.0f), NSMakePoint (-0.5f, -0.5f),
- NSMakePoint (-1.0f, 1.0f), NSMakePoint (1.0f, -1.0f),
- &intersection);
- TEST (@"Fail to cross at zero", !result);
-
- result = lineSegmentsIntersect (NSMakePoint (1.0f, 1.0f), NSMakePoint (1.0f, -1.0f),
- NSMakePoint (0.0f, 0.0f), NSMakePoint (1.0f, 0.0f),
- &intersection);
- TEST (@"Touch at one: has intersection", result);
- assertPointsEqual (@"Touch at one: intersection value", intersection, NSMakePoint (1.0f, 0.0f));
-
- endTestBlock(@"lineSegmentsIntersect");
- [pool drain];
-}
-
-void testLineSegmentIntersectsRect() {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- startTestBlock(@"lineSegmentIntersectsRect");
-
- BOOL result = NO;
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (-1.0f, -1.0f),
- NSMakePoint (0.0f, 0.0f),
- NSZeroRect);
- TEST (@"Zero rect; line touches zero", result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (-1.0f, -1.0f),
- NSMakePoint (-0.1f, -0.1f),
- NSZeroRect);
- TEST (@"Zero rect; line short of zero", !result);
-
- NSRect rect = NSMakeRect (1.0f, 1.0f, 1.0f, 1.0f);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (0.0f, 0.0f),
- NSMakePoint (3.0f, 1.0f),
- rect);
- TEST (@"Line underneath", !result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (0.0f, 0.0f),
- NSMakePoint (1.0f, 3.0f),
- rect);
- TEST (@"Line to left", !result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (0.0f, 2.0f),
- NSMakePoint (3.0f, 3.0f),
- rect);
- TEST (@"Line above", !result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (2.0f, 0.0f),
- NSMakePoint (3.0f, 3.0f),
- rect);
- TEST (@"Line to right", !result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (0.0f, 0.0f),
- NSMakePoint (0.9f, 0.9f),
- rect);
- TEST (@"Line short", !result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (1.1f, 1.1f),
- NSMakePoint (1.9f, 1.9f),
- rect);
- TEST (@"Line inside", result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (0.0f, 1.5f),
- NSMakePoint (3.0f, 1.5f),
- rect);
- TEST (@"Horizontal line through", result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (1.5f, 0.0f),
- NSMakePoint (1.5f, 3.0f),
- rect);
- TEST (@"Vertical line through", result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (0.5f, 1.0f),
- NSMakePoint (2.0f, 2.5f),
- rect);
- TEST (@"Cut top and left", result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (2.0f, 0.5f),
- NSMakePoint (0.5f, 2.0f),
- rect);
- TEST (@"Cut bottom and left", result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (1.0f, 0.5f),
- NSMakePoint (2.5f, 2.0f),
- rect);
- TEST (@"Cut bottom and right", result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (0.0f, 1.0f),
- NSMakePoint (2.0f, 3.0f),
- rect);
- TEST (@"Touch top left", result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (1.0f, 0.0f),
- NSMakePoint (3.0f, 2.0f),
- rect);
- TEST (@"Touch bottom right", result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (1.0f, 0.0f),
- NSMakePoint (1.0f, 3.0f),
- rect);
- TEST (@"Along left side", result);
-
- result = lineSegmentIntersectsRect (
- NSMakePoint (0.0f, 1.0f),
- NSMakePoint (3.0f, 1.0f),
- rect);
- TEST (@"Along bottom side", result);
-
- endTestBlock(@"lineSegmentIntersectsRect");
- [pool drain];
-}
-
-struct line_bezier_test {
- NSString *msg;
- NSPoint lstart;
- NSPoint lend;
- NSPoint c0;
- NSPoint c1;
- NSPoint c2;
- NSPoint c3;
- BOOL expectedResult;
- float expectedT;
- NSPoint expectedIntersect;
-};
-
-static struct line_bezier_test line_bezier_tests[] = {
- {
- @"Outside box",
- {0.0f, 0.0f},
- {1.0f, 0.0f},
- {0.0f, 1.0f},
- {0.0f, 2.0f},
- {1.0f, 2.0f},
- {1.0f, 1.0f},
- NO,
- -1.0f,
- {0.0f, 0.0f}
- },
- {
- @"Single intersect",
- {100.0f, 20.0f},
- {195.0f, 255.0f},
- {93.0f, 163.0f},
- {40.0f, 30.0f},
- {270.0f, 115.0f},
- {219.0f, 178.0f},
- YES,
- -0.4f,
- {129.391693f, 92.705772f}
- },
- {
- @"Double intersect",
- {100.0f, 20.0f},
- {195.0f, 255.0f},
- {93.0f, 163.0f},
- {40.0f, 30.0f},
- {270.0f, 115.0f},
- {154.0f, 212.0f},
- YES,
- -0.909f,
- {170.740646f,194.990021f}
- },
- {
- @"Near miss",
- {100.0f, 20.0f},
- {195.0f, 255.0f},
- {93.0f, 163.0f},
- {40.0f, 30.0f},
- {176.0f, 100.0f},
- {154.0f, 212.0f},
- NO,
- -1.0f,
- {0.0f,0.0f}
- }
-};
-static unsigned int n_line_bezier_tests = sizeof (line_bezier_tests) / sizeof (line_bezier_tests[0]);
-
-void testLineSegmentIntersectsBezier() {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- startTestBlock(@"lineSegmentIntersectsBezier");
-
- for (unsigned int i = 0; i < n_line_bezier_tests; ++i) {
- NSPoint intersect;
- BOOL result = lineSegmentIntersectsBezier (
- line_bezier_tests[i].lstart,
- line_bezier_tests[i].lend,
- line_bezier_tests[i].c0,
- line_bezier_tests[i].c1,
- line_bezier_tests[i].c2,
- line_bezier_tests[i].c3,
- &intersect);
- if (result) {
- if (line_bezier_tests[i].expectedT < 0.0f) {
- assertPointsEqual (line_bezier_tests[i].msg, intersect, line_bezier_tests[i].expectedIntersect);
- } else {
- assertPointsEqual (line_bezier_tests[i].msg, intersect,
- bezierInterpolateFull (line_bezier_tests[i].expectedT, line_bezier_tests[i].c0, line_bezier_tests[i].c1, line_bezier_tests[i].c2, line_bezier_tests[i].c3));
- }
- } else {
- if (line_bezier_tests[i].expectedResult)
- fail (line_bezier_tests[i].msg);
- else
- pass (line_bezier_tests[i].msg);
- }
- }
-
-BOOL lineSegmentIntersectsBezier (NSPoint lstart, NSPoint lend, NSPoint c0, NSPoint c1, NSPoint c2, NSPoint c3, NSPoint *result);
- endTestBlock(@"lineSegmentIntersectsBezier");
- [pool drain];
-}
-
-struct exit_point_test {
- NSString *msg;
- NSPoint rayStart;
- float angle;
- NSRect rect;
- NSPoint expected;
-};
-
-static struct exit_point_test exit_point_tests[] = {
- {
- @"0.0 rads",
- {0.0f, 0.0f},
- 0.0f,
- {{-1.0f, -1.0f}, {2.0f, 2.0f}},
- {1.0f, 0.0f}
- },
- {
- @"pi/2 rads",
- {0.0f, 0.0f},
- M_PI / 2.0f,
- {{-1.0f, -1.0f}, {2.0f, 2.0f}},
- {0.0f, 1.0f}
- },
- {
- @"-pi/2 rads",
- {0.0f, 0.0f},
- -M_PI / 2.0f,
- {{-1.0f, -1.0f}, {2.0f, 2.0f}},
- {0.0f, -1.0f}
- },
- {
- @"pi rads",
- {0.0f, 0.0f},
- M_PI,
- {{-1.0f, -1.0f}, {2.0f, 2.0f}},
- {-1.0f, 0.0f}
- },
- {
- @"-pi rads",
- {0.0f, 0.0f},
- -M_PI,
- {{-1.0f, -1.0f}, {2.0f, 2.0f}},
- {-1.0f, 0.0f}
- },
- {
- @"pi/4 rads",
- {0.0f, 0.0f},
- M_PI / 4.0f,
- {{-1.0f, -1.0f}, {2.0f, 2.0f}},
- {1.0f, 1.0f}
- },
- {
- @"3pi/4 rads",
- {0.0f, 0.0f},
- (3.0f * M_PI) / 4.0f,
- {{-1.0f, -1.0f}, {2.0f, 2.0f}},
- {-1.0f, 1.0f}
- },
- {
- @"-pi/4 rads",
- {0.0f, 0.0f},
- -M_PI / 4.0f,
- {{-1.0f, -1.0f}, {2.0f, 2.0f}},
- {1.0f, -1.0f}
- },
- {
- @"-3pi/4 rads",
- {0.0f, 0.0f},
- (-3.0f * M_PI) / 4.0f,
- {{-1.0f, -1.0f}, {2.0f, 2.0f}},
- {-1.0f, -1.0f}
- },
- {
- @"pi/8 rads",
- {0.0f, 0.0f},
- M_PI / 8.0f,
- {{-1.0f, -1.0f}, {2.0f, 2.0f}},
- {1.0f, 0.414213562373095f}
- },
- {
- @"3pi/8 rads",
- {0.0f, 0.0f},
- 3.0f * M_PI / 8.0f,
- {{-1.0f, -1.0f}, {2.0f, 2.0f}},
- {0.414213562373095f, 1.0f}
- },
- {
- @"-5pi/8 rads",
- {0.0f, 0.0f},
- -5.0f * M_PI / 8.0f,
- {{-1.0f, -1.0f}, {2.0f, 2.0f}},
- {-0.414213562373095f, -1.0f}
- },
- {
- @"-7pi/8 rads",
- {0.0f, 0.0f},
- -7.0f * M_PI / 8.0f,
- {{-1.0f, -1.0f}, {2.0f, 2.0f}},
- {-1.0f, -0.414213562373095f}
- },
- {
- @"pi/8 rads; origin (1,1)",
- {1.0f, 1.0f},
- M_PI / 8.0f,
- {{0.0f, 0.0f}, {2.0f, 2.0f}},
- {2.0f, 1.414213562373095f}
- },
- {
- @"7pi/8 rads; origin (-2,2)",
- {-2.0f, 2.0f},
- 7.0f * M_PI / 8.0f,
- {{-3.0f, 1.0f}, {2.0f, 2.0f}},
- {-3.0f, 2.414213562373095f}
- },
- {
- @"pi/8 rads; origin (1,1); SW of box",
- {1.0f, 1.0f},
- M_PI / 8.0f,
- {{1.0f, 1.0f}, {1.0f, 1.0f}},
- {2.0f, 1.414213562373095f}
- },
- {
- @"pi/8 rads; origin (1,1); SE of box",
- {1.0f, 1.0f},
- M_PI / 8.0f,
- {{0.0f, 1.0f}, {1.0f, 1.0f}},
- {1.0f, 1.0f}
- },
- {
- @"pi/8 rads; origin (1,1); NE of box",
- {1.0f, 1.0f},
- M_PI / 8.0f,
- {{0.0f, 1.0f}, {1.0f, 1.0f}},
- {1.0f, 1.0f}
- },
- {
- @"pi/8 rads; origin (1,1); NW of box",
- {1.0f, 1.0f},
- M_PI / 8.0f,
- {{1.0f, 0.0f}, {1.0f, 1.0f}},
- {1.0f, 1.0f}
- },
- {
- @"pi/8 rads; origin (1,1); N of box",
- {1.0f, 1.0f},
- M_PI / 8.0f,
- {{0.5f, 0.0f}, {1.0f, 1.0f}},
- {1.0f, 1.0f}
- },
- {
- @"7pi/8 rads; origin (1,1); N of box",
- {1.0f, 1.0f},
- 7.0f * M_PI / 8.0f,
- {{0.5f, 0.0f}, {1.0f, 1.0f}},
- {1.0f, 1.0f}
- },
- {
- @"-pi/8 rads; origin (1,1); S of box",
- {1.0f, 1.0f},
- -M_PI / 8.0f,
- {{0.5f, 1.0f}, {1.0f, 1.0f}},
- {1.0f, 1.0f}
- },
- {
- @"-pi/8 rads; origin (1,1); E of box",
- {1.0f, 1.0f},
- -M_PI / 8.0f,
- {{0.0f, 0.5f}, {1.0f, 1.0f}},
- {1.0f, 1.0f}
- },
- {
- @"-7pi/8 rads; origin (1,1); W of box",
- {1.0f, 1.0f},
- -7.0f * M_PI / 8.0f,
- {{1.0f, 0.5f}, {1.0f, 1.0f}},
- {1.0f, 1.0f}
- },
- {
- @"7pi/8 rads; origin (1,1); W of box",
- {1.0f, 1.0f},
- 7.0f * M_PI / 8.0f,
- {{1.0f, 0.5f}, {1.0f, 1.0f}},
- {1.0f, 1.0f}
- },
- {
- @"pi/8 rads; origin (1,1); leave through top",
- {1.0f, 1.0f},
- M_PI / 8.0f,
- {{0.9f, 0.1f}, {1.0f, 1.0f}},
- {1.2414213562373f, 1.1f}
- },
- {
- @"0 rads; origin (1,1); N of box",
- {1.0f, 1.0f},
- 0.0f,
- {{0.5f, 0.0f}, {1.0f, 1.0f}},
- {1.5f, 1.0f}
- }
-};
-static unsigned int n_exit_point_tests = sizeof (exit_point_tests) / sizeof (exit_point_tests[0]);
-
-void testFindExitPointOfRay() {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- startTestBlock(@"findExitPointOfRay");
-
- for (unsigned int i = 0; i < n_exit_point_tests; ++i) {
- NSPoint exitPoint = findExitPointOfRay (
- exit_point_tests[i].rayStart,
- exit_point_tests[i].angle,
- exit_point_tests[i].rect);
- assertPointsEqual (exit_point_tests[i].msg, exitPoint, exit_point_tests[i].expected);
- }
-
- endTestBlock(@"findExitPointOfRay");
- [pool drain];
-}
-
-#ifdef STAND_ALONE
-void runTests() {
-#else
-void testMaths() {
-#endif
- startTestBlock(@"maths");
- testRectAroundPoints();
- testRectAroundPointsWithPadding();
- testGoodAtan();
- testBezierInterpolate();
- testLineSegmentsIntersect();
- testLineSegmentIntersectsRect();
- testFindExitPointOfRay();
- testLineSegmentIntersectsBezier();
- endTestBlock(@"maths");
-}
-
-// vim:ft=objc:ts=4:sts=4:sw=4:noet
diff --git a/tikzit/src/common/test/parser.m b/tikzit/src/common/test/parser.m
deleted file mode 100644
index 3346acd..0000000
--- a/tikzit/src/common/test/parser.m
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-// parser.m
-// TikZiT
-//
-// Copyright 2010 Aleks Kissinger. All rights reserved.
-//
-//
-// This file is part of TikZiT.
-//
-// TikZiT is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// TikZiT 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. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with TikZiT. If not, see <http://www.gnu.org/licenses/>.
-//
-#import "test/test.h"
-#import "TikzGraphAssembler.h"
-
-
-#ifdef STAND_ALONE
-void runTests() {
-#else
-void testParser() {
-#endif
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- startTestBlock(@"parser");
-
- [TikzGraphAssembler setup];
-
- NodeStyle *rn = [NodeStyle defaultNodeStyleWithName:@"rn"];
- NSArray *styles = [NSArray arrayWithObject:rn];
-
- NSString *tikz =
- @"\\begin{tikzpicture}[dotpic]"
- @" \\begin{pgfonlayer}{foo}" //ignored
- @" \\node [style=rn] (0) at (-2,3.4) {stuff{$\\alpha$ in here}};"
- @" \\node (b) at (1,1) {};"
- @" \\end{pgfonlayer}" //ignored
- @" \\draw [bend right=20] (0) to node[tick]{-} (b.center);"
- @"\\end{tikzpicture}";
-
- TikzGraphAssembler *ga = [[TikzGraphAssembler alloc] init];
- TEST(@"Parsing TikZ", [ga parseTikz:tikz]);
-
- Graph *g = [ga graph];
- TEST(@"Graph is non-nil", g != nil);
- TEST(@"Graph has correct number of nodes", [[g nodes] count]==2);
- TEST(@"Graph has correct number of edges", [[g edges] count]==1);
-
- NSEnumerator *en = [[g nodes] objectEnumerator];
- Node *n;
- Node *n1, *n2;
- while ((n=[en nextObject])) {
- [n attachStyleFromTable:styles];
- if ([n style] == rn) n1 = n;
- else if ([n style] == nil) n2 = n;
- }
-
- TEST(@"Styles attached correctly", n1!=nil && n2!=nil);
-
- TEST(@"Nodes labeled correctly",
- [[n1 label] isEqualToString:@"stuff{$\\alpha$ in here}"] &&
- [[n2 label] isEqualToString:@""]
- );
-
- Edge *e1 = [[[g edges] objectEnumerator] nextObject];
-
- TEST(@"Edge has edge node", [e1 edgeNode]!=nil);
- TEST(@"Edge node labeled correctly", [[[e1 edgeNode] label] isEqualToString:@"-"]);
-// NSString *sty = [[[[[e1 edgeNode] data] atoms] objectEnumerator] nextObject];
-// TEST(@"Edge node styled correctly", sty!=nil && [sty isEqualToString:@"tick"]);
-
- PUTS(@"Source anchor: %@",[e1 sourceAnchor]);
- PUTS(@"Target anchor: %@",[e1 targetAnchor]);
-
- endTestBlock(@"parser");
-
- [pool drain];
-}
diff --git a/tikzit/src/common/test/test.h b/tikzit/src/common/test/test.h
deleted file mode 100644
index 59dcdd4..0000000
--- a/tikzit/src/common/test/test.h
+++ /dev/null
@@ -1,57 +0,0 @@
-//
-// test.h
-// TikZiT
-//
-// Copyright 2010 Aleks Kissinger. All rights reserved.
-//
-//
-// This file is part of TikZiT.
-//
-// TikZiT is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// TikZiT 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. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with TikZiT. If not, see <http://www.gnu.org/licenses/>.
-//
-#import <Foundation/Foundation.h>
-
-@interface Allocator : NSObject
-{}
-@end
-
-BOOL fuzzyCompare (float f1, float f2);
-BOOL fuzzyComparePoints (NSPoint p1, NSPoint p2);
-
-void setColorEnabled(BOOL b);
-
-void pass(NSString *msg);
-void fail(NSString *msg);
-void TEST(NSString *msg, BOOL test);
-void assertRectsEqual (NSString *msg, NSRect val, NSRect exp);
-void assertPointsEqual (NSString *msg, NSPoint val, NSPoint exp);
-void assertFloatsEqual (NSString *msg, float val, float exp);
-
-void startTests();
-void endTests();
-
-void startTestBlock(NSString *name);
-void endTestBlock(NSString *name);
-
-#define PUTS(fmt, ...) { \
- NSString *_str = [[NSString alloc] initWithFormat:fmt, ##__VA_ARGS__]; \
- printf("%s\n", [_str UTF8String]); \
- [_str release]; }
-
-#define failFmt(fmt, ...) { \
- NSString *_fstr = [[NSString alloc] initWithFormat:fmt, ##__VA_ARGS__]; \
- fail(_fstr); \
- [_fstr release]; }
-
-// vim:ft=objc:ts=4:sts=4:sw=4:noet
diff --git a/tikzit/src/common/test/test.m b/tikzit/src/common/test/test.m
deleted file mode 100644
index 9afcd67..0000000
--- a/tikzit/src/common/test/test.m
+++ /dev/null
@@ -1,175 +0,0 @@
-//
-// test.m
-// TikZiT
-//
-// Copyright 2010 Aleks Kissinger. All rights reserved.
-//
-//
-// This file is part of TikZiT.
-//
-// TikZiT is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// TikZiT 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. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with TikZiT. If not, see <http://www.gnu.org/licenses/>.
-//
-#import "test/test.h"
-
-static int PASSES;
-static int FAILS;
-
-static int ALLOC_INSTANCES = 0;
-
-static BOOL colorEnabled = YES;
-static int depth = 0;
-
-static NSString *RED, *GREEN, *BLUE, *OFF;
-
-static NSString *indents[6] =
- {@"", @" ", @" ", @" ",
- @" ", @" "};
-
-#define INDENT ((depth >= 6) ? indents[5] : indents[depth])
-
-
-@implementation Allocator
-
-+ (id)alloc {
- ++ALLOC_INSTANCES;
- return [super alloc];
-}
-
-- (void)dealloc {
- --ALLOC_INSTANCES;
- [super dealloc];
-}
-
-+ (Allocator*)allocator {
- return [[[Allocator alloc] init] autorelease];
-}
-
-@end
-
-BOOL fuzzyCompare(float f1, float f2) {
- return (ABS(f1 - f2) <= 0.00001f * MAX(1.0f,MIN(ABS(f1), ABS(f2))));
-}
-
-BOOL fuzzyComparePoints (NSPoint p1, NSPoint p2) {
- return fuzzyCompare (p1.x, p2.x) && fuzzyCompare (p1.y, p2.y);
-}
-
-void pass(NSString *msg) {
- PUTS(@"%@[%@PASS%@] %@", INDENT, GREEN, OFF, msg);
- ++PASSES;
-}
-
-void fail(NSString *msg) {
- PUTS(@"%@[%@FAIL%@] %@", INDENT, RED, OFF, msg);
- ++FAILS;
-}
-
-void TEST(NSString *msg, BOOL test) {
- if (test) {
- pass (msg);
- } else {
- fail (msg);
- }
-}
-
-void assertRectsEqual (NSString *msg, NSRect r1, NSRect r2) {
- BOOL equal = fuzzyCompare (r1.origin.x, r2.origin.x) &&
- fuzzyCompare (r1.origin.y, r2.origin.y) &&
- fuzzyCompare (r1.size.width, r2.size.width) &&
- fuzzyCompare (r1.size.height, r2.size.height);
- if (equal) {
- pass (msg);
- } else {
- failFmt(@"%@ (expected (%f,%f:%fx%f) but got (%f,%f:%fx%f))",
- msg,
- r2.origin.x, r2.origin.y, r2.size.width, r2.size.height,
- r1.origin.x, r1.origin.y, r1.size.width, r1.size.height);
- }
-}
-
-void assertPointsEqual (NSString *msg, NSPoint p1, NSPoint p2) {
- BOOL equal = fuzzyCompare (p1.x, p2.x) && fuzzyCompare (p1.y, p2.y);
- if (equal) {
- pass (msg);
- } else {
- failFmt(@"%@ (expected (%f,%f) but got (%f,%f)",
- msg,
- p2.x, p2.y,
- p1.x, p1.y);
- }
-}
-
-void assertFloatsEqual (NSString *msg, float f1, float f2) {
- if (fuzzyCompare (f1, f2)) {
- pass (msg);
- } else {
- failFmt(@"%@ (expected %f but got %f", msg, f2, f1);
- }
-}
-
-void startTests() {
- PASSES = 0;
- FAILS = 0;
-}
-
-void endTests() {
- PUTS(@"Done testing. %@%d%@ passed, %@%d%@ failed.",
- GREEN, PASSES, OFF,
- RED, FAILS, OFF);
-}
-
-void startTestBlock(NSString *name) {
- PUTS(@"%@Starting %@%@%@ tests.", INDENT, BLUE, name, OFF);
- ++depth;
-}
-
-void endTestBlock(NSString *name) {
- --depth;
- PUTS(@"%@Done with %@%@%@ tests.", INDENT, BLUE, name, OFF);
-}
-
-void setColorEnabled(BOOL b) {
- colorEnabled = b;
- if (b) {
- RED = @"\033[31;1m";
- GREEN = @"\033[32;1m";
- BLUE = @"\033[36;1m";
- OFF = @"\033[0m";
- } else {
- RED = @"";
- GREEN = @"";
- BLUE = @"";
- OFF = @"";
- }
-}
-
-#ifdef STAND_ALONE
-void runTests();
-
-int main() {
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-
- setColorEnabled (NO);
- startTests();
-
- runTests();
-
- endTests();
-
- [pool drain];
- return 0;
-}
-#endif
-
-// vim:ft=objc:ts=4:sts=4:sw=4:noet