mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-25 21:17:03 +00:00
325 lines
11 KiB
Plaintext
325 lines
11 KiB
Plaintext
@import <Foundation/CPGeometry.j>
|
|
|
|
@implementation CPGeometryTest : OJTestCase
|
|
{
|
|
}
|
|
|
|
- (void)testCPRectContainsRect
|
|
{
|
|
[self assertTrue:CPRectContainsRect(CGRectMake(0, 0, 500, 500), CGRectMake(0, 0, 50, 50))];
|
|
[self assertTrue:CPRectContainsRect(CGRectMake(0, 0, 500, 500), CGRectMake(50, 50, 50, 50))];
|
|
[self assertTrue:CPRectContainsRect(CGRectMake(0, 0, 500, 500), CGRectMake(450, 450, 50, 50))];
|
|
[self assertTrue:CPRectContainsRect(CGRectMake(0, 0, 500, 500), CGRectMake(500, 500, 0, 0))];
|
|
[self assertFalse:CPRectContainsRect(CGRectMake(0, 0, 500, 500), CGRectMake(50, 50, 500, 500))];
|
|
[self assertFalse:CPRectContainsRect(CGRectMake(0, 0, 500, 500), CGRectMake(500, 500, 1, 1))];
|
|
}
|
|
|
|
- (void)testCPPointEqualToPoint
|
|
{
|
|
[self assertTrue:CPPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 10))];
|
|
[self assertFalse:CPPointEqualToPoint(CGPointMake(0, 10), CGPointMake(10, 10))];
|
|
[self assertFalse:CPPointEqualToPoint(CGPointMake(10, 10), CGPointMake(0, 10))];
|
|
[self assertFalse:CPPointEqualToPoint(CGPointMake(10, 0), CGPointMake(10, 10))];
|
|
[self assertFalse:CPPointEqualToPoint(CGPointMake(10, 10), CGPointMake(10, 0))];
|
|
}
|
|
|
|
- (void)testCPRectEqualToRect
|
|
{
|
|
[self assertTrue:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 0, 100, 100))];
|
|
[self assertFalse:CPRectEqualToRect(CGRectMake(50, 0, 100, 100), CGRectMake(0, 0, 100, 100))];
|
|
[self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(50, 0, 100, 100))];
|
|
[self assertFalse:CPRectEqualToRect(CGRectMake(0, 50, 100, 100), CGRectMake(0, 0, 100, 100))];
|
|
[self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 50, 100, 100))];
|
|
[self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 50, 100), CGRectMake(0, 0, 100, 100))];
|
|
[self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 0, 50, 100))];
|
|
[self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 50), CGRectMake(0, 0, 100, 100))];
|
|
[self assertFalse:CPRectEqualToRect(CGRectMake(0, 0, 100, 100), CGRectMake(0, 0, 100, 50))];
|
|
}
|
|
|
|
- (void)textCPRectIsEmpty
|
|
{
|
|
[self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, 0, 10))];
|
|
[self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, 10, 0))];
|
|
[self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, -10, 10))];
|
|
[self assertTrue:CPRectIsEmpty(CGRectMake(0, 0, 10, -10))];
|
|
[self assertFalse:CPRectIsEmpty(CGRectMake(0, 0, 10, 10))];
|
|
}
|
|
|
|
- (void)testCPRectIntersection
|
|
{
|
|
var lhsRect = CGRectMake(0, 0, 20, 20),
|
|
rhsRect = CGRectMake(10, 10, 20, 20),
|
|
intersectionResultRect = CGRectMake(10, 10, 10, 10);
|
|
|
|
[self assertTrue:CPRectEqualToRect(CPRectIntersection(lhsRect, rhsRect), intersectionResultRect)];
|
|
intersectionResultRect.origin.x = 30;
|
|
intersectionResultRect.origin.y = 30;
|
|
[self assertFalse:CPRectEqualToRect(CPRectIntersection(lhsRect, rhsRect), intersectionResultRect)];
|
|
}
|
|
|
|
- (void)testCPPointCreateCopy
|
|
{
|
|
var point = CGPointMake(1, 1),
|
|
copiedPoint = CPPointCreateCopy(point);
|
|
[self assertTrue:CPPointEqualToPoint(point, copiedPoint)];
|
|
point.x = 10;
|
|
[self assertFalse:CPPointEqualToPoint(point, copiedPoint)];
|
|
}
|
|
|
|
- (void)testCPPointMake
|
|
{
|
|
var testPoint = CPPointMake(1, 2);
|
|
[self assert:1 equals:testPoint.x message:"point x coordinate failed"];
|
|
[self assert:2 equals:testPoint.y message:"point y coordinate failed"];
|
|
}
|
|
|
|
- (void)testCPRectInset
|
|
{
|
|
var testRect = CGRectMake(0, 0, 100, 100);
|
|
[self assertTrue:CGRectEqualToRect(CGRectMake(10, 10, 80, 80), CPRectInset(testRect, 10, 10))];
|
|
}
|
|
|
|
- (void)testCPRectIntegral
|
|
{
|
|
var rect = CGRectMake(0.1, 0.2, 10.3, 10.4);
|
|
[self assertTrue:CGRectEqualToRect(CGRectMake(0, 0, 11, 11), CPRectIntegral(rect))];
|
|
}
|
|
|
|
- (void)testCPRectCreateCopy
|
|
{
|
|
var rect = CGRectMake(0, 0, 100, 100),
|
|
copiedRect = CPRectCreateCopy(rect);
|
|
[self assertTrue:CGRectEqualToRect(rect, copiedRect)];
|
|
rect.origin.x = 10;
|
|
[self assertFalse:CGRectEqualToRect(rect, copiedRect)];
|
|
}
|
|
|
|
- (void)testCPRectMake
|
|
{
|
|
var rect = CPRectMake(10, 20, 30, 40);
|
|
[self assert:10 equals:rect.origin.x message:"Rect x coordinate failed"];
|
|
[self assert:20 equals:rect.origin.y message:"Rect x coordinate failed"];
|
|
[self assert:30 equals:rect.size.width message:"Rect width failed"];
|
|
[self assert:40 equals:rect.size.height message:"Rect height failed"];
|
|
}
|
|
|
|
- (void)testCPRectOffset
|
|
{
|
|
var initialRect = CGRectMake(10, 10, 100, 100),
|
|
offsetRect = CGRectMake(20, 20, 100, 100);
|
|
[self assertTrue:CGRectEqualToRect(offsetRect, CPRectOffset(initialRect, 10, 10))];
|
|
[self assertFalse:CGRectEqualToRect(initialRect, CPRectOffset(initialRect, 10, 10))];
|
|
}
|
|
|
|
- (void)testCPRectStandardize
|
|
{
|
|
var initialRect = CGRectMake(10, 10, -10, -10),
|
|
standardizedRect = CGRectMake(0, 0, 10, 10);
|
|
[self assertTrue:CGRectEqualToRect(standardizedRect,CPRectStandardize(initialRect))];
|
|
[self assertFalse:CGRectEqualToRect(initialRect,CPRectStandardize(initialRect))];
|
|
}
|
|
|
|
- (void)testCPRectUnion
|
|
{
|
|
var firstRect = CGRectMake(0, 0, 10, 10),
|
|
secondRect = CGRectMake(20, 20, 10, 10),
|
|
unitedRect = CGRectMake(0, 0, 30, 30);
|
|
[self assertTrue:CGRectEqualToRect(unitedRect, CPRectUnion(firstRect, secondRect))];
|
|
[self assertFalse:CGRectEqualToRect(firstRect, CPRectUnion(firstRect, secondRect))];
|
|
}
|
|
|
|
- (void)testCPSizeCreateCopy
|
|
{
|
|
var initialSize = CGSizeMake(100, 200),
|
|
copiedSize = CPSizeCreateCopy(initialSize);
|
|
[self assertTrue:CGSizeEqualToSize(initialSize, copiedSize)];
|
|
initialSize.width = 10;
|
|
[self assertFalse:CGSizeEqualToSize(initialSize, copiedSize)];
|
|
}
|
|
|
|
- (void)testCPSizeMake
|
|
{
|
|
var size = CPSizeMake(10, 20);
|
|
[self assert:10 equals:size.width message:"Size width failed"];
|
|
[self assert:20 equals:size.height message:"Size height failed"];
|
|
}
|
|
|
|
- (void)testCPRectContainsPoint
|
|
{
|
|
var rect = CGRectMake(10, 10, 10, 10);
|
|
[self assertTrue:CPRectContainsPoint(rect, CGPointMake(15, 15))];
|
|
[self assertFalse:CPRectContainsPoint(rect, CGPointMake(5, 5))];
|
|
[self assertFalse:CPRectContainsPoint(rect, CGPointMake(15, 5))];
|
|
[self assertFalse:CPRectContainsPoint(rect, CGPointMake(25, 5))];
|
|
[self assertFalse:CPRectContainsPoint(rect, CGPointMake(5, 15))];
|
|
[self assertFalse:CPRectContainsPoint(rect, CGPointMake(5, 25))];
|
|
[self assertFalse:CPRectContainsPoint(rect, CGPointMake(15, 25))];
|
|
[self assertFalse:CPRectContainsPoint(rect, CGPointMake(25, 15))];
|
|
[self assertFalse:CPRectContainsPoint(rect, CGPointMake(25, 25))];
|
|
}
|
|
|
|
- (void)testCPRectGetHeight
|
|
{
|
|
var rect = CGRectMake(10, 20, 30, 40);
|
|
[self assert:40 equals:CPRectGetHeight(rect)];
|
|
}
|
|
|
|
- (void)testCPRectGetMaxX
|
|
{
|
|
var rect = CGRectMake(10, 20, 40, 80);
|
|
[self assert:50 equals:CPRectGetMaxX(rect)];
|
|
}
|
|
|
|
- (void)testCPRectGetMaxY
|
|
{
|
|
var rect = CGRectMake(10, 20, 40, 80);
|
|
[self assert:100 equals:CPRectGetMaxY(rect)];
|
|
}
|
|
|
|
- (void)testCPRectGetMidX
|
|
{
|
|
var rect = CGRectMake(10, 20, 40, 80);
|
|
[self assert:30 equals:CPRectGetMidX(rect)];
|
|
}
|
|
|
|
- (void)testCPRectGetMidY
|
|
{
|
|
var rect = CGRectMake(10, 20, 40, 80);
|
|
[self assert:60 equals:CPRectGetMidY(rect)];
|
|
}
|
|
|
|
- (void)testCPRectGetMinX
|
|
{
|
|
var rect = CGRectMake(10, 20, 40, 80);
|
|
[self assert:10 equals:CPRectGetMinX(rect)];
|
|
}
|
|
|
|
- (void)testCPRectGetMinY
|
|
{
|
|
var rect = CGRectMake(10, 20, 40, 80);
|
|
[self assert:20 equals:CPRectGetMinY(rect)];
|
|
}
|
|
|
|
- (void)testCPRectGetWidth
|
|
{
|
|
var rect = CGRectMake(10, 20, 40, 80);
|
|
[self assert:40 equals:CPRectGetWidth(rect)];
|
|
}
|
|
|
|
- (void)testCPRectIntersectsRect
|
|
{
|
|
var firstRect = CGRectMake(10, 10, 10, 10),
|
|
secondRect = CGRectMake(15, 15, 10, 10);
|
|
[self assertTrue:CPRectIntersectsRect(firstRect, secondRect)];
|
|
secondRect.origin = CGPointMake(25, 25);
|
|
[self assertFalse:CPRectIntersectsRect(firstRect, secondRect)];
|
|
}
|
|
|
|
- (void)testCPRectIsNull
|
|
{
|
|
[self assertTrue:CPRectIsNull(CGRectMake(0, 0, 0, 10))];
|
|
[self assertTrue:CPRectIsNull(CGRectMake(0, 0, 10, 0))];
|
|
[self assertTrue:CPRectIsNull(CGRectMake(0, 0, -10, 10))];
|
|
[self assertTrue:CPRectIsNull(CGRectMake(0, 0, 10, -10))];
|
|
[self assertFalse:CPRectIsNull(CGRectMake(0, 0, 10, 10))];
|
|
}
|
|
|
|
- (void)testCPDivideRect
|
|
{
|
|
var initialRect = CGRectMake(0, 0, 10, 10),
|
|
slice = CGRectMake(0, 0, 0, 0),
|
|
rem = CGRectMake(0, 0, 0, 0);
|
|
|
|
CPDivideRect(initialRect, slice, rem, 3, CGMinXEdge);
|
|
[self assertTrue:CGRectEqualToRect(slice, CGRectMake(0, 0, 3, 10))];
|
|
[self assertTrue:CGRectEqualToRect(rem, CGRectMake(3, 0, 7, 10))];
|
|
|
|
CPDivideRect(initialRect, slice, rem, 3, CGMinYEdge);
|
|
[self assertTrue:CGRectEqualToRect(slice, CGRectMake(0, 0, 10, 3))];
|
|
[self assertTrue:CGRectEqualToRect(rem, CGRectMake(0, 3, 10, 7))];
|
|
|
|
CPDivideRect(initialRect, slice, rem, 3, CGMaxXEdge);
|
|
[self assertTrue:CGRectEqualToRect(slice, CGRectMake(7, 0, 3, 10))];
|
|
[self assertTrue:CGRectEqualToRect(rem, CGRectMake(0, 0, 7, 10))];
|
|
|
|
CPDivideRect(initialRect, slice, rem, 3, CGMaxYEdge);
|
|
[self assertTrue:CGRectEqualToRect(slice, CGRectMake(0, 7, 10, 3))];
|
|
[self assertTrue:CGRectEqualToRect(rem, CGRectMake(0, 0, 10, 7))];
|
|
}
|
|
|
|
- (void)testCPSizeEqualToSize
|
|
{
|
|
[self assertTrue:CPSizeEqualToSize(CGSizeMake(10, 10), CGSizeMake(10, 10))];
|
|
[self assertFalse:CPSizeEqualToSize(CGSizeMake(0, 10), CGSizeMake(10, 10))];
|
|
[self assertFalse:CPSizeEqualToSize(CGSizeMake(10, 10), CGSizeMake(0, 10))];
|
|
[self assertFalse:CPSizeEqualToSize(CGSizeMake(10, 0), CGSizeMake(10, 10))];
|
|
[self assertFalse:CPSizeEqualToSize(CGSizeMake(10, 10), CGSizeMake(10, 0))];
|
|
}
|
|
|
|
- (void)testCPStringFromPoint
|
|
{
|
|
var point = CGPointMake(0, 1);
|
|
[self assert:"{0, 1}" equals: CPStringFromPoint(point)];
|
|
}
|
|
|
|
- (void)testCPStringFromSize
|
|
{
|
|
var size = CGSizeMake(10, 20);
|
|
[self assert:"{10, 20}" equals: CPStringFromSize(size)];
|
|
}
|
|
|
|
- (void)testCPStringFromRect
|
|
{
|
|
var rect = CGRectMake(10, 20, 30, 40);
|
|
[self assert:"{{10, 20}, {30, 40}}" equals:CPStringFromRect(rect)];
|
|
}
|
|
|
|
- (void)testCPPointFromString
|
|
{
|
|
var point = CGPointMake(0,1);
|
|
[self assertTrue:CGPointEqualToPoint(point , CPPointFromString("{0, 1}"))];
|
|
}
|
|
|
|
- (void)testCPSizeFromString
|
|
{
|
|
var size = CGSizeMake(10, 20);
|
|
[self assertTrue:CGSizeEqualToSize(size, CPSizeFromString("{10, 20}"))];
|
|
}
|
|
|
|
- (void)testCPRectFromString
|
|
{
|
|
var rect = CGRectMake(10, 20, 30, 40);
|
|
[self assertTrue:CGRectEqualToRect(rect, CPRectFromString("{{10, 20}, {30, 40}}"))];
|
|
}
|
|
|
|
- (void)testCPSizeMakeZero
|
|
{
|
|
var size = CGSizeMake(10, 20);
|
|
[self assertTrue:CGSizeEqualToSize(CGSizeMake(0, 0), CPSizeMakeZero(size))];
|
|
}
|
|
|
|
- (void)testCPRectMakeZero
|
|
{
|
|
var rect = CGRectMake(10, 20, 30, 40);
|
|
[self assertTrue:CGRectEqualToRect(CGRectMake(0, 0, 0, 0), CPRectMakeZero(rect))];
|
|
}
|
|
|
|
- (void)testCPPointMakeZero
|
|
{
|
|
var point = CGPointMake(10, 20);
|
|
[self assertTrue:CGPointEqualToPoint(CGPointMake(0, 0), CPPointMakeZero(0, 0))];
|
|
}
|
|
|
|
- (void)testCPPointFromEvent
|
|
{
|
|
var anEvent = [CPEvent mouseEventWithType:CPLeftMouseDownMask location:CGPointMake(5.0, 5.0) modifierFlags:0
|
|
timestamp:0 windowNumber:0 context:nil eventNumber:0 clickCount:1 pressure:1];
|
|
anEvent.clientX = 1.0;
|
|
anEvent.clientY = 2.0;
|
|
var point = CPPointFromEvent(anEvent);
|
|
[self assert:1.0 equals:point.x message:"Point x coordinate failed"];
|
|
[self assert:2.0 equals:point.y message:"Point y coordinate failed"];
|
|
}
|
|
|
|
@end
|