NSDateTests.swift 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. //
  2. // NSDateTests.swift
  3. // Naterade
  4. //
  5. // Created by Nathan Racklyeft on 1/18/16.
  6. // Copyright © 2016 Nathan Racklyeft. All rights reserved.
  7. //
  8. import XCTest
  9. @testable import LoopKit
  10. class NSDateTests: XCTestCase {
  11. func testDateCeiledToInterval() {
  12. let calendar = Calendar.current
  13. let five01 = calendar.nextDate(after: Date(), matching: DateComponents(hour: 5, minute: 0, second: 1), matchingPolicy: .nextTime)!
  14. let five05 = calendar.nextDate(after: five01, matching: DateComponents(hour: 5, minute: 5, second: 0), matchingPolicy: .nextTime)!
  15. XCTAssertEqual(five05, five01.dateCeiledToTimeInterval(TimeInterval(minutes: 5)))
  16. let six = calendar.nextDate(after: five01, matching: DateComponents(hour: 6, minute: 0, second: 0), matchingPolicy: .nextTime)!
  17. XCTAssertEqual(six, five01.dateCeiledToTimeInterval(TimeInterval(minutes: 60)))
  18. XCTAssertEqual(five05, five05.dateCeiledToTimeInterval(TimeInterval(minutes: 5)))
  19. let five47 = calendar.nextDate(after: five01, matching: DateComponents(hour: 5, minute: 47, second: 58), matchingPolicy: .nextTime)!
  20. let five50 = calendar.nextDate(after: five01, matching: DateComponents(hour: 5, minute: 50, second: 0), matchingPolicy: .nextTime)!
  21. XCTAssertEqual(five50, five47.dateCeiledToTimeInterval(TimeInterval(minutes: 5)))
  22. let twentyThree59 = calendar.nextDate(after: five01, matching: DateComponents(hour: 23, minute: 59, second: 0), matchingPolicy: .nextTime)!
  23. let tomorrowMidnight = calendar.nextDate(after: five01, matching: DateComponents(hour: 0, minute: 0, second: 0), matchingPolicy: .nextTime)!
  24. XCTAssertEqual(tomorrowMidnight, twentyThree59.dateCeiledToTimeInterval(TimeInterval(minutes: 5)))
  25. XCTAssertEqual(five01, five01.dateCeiledToTimeInterval(TimeInterval(0)))
  26. }
  27. func testDateFlooredToInterval() {
  28. let calendar = Calendar.current
  29. let five01 = calendar.nextDate(after: Date(), matching: DateComponents(hour: 5, minute: 0, second: 1), matchingPolicy: .nextTime)!
  30. let five = calendar.nextDate(after: five01, matching: DateComponents(hour: 5, minute: 0, second: 0), matchingPolicy: .nextTime, direction: .backward)!
  31. XCTAssertEqual(five, five01.dateFlooredToTimeInterval(TimeInterval(minutes: 5)))
  32. let five59 = calendar.nextDate(after: five01, matching: DateComponents(hour: 5, minute: 59, second: 0), matchingPolicy: .nextTime)!
  33. XCTAssertEqual(five, five59.dateFlooredToTimeInterval(TimeInterval(minutes: 60)))
  34. let five55 = calendar.nextDate(after: five01, matching: DateComponents(hour: 5, minute: 55, second: 0), matchingPolicy: .nextTime)!
  35. XCTAssertEqual(five55, five59.dateFlooredToTimeInterval(TimeInterval(minutes: 5)))
  36. XCTAssertEqual(five, five.dateFlooredToTimeInterval(TimeInterval(minutes: 5)))
  37. XCTAssertEqual(five01, five01.dateFlooredToTimeInterval(TimeInterval(0)))
  38. }
  39. }