Unit tests for SmartRest

Dependencies:   C027 SmartRest mbed

Committer:
vwochnik
Date:
Mon Mar 24 10:12:45 2014 +0000
Revision:
0:789029e49ea1
fix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vwochnik 0:789029e49ea1 1 #include "AggregatorTest.h"
vwochnik 0:789029e49ea1 2 #include <stdlib.h>
vwochnik 0:789029e49ea1 3 #include <stdio.h>
vwochnik 0:789029e49ea1 4 #include <assert.h>
vwochnik 0:789029e49ea1 5 #include <string.h>
vwochnik 0:789029e49ea1 6 #include <StaticData.h>
vwochnik 0:789029e49ea1 7 #include <CharValue.h>
vwochnik 0:789029e49ea1 8 #include <IntegerValue.h>
vwochnik 0:789029e49ea1 9 #include <FloatValue.h>
vwochnik 0:789029e49ea1 10 #include <ComposedRecord.h>
vwochnik 0:789029e49ea1 11
vwochnik 0:789029e49ea1 12 AggregatorTest::AggregatorTest()
vwochnik 0:789029e49ea1 13 {
vwochnik 0:789029e49ea1 14 }
vwochnik 0:789029e49ea1 15
vwochnik 0:789029e49ea1 16 void AggregatorTest::testAll()
vwochnik 0:789029e49ea1 17 {
vwochnik 0:789029e49ea1 18 test1();
vwochnik 0:789029e49ea1 19 test2();
vwochnik 0:789029e49ea1 20 }
vwochnik 0:789029e49ea1 21
vwochnik 0:789029e49ea1 22 void AggregatorTest::test1()
vwochnik 0:789029e49ea1 23 {
vwochnik 0:789029e49ea1 24 assert((_aggr.length() + _aggr.writtenLength()) == 0);
vwochnik 0:789029e49ea1 25
vwochnik 0:789029e49ea1 26 DataGenerator *copy = NULL;
vwochnik 0:789029e49ea1 27 for (size_t a = 1; a < 11; a++) {
vwochnik 0:789029e49ea1 28 printf("Filling aggregator for the %dth time\n", a);
vwochnik 0:789029e49ea1 29
vwochnik 0:789029e49ea1 30 StaticData data("This is a test.", true);
vwochnik 0:789029e49ea1 31 assert(data.writtenLength() == 15);
vwochnik 0:789029e49ea1 32
vwochnik 0:789029e49ea1 33 for (size_t n = 0; n < a*10; n++) {
vwochnik 0:789029e49ea1 34 assert(_aggr.add(data));
vwochnik 0:789029e49ea1 35 assert(_aggr.length() == n+1);
vwochnik 0:789029e49ea1 36 if (n % 10 == 0) {
vwochnik 0:789029e49ea1 37 assert(_aggr.writtenLength() == (n+1)*data.writtenLength());
vwochnik 0:789029e49ea1 38 }
vwochnik 0:789029e49ea1 39 }
vwochnik 0:789029e49ea1 40 if (copy != NULL)
vwochnik 0:789029e49ea1 41 delete copy;
vwochnik 0:789029e49ea1 42 copy = _aggr.copy();
vwochnik 0:789029e49ea1 43 assert(_aggr.writtenLength() == copy->writtenLength());
vwochnik 0:789029e49ea1 44 _aggr.clear();
vwochnik 0:789029e49ea1 45 }
vwochnik 0:789029e49ea1 46
vwochnik 0:789029e49ea1 47 assert((_aggr.length() + _aggr.writtenLength()) == 0);
vwochnik 0:789029e49ea1 48
vwochnik 0:789029e49ea1 49 assert(copy->writtenLength() == 1000*10*15);
vwochnik 0:789029e49ea1 50 delete copy;
vwochnik 0:789029e49ea1 51 }
vwochnik 0:789029e49ea1 52
vwochnik 0:789029e49ea1 53 void AggregatorTest::test2()
vwochnik 0:789029e49ea1 54 {
vwochnik 0:789029e49ea1 55 assert((_aggr.length() + _aggr.writtenLength()) == 0);
vwochnik 0:789029e49ea1 56
vwochnik 0:789029e49ea1 57 for (size_t a = 1; a < 11; a++) {
vwochnik 0:789029e49ea1 58 printf("Filling aggregator for the %dth time\n", a);
vwochnik 0:789029e49ea1 59
vwochnik 0:789029e49ea1 60 for (size_t n = 0; n < a*10; n++) {
vwochnik 0:789029e49ea1 61 CharValue v1("Test...");
vwochnik 0:789029e49ea1 62 FloatValue v2(3.1459*n, 4);
vwochnik 0:789029e49ea1 63 IntegerValue v3(300*n);
vwochnik 0:789029e49ea1 64 ComposedRecord data;
vwochnik 0:789029e49ea1 65 data.add(v1).add(v2).add(v3);
vwochnik 0:789029e49ea1 66
vwochnik 0:789029e49ea1 67 _aggr.add(data);
vwochnik 0:789029e49ea1 68 if (n % 10 == 0) {
vwochnik 0:789029e49ea1 69 assert(_aggr.writtenLength() == (n+1)*data.writtenLength());
vwochnik 0:789029e49ea1 70 }
vwochnik 0:789029e49ea1 71 }
vwochnik 0:789029e49ea1 72
vwochnik 0:789029e49ea1 73 size_t len = _aggr.writtenLength();
vwochnik 0:789029e49ea1 74 DataGenerator *copy = _aggr.copy();
vwochnik 0:789029e49ea1 75 assert(_aggr.writtenLength() == copy->writtenLength());
vwochnik 0:789029e49ea1 76 _aggr.clear();
vwochnik 0:789029e49ea1 77 assert(copy->writtenLength() == len);
vwochnik 0:789029e49ea1 78 }
vwochnik 0:789029e49ea1 79 }
vwochnik 0:789029e49ea1 80