From 168e0180a108227ca78eda759b4a700b01f558d9 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 23 Apr 2019 01:47:09 -0400 Subject: [PATCH 1/3] TestFoundation: TestDateInterval: Add tests for functionality --- TestFoundation/TestDateInterval.swift | 114 ++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) diff --git a/TestFoundation/TestDateInterval.swift b/TestFoundation/TestDateInterval.swift index c2cab531f2..c27c3accef 100644 --- a/TestFoundation/TestDateInterval.swift +++ b/TestFoundation/TestDateInterval.swift @@ -10,10 +10,124 @@ class TestDateInterval: XCTestCase { static var allTests: [(String, (TestDateInterval) -> () throws -> Void)] { return [ + ("test_default_constructor", test_default_constructor), + ("test_start_end_constructor", test_start_end_constructor), + ("test_start_duration_constructor", test_start_duration_constructor), + ("test_compare_different_starts", test_compare_different_starts), + ("test_compare_different_durations", test_compare_different_durations), + ("test_compare_same", test_compare_same), + ("test_comparison_operators", test_comparison_operators), + ("test_intersects", test_intersects), + ("test_intersection", test_intersection), + ("test_intersection_zero_duration", test_intersection_zero_duration), + ("test_intersection_nil", test_intersection_nil), + ("test_contains", test_contains), ("test_hashing", test_hashing), ] } + func test_default_constructor() { + let dateInterval = DateInterval() + XCTAssertEqual(dateInterval.duration, 0) + } + + func test_start_end_constructor() { + let date1 = dateWithString("2019-04-04 17:09:23 -0700") + let date2 = dateWithString("2019-04-04 18:09:23 -0700") + let dateInterval = DateInterval(start: date1, end: date2) + XCTAssertEqual(dateInterval.duration, 60 * 60) + } + + func test_start_duration_constructor() { + let date = dateWithString("2019-04-04 17:09:23 -0700") + let dateInterval = DateInterval(start: date, duration: 60) + XCTAssertEqual(dateInterval.duration, 60) + } + + func test_compare_different_starts() { + let date1 = dateWithString("2019-04-04 17:09:23 -0700") + let date2 = dateWithString("2019-04-04 18:09:23 -0700") + let dateInterval1 = DateInterval(start: date1, duration: 100) + let dateInterval2 = DateInterval(start: date2, duration: 100) + XCTAssertEqual(dateInterval1.compare(dateInterval2), .orderedAscending) + XCTAssertEqual(dateInterval2.compare(dateInterval1), .orderedDescending) + } + + func test_compare_different_durations() { + let date = dateWithString("2019-04-04 17:09:23 -0700") + let dateInterval1 = DateInterval(start: date, duration: 60) + let dateInterval2 = DateInterval(start: date, duration: 90) + XCTAssertEqual(dateInterval1.compare(dateInterval2), .orderedAscending) + XCTAssertEqual(dateInterval2.compare(dateInterval1), .orderedDescending) + } + + func test_compare_same() { + let date = dateWithString("2019-04-04 17:09:23 -0700") + let dateInterval1 = DateInterval(start: date, duration: 60) + let dateInterval2 = DateInterval(start: date, duration: 60) + XCTAssertEqual(dateInterval1.compare(dateInterval2), .orderedSame) + XCTAssertEqual(dateInterval2.compare(dateInterval1), .orderedSame) + } + + func test_comparison_operators() { + let date1 = dateWithString("2019-04-04 17:00:00 -0700") + let date2 = dateWithString("2019-04-04 17:30:00 -0700") + let dateInterval1 = DateInterval(start: date1, duration: 60) + let dateInterval2 = DateInterval(start: date2, duration: 60) + let dateInterval3 = DateInterval(start: date1, duration: 90) + let dateInterval4 = DateInterval(start: date1, duration: 60) + XCTAssertTrue(dateInterval1 < dateInterval2) + XCTAssertTrue(dateInterval1 < dateInterval3) + XCTAssertTrue(dateInterval1 == dateInterval4) + } + + func test_intersects() { + let date1 = dateWithString("2019-04-04 17:09:23 -0700") + let date2 = dateWithString("2019-04-04 17:10:20 -0700") + let dateInterval1 = DateInterval(start: date1, duration: 60) + let dateInterval2 = DateInterval(start: date2, duration: 15) + XCTAssertTrue(dateInterval1.intersects(dateInterval2)) + } + + func test_intersection() { + let date1 = dateWithString("2019-04-04 17:00:00 -0700") + let date2 = dateWithString("2019-04-04 17:15:00 -0700") + let dateInterval1 = DateInterval(start: date1, duration: 60 * 30) + let dateInterval2 = DateInterval(start: date2, duration: 60 * 30) + let intersection = dateInterval1.intersection(with: dateInterval2) + XCTAssertNotNil(intersection) + XCTAssertEqual(intersection!.duration, 60 * 15) + } + + func test_intersection_zero_duration() { + let date1 = dateWithString("2019-04-04 17:00:00 -0700") + let date2 = dateWithString("2019-04-04 17:30:00 -0700") + let dateInterval1 = DateInterval(start: date1, duration: 60 * 30) + let dateInterval2 = DateInterval(start: date2, duration: 60 * 30) + let intersection = dateInterval1.intersection(with: dateInterval2) + XCTAssertNotNil(intersection) + XCTAssertEqual(intersection!.duration, 0) + } + + func test_intersection_nil() { + let date1 = dateWithString("2019-04-04 17:00:00 -0700") + let date2 = dateWithString("2019-04-04 17:30:01 -0700") + let dateInterval1 = DateInterval(start: date1, duration: 60 * 30) + let dateInterval2 = DateInterval(start: date2, duration: 60 * 30) + XCTAssertNil(dateInterval1.intersection(with: dateInterval2)) + } + + func test_contains() { + let date1 = dateWithString("2019-04-04 17:00:00 -0700") + let date2 = dateWithString("2019-04-04 17:30:00 -0700") + let date3 = dateWithString("2019-04-04 17:45:00 -0700") + let date4 = dateWithString("2019-04-04 17:50:00 -0700") + let dateInterval = DateInterval(start: date1, duration: 60 * 45) + XCTAssertTrue(dateInterval.contains(date2)) + XCTAssertTrue(dateInterval.contains(date3)) + XCTAssertFalse(dateInterval.contains(date4)) + } + func test_hashing() { guard #available(iOS 10.10, OSX 10.12, tvOS 10.0, watchOS 3.0, *) else { return } From aebd254cae2292fed69105f0c33d9efc7daa0996 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 23 Apr 2019 16:43:27 -0400 Subject: [PATCH 2/3] Update TestDateInterval to use camel case --- TestFoundation/TestDateInterval.swift | 36 +++++++++++++-------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/TestFoundation/TestDateInterval.swift b/TestFoundation/TestDateInterval.swift index c27c3accef..cecd0c0c83 100644 --- a/TestFoundation/TestDateInterval.swift +++ b/TestFoundation/TestDateInterval.swift @@ -10,41 +10,41 @@ class TestDateInterval: XCTestCase { static var allTests: [(String, (TestDateInterval) -> () throws -> Void)] { return [ - ("test_default_constructor", test_default_constructor), - ("test_start_end_constructor", test_start_end_constructor), - ("test_start_duration_constructor", test_start_duration_constructor), - ("test_compare_different_starts", test_compare_different_starts), - ("test_compare_different_durations", test_compare_different_durations), - ("test_compare_same", test_compare_same), - ("test_comparison_operators", test_comparison_operators), + ("test_defaultConstructor", test_defaultConstructor), + ("test_startEndConstructor", test_startEndConstructor), + ("test_startDurationConstructor", test_startDurationConstructor), + ("test_compareDifferentStarts", test_compareDifferentStarts), + ("test_compareDifferentDurations", test_compareDifferentDurations), + ("test_compareSame", test_compareSame), + ("test_comparisonOperators", test_comparisonOperators), ("test_intersects", test_intersects), ("test_intersection", test_intersection), - ("test_intersection_zero_duration", test_intersection_zero_duration), - ("test_intersection_nil", test_intersection_nil), + ("test_intersectionZeroDuration", test_intersectionZeroDuration), + ("test_intersectionNil", test_intersectionNil), ("test_contains", test_contains), ("test_hashing", test_hashing), ] } - func test_default_constructor() { + func test_defaultConstructor() { let dateInterval = DateInterval() XCTAssertEqual(dateInterval.duration, 0) } - func test_start_end_constructor() { + func test_startEndConstructor() { let date1 = dateWithString("2019-04-04 17:09:23 -0700") let date2 = dateWithString("2019-04-04 18:09:23 -0700") let dateInterval = DateInterval(start: date1, end: date2) XCTAssertEqual(dateInterval.duration, 60 * 60) } - func test_start_duration_constructor() { + func test_startDurationConstructor() { let date = dateWithString("2019-04-04 17:09:23 -0700") let dateInterval = DateInterval(start: date, duration: 60) XCTAssertEqual(dateInterval.duration, 60) } - func test_compare_different_starts() { + func test_compareDifferentStarts() { let date1 = dateWithString("2019-04-04 17:09:23 -0700") let date2 = dateWithString("2019-04-04 18:09:23 -0700") let dateInterval1 = DateInterval(start: date1, duration: 100) @@ -53,7 +53,7 @@ class TestDateInterval: XCTestCase { XCTAssertEqual(dateInterval2.compare(dateInterval1), .orderedDescending) } - func test_compare_different_durations() { + func test_compareDifferentDurations() { let date = dateWithString("2019-04-04 17:09:23 -0700") let dateInterval1 = DateInterval(start: date, duration: 60) let dateInterval2 = DateInterval(start: date, duration: 90) @@ -61,7 +61,7 @@ class TestDateInterval: XCTestCase { XCTAssertEqual(dateInterval2.compare(dateInterval1), .orderedDescending) } - func test_compare_same() { + func test_compareSame() { let date = dateWithString("2019-04-04 17:09:23 -0700") let dateInterval1 = DateInterval(start: date, duration: 60) let dateInterval2 = DateInterval(start: date, duration: 60) @@ -69,7 +69,7 @@ class TestDateInterval: XCTestCase { XCTAssertEqual(dateInterval2.compare(dateInterval1), .orderedSame) } - func test_comparison_operators() { + func test_comparisonOperators() { let date1 = dateWithString("2019-04-04 17:00:00 -0700") let date2 = dateWithString("2019-04-04 17:30:00 -0700") let dateInterval1 = DateInterval(start: date1, duration: 60) @@ -99,7 +99,7 @@ class TestDateInterval: XCTestCase { XCTAssertEqual(intersection!.duration, 60 * 15) } - func test_intersection_zero_duration() { + func test_intersectionZeroDuration() { let date1 = dateWithString("2019-04-04 17:00:00 -0700") let date2 = dateWithString("2019-04-04 17:30:00 -0700") let dateInterval1 = DateInterval(start: date1, duration: 60 * 30) @@ -109,7 +109,7 @@ class TestDateInterval: XCTestCase { XCTAssertEqual(intersection!.duration, 0) } - func test_intersection_nil() { + func test_intersectionNil() { let date1 = dateWithString("2019-04-04 17:00:00 -0700") let date2 = dateWithString("2019-04-04 17:30:01 -0700") let dateInterval1 = DateInterval(start: date1, duration: 60 * 30) From 728b364da813a554b83a25babcc436c78291a90f Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 28 Apr 2019 01:02:07 -0400 Subject: [PATCH 3/3] TestFoundation: TestDateInterval: Update test names to reflect proper Swift terms --- TestFoundation/TestDateInterval.swift | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/TestFoundation/TestDateInterval.swift b/TestFoundation/TestDateInterval.swift index cecd0c0c83..83eb2bafc7 100644 --- a/TestFoundation/TestDateInterval.swift +++ b/TestFoundation/TestDateInterval.swift @@ -10,9 +10,9 @@ class TestDateInterval: XCTestCase { static var allTests: [(String, (TestDateInterval) -> () throws -> Void)] { return [ - ("test_defaultConstructor", test_defaultConstructor), - ("test_startEndConstructor", test_startEndConstructor), - ("test_startDurationConstructor", test_startDurationConstructor), + ("test_defaultInitializer", test_defaultInitializer), + ("test_startEndInitializer", test_startEndInitializer), + ("test_startDurationInitializer", test_startDurationInitializer), ("test_compareDifferentStarts", test_compareDifferentStarts), ("test_compareDifferentDurations", test_compareDifferentDurations), ("test_compareSame", test_compareSame), @@ -26,19 +26,19 @@ class TestDateInterval: XCTestCase { ] } - func test_defaultConstructor() { + func test_defaultInitializer() { let dateInterval = DateInterval() XCTAssertEqual(dateInterval.duration, 0) } - - func test_startEndConstructor() { + + func test_startEndInitializer() { let date1 = dateWithString("2019-04-04 17:09:23 -0700") let date2 = dateWithString("2019-04-04 18:09:23 -0700") let dateInterval = DateInterval(start: date1, end: date2) XCTAssertEqual(dateInterval.duration, 60 * 60) } - func test_startDurationConstructor() { + func test_startDurationInitializer() { let date = dateWithString("2019-04-04 17:09:23 -0700") let dateInterval = DateInterval(start: date, duration: 60) XCTAssertEqual(dateInterval.duration, 60) @@ -52,7 +52,7 @@ class TestDateInterval: XCTestCase { XCTAssertEqual(dateInterval1.compare(dateInterval2), .orderedAscending) XCTAssertEqual(dateInterval2.compare(dateInterval1), .orderedDescending) } - + func test_compareDifferentDurations() { let date = dateWithString("2019-04-04 17:09:23 -0700") let dateInterval1 = DateInterval(start: date, duration: 60) @@ -68,7 +68,7 @@ class TestDateInterval: XCTestCase { XCTAssertEqual(dateInterval1.compare(dateInterval2), .orderedSame) XCTAssertEqual(dateInterval2.compare(dateInterval1), .orderedSame) } - + func test_comparisonOperators() { let date1 = dateWithString("2019-04-04 17:00:00 -0700") let date2 = dateWithString("2019-04-04 17:30:00 -0700") @@ -88,7 +88,7 @@ class TestDateInterval: XCTestCase { let dateInterval2 = DateInterval(start: date2, duration: 15) XCTAssertTrue(dateInterval1.intersects(dateInterval2)) } - + func test_intersection() { let date1 = dateWithString("2019-04-04 17:00:00 -0700") let date2 = dateWithString("2019-04-04 17:15:00 -0700") @@ -108,7 +108,7 @@ class TestDateInterval: XCTestCase { XCTAssertNotNil(intersection) XCTAssertEqual(intersection!.duration, 0) } - + func test_intersectionNil() { let date1 = dateWithString("2019-04-04 17:00:00 -0700") let date2 = dateWithString("2019-04-04 17:30:01 -0700") @@ -116,7 +116,7 @@ class TestDateInterval: XCTestCase { let dateInterval2 = DateInterval(start: date2, duration: 60 * 30) XCTAssertNil(dateInterval1.intersection(with: dateInterval2)) } - + func test_contains() { let date1 = dateWithString("2019-04-04 17:00:00 -0700") let date2 = dateWithString("2019-04-04 17:30:00 -0700") @@ -127,7 +127,7 @@ class TestDateInterval: XCTestCase { XCTAssertTrue(dateInterval.contains(date3)) XCTAssertFalse(dateInterval.contains(date4)) } - + func test_hashing() { guard #available(iOS 10.10, OSX 10.12, tvOS 10.0, watchOS 3.0, *) else { return }