Unit tests for SmartRest
Dependencies: C027 SmartRest mbed
Diff: values/AggregatorTest.cpp
- Revision:
- 0:789029e49ea1
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/values/AggregatorTest.cpp Mon Mar 24 10:12:45 2014 +0000 @@ -0,0 +1,80 @@ +#include "AggregatorTest.h" +#include <stdlib.h> +#include <stdio.h> +#include <assert.h> +#include <string.h> +#include <StaticData.h> +#include <CharValue.h> +#include <IntegerValue.h> +#include <FloatValue.h> +#include <ComposedRecord.h> + +AggregatorTest::AggregatorTest() +{ +} + +void AggregatorTest::testAll() +{ + test1(); + test2(); +} + +void AggregatorTest::test1() +{ + assert((_aggr.length() + _aggr.writtenLength()) == 0); + + DataGenerator *copy = NULL; + for (size_t a = 1; a < 11; a++) { + printf("Filling aggregator for the %dth time\n", a); + + StaticData data("This is a test.", true); + assert(data.writtenLength() == 15); + + for (size_t n = 0; n < a*10; n++) { + assert(_aggr.add(data)); + assert(_aggr.length() == n+1); + if (n % 10 == 0) { + assert(_aggr.writtenLength() == (n+1)*data.writtenLength()); + } + } + if (copy != NULL) + delete copy; + copy = _aggr.copy(); + assert(_aggr.writtenLength() == copy->writtenLength()); + _aggr.clear(); + } + + assert((_aggr.length() + _aggr.writtenLength()) == 0); + + assert(copy->writtenLength() == 1000*10*15); + delete copy; +} + +void AggregatorTest::test2() +{ + assert((_aggr.length() + _aggr.writtenLength()) == 0); + + for (size_t a = 1; a < 11; a++) { + printf("Filling aggregator for the %dth time\n", a); + + for (size_t n = 0; n < a*10; n++) { + CharValue v1("Test..."); + FloatValue v2(3.1459*n, 4); + IntegerValue v3(300*n); + ComposedRecord data; + data.add(v1).add(v2).add(v3); + + _aggr.add(data); + if (n % 10 == 0) { + assert(_aggr.writtenLength() == (n+1)*data.writtenLength()); + } + } + + size_t len = _aggr.writtenLength(); + DataGenerator *copy = _aggr.copy(); + assert(_aggr.writtenLength() == copy->writtenLength()); + _aggr.clear(); + assert(copy->writtenLength() == len); + } +} +