summaryrefslogtreecommitdiff
path: root/FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestTemperatureCalculator.c
diff options
context:
space:
mode:
Diffstat (limited to 'FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestTemperatureCalculator.c')
-rw-r--r--FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestTemperatureCalculator.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestTemperatureCalculator.c b/FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestTemperatureCalculator.c
new file mode 100644
index 000000000..dbb7dea06
--- /dev/null
+++ b/FreeRTOS-Plus/Test/CMock/examples/temp_sensor/test/TestTemperatureCalculator.c
@@ -0,0 +1,33 @@
+#include "unity.h"
+#include "Types.h"
+#include "TemperatureCalculator.h"
+#include <math.h>
+
+void setUp(void)
+{
+}
+
+void tearDown(void)
+{
+}
+
+void testTemperatureCalculatorShouldCalculateTemperatureFromMillivolts(void)
+{
+ float result;
+
+ // Series resistor is 5k Ohms; Reference voltage is 3.0V
+ // R(t) = A * e^(B*t); R is resistance of thermisor; t is temperature in C
+ result = TemperatureCalculator_Calculate(1000);
+ TEST_ASSERT_FLOAT_WITHIN(0.01f, 25.0f, result);
+
+ result = TemperatureCalculator_Calculate(2985);
+ TEST_ASSERT_FLOAT_WITHIN(0.01f, 68.317f, result);
+
+ result = TemperatureCalculator_Calculate(3);
+ TEST_ASSERT_FLOAT_WITHIN(0.01f, -19.96f, result);
+}
+
+void testShouldReturnNegativeInfinityWhen_0_millivoltsInput(void)
+{
+ TEST_ASSERT_FLOAT_WITHIN(0.0000001f, -INFINITY, TemperatureCalculator_Calculate(0));
+}