1
exercism fetch objective-c bracket-push

BracketPushTest.m

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#import <XCTest/XCTest.h>
#if __has_include("BracketPushExample.h")
# import "BracketPushExample.h"
# else
# import "BracketPush.h"
#endif
@interface BracketPushTest : XCTestCase

@end

@implementation BracketPushTest

- (void)testPairedSquareBrackets {
    XCTAssertTrue([BracketPushExample validateBracketPairingAndNestingInString:@"[]"]);
}

- (void)testEmptyString {
    XCTAssertTrue([BracketPushExample validateBracketPairingAndNestingInString:@""]);
}

- (void)testUnpairedBrackets {
    XCTAssertFalse([BracketPushExample validateBracketPairingAndNestingInString:@"[["]);
}

- (void)testWrongOrderedBrackets {
    XCTAssertFalse([BracketPushExample validateBracketPairingAndNestingInString:@"}{"]);
}

- (void)testPairedWithWhitespace {
    XCTAssertTrue([BracketPushExample validateBracketPairingAndNestingInString:@"{ }"]);
}

- (void)testSimpleNestedBrackets {
    XCTAssertTrue([BracketPushExample validateBracketPairingAndNestingInString:@"{[]}"]);
}

- (void)testSeveralPairedBrackets {
    XCTAssertTrue([BracketPushExample validateBracketPairingAndNestingInString:@"{}[]"]);
}

- (void)testPairedAndNestedBrackets {
    XCTAssertTrue([BracketPushExample validateBracketPairingAndNestingInString:@"([{}({}[])])"]);
}

- (void)testUnopenedClosingBrackets {
    XCTAssertFalse([BracketPushExample validateBracketPairingAndNestingInString:@"{[)][]}"]);
}

- (void)testUnpairedAndNestedBrackets {
    XCTAssertFalse([BracketPushExample validateBracketPairingAndNestingInString:@"([{])"]);
}

- (void)testPairedAndWrongNestedBrackets {
    XCTAssertFalse([BracketPushExample validateBracketPairingAndNestingInString:@"[({]})"]);
}

- (void)testMathExpression {
    XCTAssertTrue([BracketPushExample validateBracketPairingAndNestingInString:@"(((185 + 223.85) * 15) - 543)/2"]);
}

- (void)testComplexLatexExpression {
    XCTAssertTrue([BracketPushExample validateBracketPairingAndNestingInString:@"\\left(\\begin{array}{cc} \\frac{1}{3} & x\\\\ \\mathrm{e}^{x} &... x^2 \\end{array}\\right)"]);
}
@end