},
.num_updates = (size_t[]){10, 6, 4},
.fam = create_metric_family_for_test7("test4-update", 3, 5, 23),
- },
+ }
};
uc_init();
for (size_t i = 0; i < (sizeof(cases) / sizeof(cases[0])); ++i) {
gauge_t ret_value;
gauge_t want_ret_value;
metric_family_t *fam;
- double *updates;
- int num_updates;
+ double **updates;
+ size_t *num_updates;
} cases[] = {
{
/* TODO(bkjg): maybe change the return value to EINVAL when the
(gauge_t[]){43.543, 654.32, 948.543, 1342.42}),
.want_get = -1,
.percent = 57.34,
+ .num_updates = (size_t[]){0, 0, 0, 0},
},
{
.fam = create_metric_family_for_test2(
(uint64_t[]){3, 543, 5, 654, 43, 4}),
.want_get = -1,
.percent = 49.23,
+ .num_updates = (size_t[]){0, 0, 0, 0, 0, 0},
},
{
.fam = create_metric_family_for_test3(
"test3-percentile-by-name", 2, (gauge_t[]){324.234, 52452.342}),
.want_get = -1,
.percent = 23.54,
+ .num_updates = (size_t[]){0, 0},
},
{
.fam = create_metric_family_for_test4("test4-percentile-by-name"),
.percent = 89.73,
.want_ret_value = NAN,
+ .num_updates = (size_t[]){0},
},
{
.fam = create_metric_family_for_test5("test5-percentile-by-name", 6,
104, 1.0012, 8),
.want_get = -1,
.percent = -76,
+ .num_updates = (size_t[]){0, 0, 0, 0, 0, 0},
},
{
.fam = create_metric_family_for_test6(
99031.53623, 99147.69204}),
.want_get = -1,
.percent = 100.4,
+ .num_updates = (size_t[]){0, 0, 0, 0, 0, 0, 0, 0},
},
{
.fam = create_metric_family_for_test7("test7-percentile-by-name", 4,
193, 47.97),
.percent = 0,
- .num_updates = 71,
- .updates =
- (double[]){82359.12294, 68158.41378, 48412.81238, 5904.4289,
- 34826.95792, 57900.41609, 33671.55587, 24959.94718,
- 93646.26915, 1520.75565, 14639.69397, 70222.39415,
- 21981.56962, 16146.0281, 13983.92362, 52167.56135,
- 27539.19779, 45057.29114, 3319.77024, 34066.56465,
- 10173.62876, 91667.04402, 98416.81719, 96030.39534,
- 79983.43468, 77316.03541, 5659.02605, 55984.92588,
- 77457.94164, 3384.64733, 72593.37989, 66288.34529,
- 17548.12711, 39080.58183, 70098.8097, 64922.09787,
- 38622.17965, 63267.44964, 80319.19425, 57421.82315,
- 54532.87389, 23394.05223, 6053.33071, 81659.40367,
- 38240.65576, 85423.95662, 54837.08557, 30067.92726,
- 60829.11685, 5428.52609, 6612.06311, 70475.98393,
- 85464.98161, 20740.81419, 43986.23893, 70876.29799,
- 1037.86676, 76031.71462, 53813.00219, 4035.65718,
- 5811.23089, 58692.27907, 94178.50533, 12500.30161,
- 81487.15188, 69029.50582, 49662.02744, 73422.53592,
- 68386.53142, 91320.37996, 91735.92333},
+ .num_updates = (size_t[]){71, 8, 45, 3},
+ .updates = (double*[]) {
+ (double[]){8194, 68.41378, 488, 5904.4289,
+ 348.952, 5.41609, 33687, 24959.94718,
+ 93646.26915, 1520.5, 14639.697, 7022,
+ 281.52, 16146.0281, 1.92362, 52167.56135,
+ 29.19779, 45057.14, 3319.7724, 34066.55,
+ 1073.62876, 91667.0, 98416.1719, 96030.39534,
+ 783.438, 77316.03541, 5659.005, 55984.9258,
+ 7.94164, 3384.647, 72593.99, 6628.329,
+ 17548.12711, 3.58183, 70.8097, 64922.09787,
+ 3822.1765, 67.44964, 819.125, 57421.823,
+ 52.8739, 2394.23, 6053.3371, 81659.40367,
+ 38240.76, 8542.95662, 54837.08557, 7.92726,
+ 69.11685, 5428.26, 6612.06311, 70475.98393,
+ 85464.98161, 20740.9, 43986.93, 70876.29799,
+ 1037.866, 71.71462, 53813.0019, 4035.658,
+ 5811.23089, 582.7, 94178.50533, 12500.30161,
+ 81487.188, 690.50582, 49662.044, 73422.52,
+ 68386.53142, 91320.37996, 35.92333},
+ (double[]){745.38815,481.05336,6.41994,1.95525,1156.20533,1268.7098,1295.84116,917.62886},
+ (double[]){516.9201,4849.31623,7221.34863,7527.68604,1151.26575,6524.27975,705.95819,4513.90006,5128.38355,6394.32618,5547.92822,5852.66449,1573.28964,4182.4275,8472.49003,2649.24761,9031.21648,273.19715,9269.87663,3111.26556,5555.49909,1971.95879,4414.7191,6246.03113,4236.78126,8654.59594,1718.24435,7858.42398,5748.95136,1579.52587,3661.98626,2142.41081,7568.26255,5097.90185,5640.32226,3454.39562,9409.04172,4254.11444,4606.8975,8475.69705,4081.69481,6739.58349,7981.12462,8370.65351,7414.76374},
+ (double[]){5454.43, 9854.432, 10000.432},
+ },
.want_ret_value = 47.97,
},
{
.fam = create_metric_family_for_test5("test8-percentile-by-name", 5,
74, 1.065, 45.784),
.percent = 100,
- .num_updates = 42,
- .updates =
- (double[]){72506.34561, 91418.8635, 80572.52619, 38484.68244,
- 87877.24226, 57174.59598, 1551.41153, 9145.58047,
- 72967.20258, 53348.1573, 48132.4808, 39831.68688,
- 78359.72224, 76905.47862, 5348.62723, 8070.63794,
- 11716.49737, 29432.91898, 67222.86733, 29114.50366,
- 67117.86881, 15388.23779, 48933.6252, 74134.36183,
- 24786.55592, 42282.17781, 87869.09351, 26252.42492,
- 7323.72669, 47943.4361, 29671.97547, 6225.43339,
- 44457.12541, 34822.90173, 50059.94181, 26860.86093,
- 71182.72552, 65944.4019, 21285.09149, 19641.2854,
- 19254.37358, 61342.40975},
- .want_ret_value = 45.784,
- },
+ .num_updates = (size_t[]) {42, 0, 67, 5, 89},
+ .updates = (double *[]) {
+ (double[]) {72506.34561, 91418.8635, 80572.52619, 38484.68244,
+ 87877.24226, 57174.59598, 1551.41153, 9145.58047,
+ 72967.20258, 53348.1573, 48132.4808, 39831.68688,
+ 78359.72224, 76905.47862, 5348.62723, 8070.63794,
+ 11716.49737, 29432.91898, 67222.86733, 29114.50366,
+ 67117.86881, 15388.23779, 48933.6252, 74134.36183,
+ 24786.55592, 42282.17781, 87869.09351, 26252.42492,
+ 7323.72669, 47943.4361, 29671.97547, 6225.43339,
+ 44457.12541, 34822.90173, 50059.94181, 26860.86093,
+ 71182.72552, 65944.4019, 21285.09149, 19641.2854,
+ 19254.37358, 61342.40975},
+ (double[]) {
+
+ },
+ (double[]) {5586.54111, 3841.94096, 5834.15027, 8247.97183, 9499.93153, 7472.58943, 219.47985, 7686.70986,
+ 1219.55743, 2415.15816, 8955.29092, 3480.59525, 1879.67425, 1275.56004, 3295.58027,
+ 2139.82266, 456.72684, 562.50828, 1941.86819, 9780.2701, 4234.51139, 1287.71429, 571.7637,
+ 3018.60717, 3024.39436, 10317.61782, 3059.65791, 6248.61059, 10178.41514, 3430.92157,
+ 5205.66822, 3387.48332, 2669.69809, 7532.6, 6981.75202, 2897.25262, 8964.52642, 4209.86327,
+ 3735.92037, 878.27845, 4097.70763, 10419.35129, 2094.15747, 9162.93322, 6691.67488,
+ 1529.17463, 10293.11383, 10388.03797, 4898.96937, 9262.156, 833.49287, 1568.14635, 1187.62364,
+ 8168.1532, 8849.88077, 8484.26639, 10457.05272, 1759.43482, 288.39094, 7405.56667, 9778.09951,
+ 6290.33759, 7102.4534, 2172.31562, 8277.08193, 8824.99498, 5797.51546},
+ (double[]) {56.43, 879.453, 5.324, 765.342, 64.4356},
+ (double[]) {1013.25449, 9089.16126, 9854.27631, 9420.94215, 509.43821, 7299.78937, 2293.54321, 7308.0138,
+ 4066.37637, 6305.31349, 7006.66839, 2503.36452, 5787.31125, 4247.16623, 5803.29759, 8303.8097,
+ 9543.26322, 2027.47232, 486.42233, 6603.60027, 1440.39473, 9132.76392, 4395.65407, 6737.9134,
+ 6162.07532, 5855.29759, 802.30289, 10121.34827, 10029.5615, 2886.96024, 3185.46451, 517.43518,
+ 892.29103, 5515.76823, 8022.44596, 3888.66676, 4320.34148, 5751.74699, 5016.10839, 343.68796,
+ 2926.28764, 3061.87651, 4463.04963, 5255.43202, 4029.81862, 3254.9407, 6082.41397, 10433.08612,
+ 2011.06951, 2968.68571, 7948.21252, 4659.80086, 8464.0979, 1424.92974, 6664.08464, 7246.80407,
+ 4714.69846, 6168.91884, 6315.78325, 9857.07278, 5709.06859, 176.3125, 5244.00458, 3999.77758,
+ 7247.30445, 9108.6723, 7354.32423, 7918.81314, 3666.6743, 7315.87523, 5687.41806, 293.34054,
+ 1812.20181, 3585.62552, 6423.85917, 4389.82836, 3467.02384, 6070.2832, 8559.86769, 1225.99976,
+ 2808.22175, 4888.729, 7613.12619, 414.86679, 7449.10677, 6598.8391, 2551.38054, 9092.67749,
+ 5626.38473},
+ }, .want_ret_value = INFINITY,},
{
.fam = create_metric_family_for_test6(
"test9-percentile-by-name", 3, 26,
84368.98886, 86621.73007, 94893.89038, 95883.59771,
96327.48458, 97958.59675}),
.percent = 42.3,
- .num_updates = 38,
- .updates =
+ .num_updates = (size_t[]){38, 0, 2},
+ .updates = (double*[]){
(double[]){71079.41279, 64378.08534, 58308.74218, 62899.70407,
43084.69866, 59286.43609, 95311.89101, 46082.97057,
21002.88808, 13767.93511, 6832.77194, 9641.53968,
11471.67096, 82920.8644, 57711.02046, 73579.12752,
35093.01442, 95393.57805, 17610.14104, 54931.47418,
19359.63012, 46414.44434},
+ (double[]){},
+ (double[]){468.435, 54267.54}, },
.want_ret_value = 7174.31149,
},
};
uc_init();
for (size_t i = 0; i < (sizeof(cases) / sizeof(cases[0])); ++i) {
printf("## Case %zu:\n", i);
- for (int j = 0; j < cases[i].num_updates; ++j) {
- CHECK_ZERO(distribution_update(
- cases[i].fam->metric.ptr[0].value.distribution, cases[i].updates[j]));
- }
+
+ for (size_t k = 0; k < cases[i].fam->metric.num; ++k) {
+ for (size_t l = 0; l <= k; ++l) {
+ for (size_t j = 0; j < cases[i].num_updates[l]; ++j) {
+ CHECK_ZERO(distribution_update(
+ cases[i].fam->metric.ptr[k].value.distribution, cases[i].updates[l][j]));
+ }
+ }
+ }
+ /* TODO(bkjg): add test, where fam will be NULL */
CHECK_ZERO(uc_update(cases[i].fam));