CalibrationsTests.swift 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import Swinject
  2. @testable import Trio
  3. import XCTest
  4. class CalibrationsTests: XCTestCase, Injectable {
  5. let fileStorage = BaseFileStorage()
  6. @Injected() var calibrationService: CalibrationService!
  7. let resolver = TrioApp().resolver
  8. override func setUp() {
  9. injectServices(resolver)
  10. }
  11. func testCreateSimpleCalibration() {
  12. // restore state so each test is independent
  13. calibrationService.removeAllCalibrations()
  14. let calibration = Calibration(x: 100.0, y: 102.0)
  15. calibrationService.addCalibration(calibration)
  16. XCTAssertTrue(calibrationService.calibrations.isNotEmpty)
  17. XCTAssertTrue(calibrationService.slope == 1)
  18. XCTAssertTrue(calibrationService.intercept == 2)
  19. XCTAssertTrue(calibrationService.calibrate(value: 104) == 106)
  20. }
  21. func testCreateMultipleCalibration() {
  22. // restore state so each test is independent
  23. calibrationService.removeAllCalibrations()
  24. let calibration = Calibration(x: 100.0, y: 120)
  25. calibrationService.addCalibration(calibration)
  26. let calibration2 = Calibration(x: 120.0, y: 130.0)
  27. calibrationService.addCalibration(calibration2)
  28. XCTAssertEqual(calibrationService.slope, 0.8, accuracy: 0.0001)
  29. XCTAssertEqual(calibrationService.intercept, 37, accuracy: 0.0001)
  30. XCTAssertEqual(calibrationService.calibrate(value: 80), 101, accuracy: 0.0001)
  31. calibrationService.removeLast()
  32. XCTAssertTrue(calibrationService.calibrations.count == 1)
  33. calibrationService.removeAllCalibrations()
  34. XCTAssertTrue(calibrationService.calibrations.isEmpty)
  35. }
  36. override func setUpWithError() throws {
  37. // Put setup code here. This method is called before the invocation of each test method in the class.
  38. }
  39. override func tearDownWithError() throws {
  40. // Put teardown code here. This method is called after the invocation of each test method in the class.
  41. }
  42. }