Model Redesign: Added Reference Frames
Added Inverse Functions UI Redesign Cleaned Code
This commit is contained in:
@@ -29,21 +29,21 @@
|
||||
|
||||
// Test expression with function
|
||||
testExpression = [[MPExpression alloc] initWithElement:[[MPFunction alloc] init]];
|
||||
XCTAssertEqual([testExpression numberOfElements], 1);
|
||||
XCTAssertEqual([testExpression countElements], 1);
|
||||
XCTAssertEqualObjects([testExpression elementAtIndex:0], [[MPFunction alloc] init]);
|
||||
|
||||
testExpression = [[MPExpression alloc] initWithElements:@[@"1234", [[MPFunction alloc] init], @"17", [[MPFunction alloc] init]]];
|
||||
XCTAssertEqual([testExpression numberOfElements], 4);
|
||||
XCTAssertEqual([testExpression countElements], 4);
|
||||
XCTAssertEqualObjects([testExpression elementAtIndex:2], @"17");
|
||||
|
||||
// Test expression with subsequent strings
|
||||
testExpression = [[MPExpression alloc] initWithElements:@[@"1234", @"5678"]];
|
||||
XCTAssertEqual([testExpression numberOfElements], 1);
|
||||
XCTAssertEqual([testExpression countElements], 1);
|
||||
XCTAssertEqualObjects([testExpression elementAtIndex:0], @"12345678");
|
||||
|
||||
// Test expression with only empty string
|
||||
testExpression = [[MPExpression alloc] initWithElement:@""];
|
||||
XCTAssertEqual([testExpression numberOfElements], 0);
|
||||
XCTAssertEqual([testExpression countElements], 0);
|
||||
}
|
||||
|
||||
- (void)testSubexpressions {
|
||||
@@ -52,77 +52,77 @@
|
||||
/********** subexpressionFromIndex: **********/
|
||||
// Test with start index at front
|
||||
MPExpression *subexpression = [testExpression subexpressionFromLocation:0];
|
||||
XCTAssertEqual([subexpression numberOfElements], 4);
|
||||
XCTAssertEqual([subexpression countElements], 4);
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:0], @"1234");
|
||||
|
||||
// Test with start index in first element
|
||||
subexpression = [testExpression subexpressionFromLocation:2];
|
||||
XCTAssertEqual([subexpression numberOfElements], 4);
|
||||
XCTAssertEqual([subexpression countElements], 4);
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:0], @"34");
|
||||
|
||||
// Test with start index in middle element starting with a literal
|
||||
subexpression = [testExpression subexpressionFromLocation:6];
|
||||
XCTAssertEqual([subexpression numberOfElements], 2);
|
||||
XCTAssertEqual([subexpression countElements], 2);
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:0], @"7");
|
||||
|
||||
// Test with start index in middle element starting with a function
|
||||
subexpression = [testExpression subexpressionFromLocation:4];
|
||||
XCTAssertEqual([subexpression numberOfElements], 3);
|
||||
XCTAssertEqual([subexpression countElements], 3);
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:0], [[MPFunction alloc] init]);
|
||||
|
||||
// Test with start index in last element
|
||||
subexpression = [testExpression subexpressionFromLocation:7];
|
||||
XCTAssertEqual([subexpression numberOfElements], 1);
|
||||
XCTAssertEqual([subexpression countElements], 1);
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:0], [[MPFunction alloc] init]);
|
||||
|
||||
// Test with start index at end
|
||||
subexpression = [testExpression subexpressionFromLocation:8];
|
||||
XCTAssertEqual([subexpression numberOfElements], 0);
|
||||
XCTAssertEqual([subexpression countElements], 0);
|
||||
|
||||
/********** subexpressionToIndex: **********/
|
||||
// Test with end index at front
|
||||
subexpression = [testExpression subexpressionToLocation:0];
|
||||
XCTAssertEqual([subexpression numberOfElements], 0);
|
||||
XCTAssertEqual([subexpression countElements], 0);
|
||||
|
||||
// Test with end index in first Element
|
||||
subexpression = [testExpression subexpressionToLocation:2];
|
||||
XCTAssertEqual([subexpression numberOfElements], 1);
|
||||
XCTAssertEqual([subexpression countElements], 1);
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:0], @"12");
|
||||
|
||||
// Test with end index in middle Element ending with a literal
|
||||
subexpression = [testExpression subexpressionToLocation:6];
|
||||
XCTAssertEqual([subexpression numberOfElements], 3);
|
||||
XCTAssertEqual([subexpression countElements], 3);
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:2], @"1");
|
||||
|
||||
// Test with end index in middle Element ending with a function
|
||||
subexpression = [testExpression subexpressionToLocation:5];
|
||||
XCTAssertEqual([subexpression numberOfElements], 2);
|
||||
XCTAssertEqual([subexpression countElements], 2);
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:1], [[MPFunction alloc] init]);
|
||||
|
||||
// Test with end index at end
|
||||
subexpression = [testExpression subexpressionToLocation:8];
|
||||
XCTAssertEqual([subexpression numberOfElements], 4);
|
||||
XCTAssertEqual([subexpression countElements], 4);
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:3], [[MPFunction alloc] init]);
|
||||
|
||||
/********** subexpressionWithRange: **********/
|
||||
// Test with empty range
|
||||
subexpression = [testExpression subexpressionWithRange:NSMakeRange(4, 0)];
|
||||
XCTAssertEqual([subexpression numberOfElements], 0);
|
||||
XCTAssertEqual([subexpression countElements], 0);
|
||||
|
||||
// Test with start and end in first element
|
||||
subexpression = [testExpression subexpressionWithRange:NSMakeRange(1, 2)];
|
||||
XCTAssertEqual([subexpression numberOfElements], 1);
|
||||
XCTAssertEqual([subexpression countElements], 1);
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:0], @"23");
|
||||
|
||||
// Test with start in first and end in middle after function
|
||||
subexpression = [testExpression subexpressionWithRange:NSMakeRange(2, 3)];
|
||||
XCTAssertEqual([subexpression numberOfElements], 2);
|
||||
XCTAssertEqual([subexpression countElements], 2);
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:0], @"34");
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:1], [[MPFunction alloc] init]);
|
||||
|
||||
// Test with start in first and end in middle after literal
|
||||
subexpression = [testExpression subexpressionWithRange:NSMakeRange(2, 4)];
|
||||
XCTAssertEqual([subexpression numberOfElements], 3);
|
||||
XCTAssertEqual([subexpression countElements], 3);
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:0], @"34");
|
||||
XCTAssertEqualObjects([subexpression elementAtIndex:2], @"1");
|
||||
}
|
||||
@@ -211,25 +211,25 @@
|
||||
MPExpression *testExpression = [[MPExpression alloc] initWithElements:@[@"1234", [[MPFunction alloc] init], @"5678", [[MPFunction alloc] init]]];
|
||||
|
||||
[testExpression appendElement:@"90"];
|
||||
XCTAssertEqual([testExpression numberOfElements], 5);
|
||||
XCTAssertEqual([testExpression countElements], 5);
|
||||
// 1234 [] 5678 [] 90
|
||||
|
||||
[testExpression deleteElementsInRange:NSMakeRange(2, 4)];
|
||||
XCTAssertEqual([testExpression numberOfElements], 3);
|
||||
XCTAssertEqual([testExpression countElements], 3);
|
||||
// 12678 [] 90
|
||||
|
||||
[testExpression deleteElementsInRange:NSMakeRange(0, 2)];
|
||||
XCTAssertEqual([testExpression numberOfElements], 3);
|
||||
XCTAssertEqual([testExpression countElements], 3);
|
||||
XCTAssertEqualObjects([testExpression elementAtIndex:0], @"678");
|
||||
|
||||
[testExpression insertElement:[[MPFunction alloc] init]
|
||||
atLocation:2];
|
||||
XCTAssertEqual([testExpression numberOfElements], 5);
|
||||
XCTAssertEqual([testExpression countElements], 5);
|
||||
// 67 [] 8 [] 90
|
||||
|
||||
[testExpression replaceSymbolsInRange:NSMakeRange(2, 5)
|
||||
withElements:@[[[MPFunction alloc] init]]];
|
||||
XCTAssertEqual([testExpression numberOfElements], 2);
|
||||
XCTAssertEqual([testExpression countElements], 2);
|
||||
XCTAssertEqualObjects([testExpression elementAtIndex:0], @"67");
|
||||
// 67 []
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user