diff --git a/MathPadTests/MPExpressionTests.m b/MathPadTests/MPExpressionTests.m index c5d5baf..35458e0 100644 --- a/MathPadTests/MPExpressionTests.m +++ b/MathPadTests/MPExpressionTests.m @@ -18,19 +18,32 @@ @implementation MPExpressionTests - (void)testInitialization { - MPExpression *emptyExpression = [[MPExpression alloc] init]; - MPExpression *stringExpression = [[MPExpression alloc] initWithString:@"1234+5678"]; - MPExpression *functionExpression = [[MPExpression alloc] initWithFunction:[[MPFunction alloc] init]]; - MPExpression *complexExpression = [[MPExpression alloc] initWithSymbols:@[@"1234", [[MPFunction alloc] init], @"17", [[MPFunction alloc] init]]]; + // Test empty expression + MPExpression *testExpression = [[MPExpression alloc] init]; + XCTAssertEqual([testExpression numberOfSymbols], 0); + + // Test expression with string + testExpression = [[MPExpression alloc] initWithString:@"1234+5678"]; + XCTAssertEqual([testExpression numberOfSymbols], 1); + XCTAssertEqualObjects([testExpression symbolAtIndex:0], @"1234+5678"); - XCTAssertEqual([emptyExpression numberOfSymbols], 0); - XCTAssertEqual([stringExpression numberOfSymbols], 1); - XCTAssertEqual([functionExpression numberOfSymbols], 1); - XCTAssertEqual([complexExpression numberOfSymbols], 4); + // Test expression with function + testExpression = [[MPExpression alloc] initWithFunction:[[MPFunction alloc] init]]; + XCTAssertEqual([testExpression numberOfSymbols], 1); + XCTAssertEqualObjects([testExpression symbolAtIndex:0], [[MPFunction alloc] init]); - XCTAssertEqualObjects([stringExpression symbolAtIndex:0], @"1234+5678"); - XCTAssertEqualObjects([functionExpression symbolAtIndex:0], [[MPFunction alloc] init]); - XCTAssertEqualObjects([complexExpression symbolAtIndex:2], @"17"); + testExpression = [[MPExpression alloc] initWithSymbols:@[@"1234", [[MPFunction alloc] init], @"17", [[MPFunction alloc] init]]]; + XCTAssertEqual([testExpression numberOfSymbols], 4); + XCTAssertEqualObjects([testExpression symbolAtIndex:2], @"17"); + + // Test expression with subsequent strings + testExpression = [[MPExpression alloc] initWithSymbols:@[@"1234", @"5678"]]; + XCTAssertEqual([testExpression numberOfSymbols], 1); + XCTAssertEqualObjects([testExpression symbolAtIndex:0], @"12345678"); + + // Test expression with only empty string + testExpression = [[MPExpression alloc] initWithString:@""]; + XCTAssertEqual([testExpression numberOfSymbols], 0); } - (void)testSubexpressions { diff --git a/MathPadTests/MPMutableExpressionTests.m b/MathPadTests/MPMutableExpressionTests.m index 7a5cda9..6bed1da 100644 --- a/MathPadTests/MPMutableExpressionTests.m +++ b/MathPadTests/MPMutableExpressionTests.m @@ -27,11 +27,13 @@ XCTAssertEqual([testExpression numberOfSymbols], 3); // 12678 [] 90 - [testExpression insertFunction:[[MPFunction alloc] init] atIndex:2]; + [testExpression insertFunction:[[MPFunction alloc] init] + atIndex:2]; XCTAssertEqual([testExpression numberOfSymbols], 5); // 12 [] 678 [] 90 - [testExpression replaceSymbolsInRange:NSMakeRange(2, 5) withSymbols:@[[[MPFunction alloc] init]]]; + [testExpression replaceSymbolsInRange:NSMakeRange(2, 5) + withSymbols:@[[[MPFunction alloc] init]]]; XCTAssertEqual([testExpression numberOfSymbols], 3); // 12 [] 90