HKUnitTests.swift 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. //
  2. // HKUnitTests.swift
  3. // LoopKitTests
  4. //
  5. // Created by Nathaniel Hamming on 2021-03-18.
  6. // Copyright © 2021 LoopKit Authors. All rights reserved.
  7. //
  8. import XCTest
  9. import HealthKit
  10. @testable import LoopKit
  11. class HKUnitTests: XCTestCase {
  12. func testPreferredFractionDigits() throws {
  13. XCTAssertEqual(HKUnit.millimolesPerLiter.preferredFractionDigits, 1)
  14. XCTAssertEqual(HKUnit.millimolesPerLiter.unitDivided(by: .internationalUnit()).preferredFractionDigits, 1)
  15. XCTAssertEqual(HKUnit.millimolesPerLiter.unitDivided(by: .minute()).preferredFractionDigits, 1)
  16. XCTAssertEqual(HKUnit.gram().preferredFractionDigits, 0)
  17. XCTAssertEqual(HKUnit.gram().unitDivided(by: .internationalUnit()).preferredFractionDigits, 0)
  18. XCTAssertEqual(HKUnit.milligramsPerDeciliter.preferredFractionDigits, 0)
  19. XCTAssertEqual(HKUnit.milligramsPerDeciliter.unitDivided(by: .internationalUnit()).preferredFractionDigits, 0)
  20. XCTAssertEqual(HKUnit.milligramsPerDeciliter.unitDivided(by: .minute()).preferredFractionDigits, 0)
  21. XCTAssertEqual(HKUnit.internationalUnit().preferredFractionDigits, 0)
  22. XCTAssertEqual(HKUnit.internationalUnit().unitDivided(by: .hour()).preferredFractionDigits, 0)
  23. }
  24. func testRoundValue() throws {
  25. XCTAssertEqual(HKUnit.millimolesPerLiter.roundForPreferredDigits(value: 1.34), 1.3)
  26. XCTAssertEqual(HKUnit.millimolesPerLiter.roundForPicker(value: 2.56), 2.6)
  27. XCTAssertEqual(HKUnit.milligramsPerDeciliter.roundForPreferredDigits(value: 1.34), 1)
  28. XCTAssertEqual(HKUnit.milligramsPerDeciliter.roundForPicker(value: 2.56), 3)
  29. }
  30. func testMaxFractionDigits() throws {
  31. XCTAssertEqual(HKUnit.internationalUnit().maxFractionDigits, 3)
  32. XCTAssertEqual(HKUnit.internationalUnit().unitDivided(by: .hour()).maxFractionDigits, 3)
  33. XCTAssertEqual(HKUnit.millimolesPerLiter.maxFractionDigits, 1)
  34. XCTAssertEqual(HKUnit.millimolesPerLiter.unitDivided(by: .internationalUnit()).maxFractionDigits, 1)
  35. XCTAssertEqual(HKUnit.millimolesPerLiter.unitDivided(by: .minute()).maxFractionDigits, 1)
  36. XCTAssertEqual(HKUnit.gram().unitDivided(by: .internationalUnit()).maxFractionDigits, 1)
  37. XCTAssertEqual(HKUnit.gram().maxFractionDigits, 0)
  38. XCTAssertEqual(HKUnit.milligramsPerDeciliter.maxFractionDigits, 0)
  39. XCTAssertEqual(HKUnit.milligramsPerDeciliter.unitDivided(by: .internationalUnit()).maxFractionDigits, 0)
  40. XCTAssertEqual(HKUnit.milligramsPerDeciliter.unitDivided(by: .minute()).maxFractionDigits, 0)
  41. }
  42. func testPickerFractionDigits() throws {
  43. XCTAssertEqual(HKUnit.internationalUnit().pickerFractionDigits, 3)
  44. XCTAssertEqual(HKUnit.internationalUnit().unitDivided(by: .hour()).pickerFractionDigits, 3)
  45. XCTAssertEqual(HKUnit.millimolesPerLiter.pickerFractionDigits, 1)
  46. XCTAssertEqual(HKUnit.millimolesPerLiter.unitDivided(by: .internationalUnit()).pickerFractionDigits, 1)
  47. XCTAssertEqual(HKUnit.millimolesPerLiter.unitDivided(by: .minute()).pickerFractionDigits, 1)
  48. XCTAssertEqual(HKUnit.gram().unitDivided(by: .internationalUnit()).pickerFractionDigits, 1)
  49. XCTAssertEqual(HKUnit.gram().pickerFractionDigits, 0)
  50. XCTAssertEqual(HKUnit.milligramsPerDeciliter.pickerFractionDigits, 0)
  51. XCTAssertEqual(HKUnit.milligramsPerDeciliter.unitDivided(by: .internationalUnit()).pickerFractionDigits, 0)
  52. XCTAssertEqual(HKUnit.milligramsPerDeciliter.unitDivided(by: .minute()).pickerFractionDigits, 0)
  53. }
  54. }