|
| 1 | +import XCTest |
| 2 | +@testable import StringContainsOperators |
| 3 | + |
| 4 | +final class StringContainsOperatorsTests: XCTestCase { |
| 5 | + |
| 6 | + func testBaseStringPredicate() { |
| 7 | + let predicate = "Hello" || "World" |
| 8 | + XCTAssertTrue("Hello".contains(predicate)) |
| 9 | + XCTAssertTrue("World".contains(predicate)) |
| 10 | + XCTAssertFalse("Goodbye".contains(predicate)) |
| 11 | + } |
| 12 | + |
| 13 | + func testOrStringPredicate() { |
| 14 | + let predicate = "Hello" || "World" || "Goodbye" |
| 15 | + XCTAssertTrue("Hello".contains(predicate)) |
| 16 | + XCTAssertTrue("World".contains(predicate)) |
| 17 | + XCTAssertTrue("Goodbye".contains(predicate)) |
| 18 | + XCTAssertFalse("Goodnight".contains(predicate)) |
| 19 | + } |
| 20 | + |
| 21 | + func testOrPredicates() { |
| 22 | + let predicate = "Hello" || ("W" && "o" && "r" && "l" && "d") |
| 23 | + XCTAssertTrue("Hello".contains(predicate)) |
| 24 | + XCTAssertTrue("World".contains(predicate)) |
| 25 | + XCTAssertFalse("Goodbye".contains(predicate)) |
| 26 | + XCTAssertFalse("Hey".contains(predicate)) |
| 27 | + } |
| 28 | + |
| 29 | + func testAndStringPredicate() { |
| 30 | + let predicate = "Hello" && "World" |
| 31 | + XCTAssertTrue("HelloWorld".contains(predicate)) |
| 32 | + XCTAssertFalse("Hello".contains(predicate)) |
| 33 | + XCTAssertFalse("World".contains(predicate)) |
| 34 | + XCTAssertFalse("Goodbye".contains(predicate)) |
| 35 | + } |
| 36 | + |
| 37 | + func testAndPredicates() { |
| 38 | + let predicate = "H" && ("e" || "i") && "llo" |
| 39 | + XCTAssertTrue("Hello".contains(predicate)) |
| 40 | + XCTAssertTrue("Hillo".contains(predicate)) |
| 41 | + XCTAssertFalse("Hallo".contains(predicate)) |
| 42 | + XCTAssertFalse("Hiyo".contains(predicate)) |
| 43 | + } |
| 44 | + |
| 45 | + func testIndirectStringPredicate() { |
| 46 | + let predicate = ("Hello" || "World") && "!" |
| 47 | + XCTAssertTrue("Hello!".contains(predicate)) |
| 48 | + XCTAssertTrue("World!".contains(predicate)) |
| 49 | + XCTAssertFalse("Hello".contains(predicate)) |
| 50 | + } |
| 51 | + |
| 52 | + func testNestedStringPredicate() { |
| 53 | + let predicate = "Hello" || ("W" && ("o" || "i") && "r" && "l" && "d") |
| 54 | + XCTAssertTrue("Hello".contains(predicate)) |
| 55 | + XCTAssertTrue("World".contains(predicate)) |
| 56 | + XCTAssertTrue("Wirld".contains(predicate)) |
| 57 | + XCTAssertFalse("Goodbye".contains(predicate)) |
| 58 | + } |
| 59 | +} |
0 commit comments