import XCTest class StringVersionComparisonTest: XCTestCase { func testMatching() { XCTAssertTrue("1.0.0".versionCompare("1.0.0") == .orderedSame, "Exact same version numbers don't match") XCTAssertTrue("0.1.0".versionCompare("0.1.0") == .orderedSame, "Exact same version numbers don't match") XCTAssertTrue("1".versionCompare("1") == .orderedSame, "Exact same version numbers don't match") XCTAssertTrue("1.0".versionCompare("1.0") == .orderedSame, "Exact same version numbers don't match") XCTAssertTrue("1.0.1".versionCompare("1.0.1") == .orderedSame, "Exact same version numbers don't match") } func testNewer() { XCTAssertTrue("1.0.0".versionCompare("2.0.0") == .orderedAscending, "Versions should be Ascending but aren't") XCTAssertTrue("1.0.0".versionCompare("1.0.1") == .orderedAscending, "Versions should be Ascending but aren't") XCTAssertTrue("1.0.0".versionCompare("1.1.0") == .orderedAscending, "Versions should be Ascending but aren't") XCTAssertTrue("14.6.80".versionCompare("14.7.80") == .orderedAscending, "Versions should be Ascending but aren't") } func testOlder() { XCTAssertTrue("2.0.0".versionCompare("1.0.0") == .orderedDescending, "Versions should be Descending but aren't") XCTAssertTrue("2.2.2".versionCompare("2.2.1") == .orderedDescending, "Versions should be Descending but aren't") XCTAssertTrue("2.2.2".versionCompare("2.1.2") == .orderedDescending, "Versions should be Descending but aren't") XCTAssertTrue("14.7.80".versionCompare("14.6.80") == .orderedDescending, "Versions should be Descending but aren't") } func testMismatched() { XCTAssertTrue("1.0.0".versionCompare("1") == .orderedSame, "Exact same version numbers don't match") XCTAssertTrue("1.0.0".versionCompare("1.0") == .orderedSame, "Exact same version numbers don't match") XCTAssertTrue("14.6.80".versionCompare("14.7") == .orderedAscending, "Versions should be Ascending but aren't") XCTAssertTrue("14.6.80".versionCompare("15") == .orderedAscending, "Versions should be Ascending but aren't") XCTAssertTrue("14.7".versionCompare("14.6.80") == .orderedDescending, "Versions should be Descending but aren't") XCTAssertTrue("15".versionCompare("14.6.80") == .orderedDescending, "Versions should be Descending but aren't") } }