DailyValueScheduleTests.swift 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //
  2. // DailyValueScheduleTests.swift
  3. // LoopKitTests
  4. //
  5. // Created by Michael Pangburn on 3/27/19.
  6. // Copyright © 2019 LoopKit Authors. All rights reserved.
  7. //
  8. import XCTest
  9. @testable import LoopKit
  10. final class DailyValueScheduleTests: XCTestCase {
  11. func testZipSingleAlignedValue() {
  12. let lhs = DailyValueSchedule(dailyItems: [
  13. RepeatingScheduleValue(startTime: 0, value: 1.0)
  14. ])!
  15. let rhs = DailyValueSchedule(dailyItems: [
  16. RepeatingScheduleValue(startTime: 0, value: 1.5)
  17. ])!
  18. let expected = DailyValueSchedule(dailyItems: [
  19. RepeatingScheduleValue(startTime: 0, value: (1.0, 1.5))
  20. ])!
  21. XCTAssert(.zip(lhs, rhs) == expected)
  22. }
  23. func testZipMultipleAlignedValues() {
  24. let lhs = DailyValueSchedule(dailyItems: [
  25. RepeatingScheduleValue(startTime: 0, value: 1.0),
  26. RepeatingScheduleValue(startTime: 3600, value: 2.0),
  27. ])!
  28. let rhs = DailyValueSchedule(dailyItems: [
  29. RepeatingScheduleValue(startTime: 0, value: 1.5),
  30. RepeatingScheduleValue(startTime: 3600, value: 3.0)
  31. ])!
  32. let expected = DailyValueSchedule(dailyItems: [
  33. RepeatingScheduleValue(startTime: 0, value: (1.0, 1.5)),
  34. RepeatingScheduleValue(startTime: 3600, value: (2.0, 3.0))
  35. ])!
  36. XCTAssert(.zip(lhs, rhs) == expected)
  37. }
  38. func testZipStaggeredValues() {
  39. let lhs = DailyValueSchedule(dailyItems: [
  40. RepeatingScheduleValue(startTime: 0, value: 1.0),
  41. RepeatingScheduleValue(startTime: 3600, value: 2.0),
  42. ])!
  43. let rhs = DailyValueSchedule(dailyItems: [
  44. RepeatingScheduleValue(startTime: 0, value: 1.5),
  45. RepeatingScheduleValue(startTime: 7200, value: 3.0)
  46. ])!
  47. let expected = DailyValueSchedule(dailyItems: [
  48. RepeatingScheduleValue(startTime: 0, value: (1.0, 1.5)),
  49. RepeatingScheduleValue(startTime: 3600, value: (2.0, 1.5)),
  50. RepeatingScheduleValue(startTime: 7200, value: (2.0, 3.0))
  51. ])!
  52. XCTAssert(.zip(lhs, rhs) == expected)
  53. }
  54. func testZipDifferentCounts() {
  55. let lhs = DailyValueSchedule(dailyItems: [
  56. RepeatingScheduleValue(startTime: 0, value: 1.0),
  57. RepeatingScheduleValue(startTime: 3600, value: 2.0),
  58. RepeatingScheduleValue(startTime: 10800, value: 4.0),
  59. ])!
  60. let rhs = DailyValueSchedule(dailyItems: [
  61. RepeatingScheduleValue(startTime: 0, value: 1.5),
  62. RepeatingScheduleValue(startTime: 7200, value: 3.0)
  63. ])!
  64. let expected = DailyValueSchedule(dailyItems: [
  65. RepeatingScheduleValue(startTime: 0, value: (1.0, 1.5)),
  66. RepeatingScheduleValue(startTime: 3600, value: (2.0, 1.5)),
  67. RepeatingScheduleValue(startTime: 7200, value: (2.0, 3.0)),
  68. RepeatingScheduleValue(startTime: 10800, value: (4.0, 3.0)),
  69. ])!
  70. XCTAssert(.zip(lhs, rhs) == expected)
  71. }
  72. }