diff options
Diffstat (limited to 'tikzit-old/src/common/test')
-rw-r--r-- | tikzit-old/src/common/test/Makefile | 14 | ||||
-rw-r--r-- | tikzit-old/src/common/test/color.m | 80 | ||||
-rw-r--r-- | tikzit-old/src/common/test/common.m | 34 | ||||
-rw-r--r-- | tikzit-old/src/common/test/maths.m | 562 | ||||
-rw-r--r-- | tikzit-old/src/common/test/parser.m | 86 | ||||
-rw-r--r-- | tikzit-old/src/common/test/test.h | 57 | ||||
-rw-r--r-- | tikzit-old/src/common/test/test.m | 175 |
7 files changed, 0 insertions, 1008 deletions
diff --git a/tikzit-old/src/common/test/Makefile b/tikzit-old/src/common/test/Makefile deleted file mode 100644 index d158d16..0000000 --- a/tikzit-old/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-old/src/common/test/color.m b/tikzit-old/src/common/test/color.m deleted file mode 100644 index 48a6ff4..0000000 --- a/tikzit-old/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-old/src/common/test/common.m b/tikzit-old/src/common/test/common.m deleted file mode 100644 index c9ac980..0000000 --- a/tikzit-old/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-old/src/common/test/maths.m b/tikzit-old/src/common/test/maths.m deleted file mode 100644 index a11e58e..0000000 --- a/tikzit-old/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-old/src/common/test/parser.m b/tikzit-old/src/common/test/parser.m deleted file mode 100644 index 3346acd..0000000 --- a/tikzit-old/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-old/src/common/test/test.h b/tikzit-old/src/common/test/test.h deleted file mode 100644 index 59dcdd4..0000000 --- a/tikzit-old/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-old/src/common/test/test.m b/tikzit-old/src/common/test/test.m deleted file mode 100644 index 9afcd67..0000000 --- a/tikzit-old/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 |