forked from milesburton/Arduino-Temperature-Control-Library
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathunit_test_001.cpp
More file actions
84 lines (65 loc) · 2.46 KB
/
unit_test_001.cpp
File metadata and controls
84 lines (65 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// FILE: unit_test_001.cpp
// AUTHOR: Miles Burton / Rob Tillaart
// DATE: 2021-01-10
// PURPOSE: unit tests for the Arduino-Temperature-Control-Library
// https://github.com/MilesBurton/Arduino-Temperature-Control-Library
#include <ArduinoUnitTests.h>
#include <Arduino.h>
#include <OneWire.h>
#include <DallasTemperature.h>
// Mock pin for testing
#define ONE_WIRE_BUS 2
unittest_setup() {
fprintf(stderr, "VERSION: %s\n", DALLASTEMPLIBVERSION);
}
unittest_teardown() {
fprintf(stderr, "\n");
}
// Test constants defined in the library
unittest(test_models) {
assertEqual(0x10, DS18S20MODEL);
assertEqual(0x28, DS18B20MODEL);
assertEqual(0x22, DS1822MODEL);
assertEqual(0x3B, DS1825MODEL);
assertEqual(0x42, DS28EA00MODEL);
}
// Test error codes defined in the library
unittest(test_error_code) {
assertEqual(DEVICE_DISCONNECTED_C, -127);
assertEqual(DEVICE_DISCONNECTED_F, -196.6);
assertEqual(DEVICE_DISCONNECTED_RAW, -7040);
assertEqual(DEVICE_FAULT_OPEN_C, -254);
assertEqualFloat(DEVICE_FAULT_OPEN_F, -425.2, 0.1);
assertEqual(DEVICE_FAULT_OPEN_RAW, -32512);
assertEqual(DEVICE_FAULT_SHORTGND_C, -253);
assertEqualFloat(DEVICE_FAULT_SHORTGND_F, -423.4, 0.1);
assertEqual(DEVICE_FAULT_SHORTGND_RAW, -32384);
assertEqual(DEVICE_FAULT_SHORTVDD_C, -252);
assertEqualFloat(DEVICE_FAULT_SHORTVDD_F, -421.6, 0.1);
assertEqual(DEVICE_FAULT_SHORTVDD_RAW, -32256);
assertEqual(DEVICE_POWER_ON_RESET_C, -251);
assertEqualFloat(DEVICE_POWER_ON_RESET_F, -419.8, 0.1);
assertEqual(DEVICE_POWER_ON_RESET_RAW, -32128);
assertEqual(DEVICE_INSUFFICIENT_POWER_C, -250);
assertEqualFloat(DEVICE_INSUFFICIENT_POWER_F, -418.0, 0.1);
assertEqual(DEVICE_INSUFFICIENT_POWER_RAW, -32000);
}
// Test basic initialization and functionality of the DallasTemperature library
unittest(test_initialization) {
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
sensors.begin();
// Initially, there should be no devices detected
assertEqual(0, sensors.getDeviceCount());
assertFalse(sensors.isParasitePowerMode());
}
// Simulate a basic temperature read (mocked)
unittest(test_temperature_read) {
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
sensors.begin();
// Mock reading temperature
float tempC = sensors.getTempCByIndex(0);
assertEqual(DEVICE_DISCONNECTED_C, tempC); // Simulated no device connected
}
unittest_main()