Archived
1
This repository has been archived on 2022-08-08. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
mathpad/MathPadTests/MPRangeTests.m
2014-04-23 03:11:54 +02:00

96 lines
4.3 KiB
Objective-C

//
// MPRangeTests.m
// MathPad
//
// Created by Kim Wittenburg on 21.04.14.
// Copyright (c) 2014 Kim Wittenburg. All rights reserved.
//
#import <XCTest/XCTest.h>
#import "MPRangePath.h"
@interface MPRangeTests : XCTestCase
@end
@implementation MPRangeTests
- (void)testInitialization {
MPRangePath *rangePath = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndex:1] length:5];
XCTAssertEqualObjects(rangePath.location, [[NSIndexPath alloc] initWithIndex:1]);
XCTAssertEqual(rangePath.length, 5);
rangePath = [[MPRangePath alloc] initWithRange:NSMakeRange(3, 2)];
XCTAssertEqualObjects(rangePath.location, [[NSIndexPath alloc] initWithIndex:3]);
XCTAssertEqual(rangePath.length, 2);
rangePath = [MPRangePath emptyRangePath];
XCTAssertEqualObjects(rangePath.location, [[NSIndexPath alloc] init]);
XCTAssertEqual(rangePath.length, 0);
}
- (void)testMaxRange {
NSUInteger indexes[] = {5, 2, 7, 3};
MPRangePath *rangePath = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndexes:indexes length:4] length:5];
NSUInteger expectedIndexes[] = {5, 2, 7, 8};
XCTAssertEqualObjects([rangePath maxRangePath], [[NSIndexPath alloc] initWithIndexes:expectedIndexes length:4]);
}
- (void)testRangeAtLastIndex {
NSUInteger indexes[] = {5, 2, 7, 3};
MPRangePath *rangePath = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndexes:indexes length:4] length:5];
XCTAssertTrue(NSEqualRanges(rangePath.rangeAtLastIndex, NSMakeRange(3, 5)));
}
- (void)testEquality {
NSUInteger indexes[] = {5, 2, 7, 3};
MPRangePath *rangePath = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndexes:indexes length:4] length:5];
NSUInteger otherIndexes[] = {5, 2, 7, 3};
MPRangePath *otherRange = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndexes:otherIndexes length:4] length:5];
NSUInteger yetOtherIndexes[] = {5, 2, 6, 3};
MPRangePath *yetAnotherRange = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndexes:yetOtherIndexes length:4] length:5];
XCTAssertTrue([rangePath isEqual:otherRange]);
XCTAssertFalse([rangePath isEqual:yetAnotherRange]);
}
- (void)testCopying {
NSUInteger indexes[] = {5, 2, 7, 3};
MPRangePath *rangePath = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndexes:indexes length:4] length:5];
MPRangePath *copy = [rangePath copy];
XCTAssertNotEqual(rangePath, copy);
XCTAssertEqualObjects(rangePath, copy);
}
- (void)testContainsRange {
NSUInteger indexes[] = {5, 2, 7, 3};
MPRangePath *rangePath = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndexes:indexes length:4] length:5];
NSUInteger shorterPathIndexes[] = {5, 2};
MPRangePath *shorterPathRange = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndexes:shorterPathIndexes length:2] length:5];
NSUInteger longerPathIndexes[] = {5, 2, 7, 3, 5};
MPRangePath *longerPathRange = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndexes:longerPathIndexes length:5] length:5];
NSUInteger differentPathIndexes[] = {5, 3, 7, 3};
MPRangePath *differentPathRange = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndexes:differentPathIndexes length:4] length:5];
NSUInteger equalRangeIndexes[] = {5, 2, 7, 3};
MPRangePath *equalRange = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndexes:equalRangeIndexes length:4] length:5];
NSUInteger containedRangeIndexes[] = {5, 2, 7, 4};
MPRangePath *containedRange = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndexes:containedRangeIndexes length:4] length:2];
NSUInteger largerRangeIndexes[] = {5, 2, 7, 4};
MPRangePath *largerRange = [[MPRangePath alloc] initWithLocation:[[NSIndexPath alloc] initWithIndexes:largerRangeIndexes length:4] length:7];
XCTAssertFalse([rangePath containsRangePath:shorterPathRange]);
XCTAssertTrue([rangePath containsRangePath:longerPathRange]);
XCTAssertFalse([rangePath containsRangePath:differentPathRange]);
XCTAssertTrue([rangePath containsRangePath:equalRange]);
XCTAssertTrue([rangePath containsRangePath:containedRange]);
XCTAssertFalse([rangePath containsRangePath:largerRange]);
}
@end