1 #include "TimeSeries/deserialize.h"
6 #include "Util/utils.h"
10 // decode sample_byCols.bin into the toy dataset (4 customers, 3 sample points)
11 const char* ifName
= "../data/test/sample_byCols.bin";
14 uint32_t nbSeries
= get_nbSeries(ifName
);
15 LUT_ASSERT(nbSeries
== 4);
16 uint32_t tsLength
= get_tsLength(ifName
);
17 LUT_ASSERT(tsLength
== 13); //3*3+4
23 PowerCurve
* powerCurves
= deserialize(ifName
, NULL
, ranks
, nbSeries
);
25 Real epsilon
= 0.1; //epsilon = 0.1 because raw powers are truncated
27 LUT_ASSERT(powerCurves
[0].ID
== 12301);
28 LUT_ASSERT(fabs(powerCurves
[0].values
[0] - 23.051) < epsilon
);
29 LUT_ASSERT(fabs(powerCurves
[0].values
[1] - 33.052) < epsilon
);
30 LUT_ASSERT(fabs(powerCurves
[0].values
[2] - 43.053) < epsilon
);
32 LUT_ASSERT(powerCurves
[1].ID
== 1313);
33 LUT_ASSERT(fabs(powerCurves
[1].values
[0] - 50.05) < epsilon
);
34 LUT_ASSERT(fabs(powerCurves
[1].values
[1] - 51.05) < epsilon
);
35 LUT_ASSERT(fabs(powerCurves
[1].values
[2] - 52.05) < epsilon
);
37 LUT_ASSERT(powerCurves
[2].ID
== 50000);
38 LUT_ASSERT(fabs(powerCurves
[2].values
[0] - 150.321) < epsilon
);
39 LUT_ASSERT(fabs(powerCurves
[2].values
[1] - 160.322) < epsilon
);
40 LUT_ASSERT(fabs(powerCurves
[2].values
[2] - 140.323) < epsilon
);
42 LUT_ASSERT(powerCurves
[3].ID
== 6300);
43 LUT_ASSERT(fabs(powerCurves
[3].values
[0] - 500.30) < epsilon
);
44 LUT_ASSERT(fabs(powerCurves
[3].values
[1] - 501.31) < epsilon
);
45 LUT_ASSERT(fabs(powerCurves
[3].values
[2] - 502.32) < epsilon
);
47 for (int i
= 0; i
< nbSeries
; i
++)
48 free(powerCurves
[i
].values
);
54 // decode sample_byRows.bin into the toy dataset (4 customers, 3 sample points)
55 const char* ifName
= "../data/test/sample_byRows.bin";
58 uint32_t nbSeries
= get_nbSeries(ifName
);
59 LUT_ASSERT(nbSeries
== 4);
60 uint32_t tsLength
= get_tsLength(ifName
);
61 LUT_ASSERT(tsLength
== 13); //3*3+4
67 PowerCurve
* powerCurves
= deserialize(ifName
, NULL
, ranks
, nbSeries
);
69 Real epsilon
= 0.1; //epsilon = 0.1 because raw powers are truncated
71 LUT_ASSERT(powerCurves
[0].ID
== 12301);
72 LUT_ASSERT(fabs(powerCurves
[0].values
[0]/100.0-3 - 23.051) < epsilon
);
73 LUT_ASSERT(fabs(powerCurves
[0].values
[1]/100.0-3 - 33.052) < epsilon
);
74 LUT_ASSERT(fabs(powerCurves
[0].values
[2]/100.0-3 - 43.053) < epsilon
);
76 LUT_ASSERT(powerCurves
[1].ID
== 1313);
77 LUT_ASSERT(fabs(powerCurves
[1].values
[0]/100.0-3 - 50.05) < epsilon
);
78 LUT_ASSERT(fabs(powerCurves
[1].values
[1]/100.0-3 - 51.05) < epsilon
);
79 LUT_ASSERT(fabs(powerCurves
[1].values
[2]/100.0-3 - 52.05) < epsilon
);
81 LUT_ASSERT(powerCurves
[2].ID
== 50000);
82 LUT_ASSERT(fabs(powerCurves
[2].values
[0]/100.0-3 - 150.321) < epsilon
);
83 LUT_ASSERT(fabs(powerCurves
[2].values
[1]/100.0-3 - 160.322) < epsilon
);
84 LUT_ASSERT(fabs(powerCurves
[2].values
[2]/100.0-3 - 140.323) < epsilon
);
86 LUT_ASSERT(powerCurves
[3].ID
== 6300);
87 LUT_ASSERT(fabs(powerCurves
[3].values
[0]/100.0-3 - 500.30) < epsilon
);
88 LUT_ASSERT(fabs(powerCurves
[3].values
[1]/100.0-3 - 501.31) < epsilon
);
89 LUT_ASSERT(fabs(powerCurves
[3].values
[2]/100.0-3 - 502.32) < epsilon
);
91 for (int i
= 0; i
< nbSeries
; i
++)
92 free(powerCurves
[i
].values
);