diff --git a/src/tests/tests_calc.cpp b/src/tests/tests_calc.cpp index 39e84ee..c0321ab 100644 --- a/src/tests/tests_calc.cpp +++ b/src/tests/tests_calc.cpp @@ -21,20 +21,41 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include -#include +#include +#include #include -test(calc_createFormula) { - Serial.println("Not implemented yet (calc_createFormula)"); +// TODO: Add more test cases to explore formula creation error conditions when values are out of bounds +// TODO: Add more test cases to check order 3 + 4 formula creation as well. + +test(calc_createFormula1) { + char buffer[100]; + RawFormulaData fd = { { 0.0, 25.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}, {0.0, 1.0, 1.02, 1.033, 1.00011, 1.0, 1.0, 1.0, 1.0, 1.0} }; + int i = createFormula(fd, &buffer[0], sizeof(buffer), 2); + assertEqual( i, ERR_FORMULA_NOTENOUGHVALUES ); +} + +test(calc_createFormula2) { + char buffer[100]; + RawFormulaData fd = { { 25.0, 30.0, 35.0, 40.0, 45.0, 50.0, 55.0, 60.0, 65.0, 70.0}, {1.0, 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.1} }; + int i = createFormula(fd, &buffer[0], sizeof(buffer), 2); + assertEqual( i, 0 ); + assertEqual( &buffer[0], "0.00000909*tilt^2+0.00124545*tilt+0.96445455"); } test(calc_calculateGravity) { - Serial.println("Not implemented yet (calc_calculateGravity)"); + const char* formula = "0.00000909*tilt^2+0.00124545*tilt+0.96445455"; + double g = calculateGravity(30, 20, formula); + float v1 = reduceFloatPrecision(g, 2); + float v2 = 1.01; + assertEqual(v1, v2); } test(calc_gravityTemperatureCorrectionC) { - Serial.println("Not implemented yet (calc_gravityTemperatureCorrectionC)"); + double g = gravityTemperatureCorrectionC( 1.02, 45.0, 20.0); + float v1 = reduceFloatPrecision(g, 2); + float v2 = 1.03; + assertEqual(v1, v2); } // EOF \ No newline at end of file