From 757d97414390226fdf6f42f4960e99e8d7f17f81 Mon Sep 17 00:00:00 2001 From: Barbara Kaczorowska Date: Tue, 18 Aug 2020 22:21:09 +0000 Subject: [PATCH] Fix tests for uc_get_rate_by_name function --- src/daemon/utils_cache_test.c | 531 ++++++++++++++++++++++------------ 1 file changed, 353 insertions(+), 178 deletions(-) diff --git a/src/daemon/utils_cache_test.c b/src/daemon/utils_cache_test.c index 964a5382a..d104ff258 100644 --- a/src/daemon/utils_cache_test.c +++ b/src/daemon/utils_cache_test.c @@ -278,8 +278,7 @@ DEF_TEST(uc_update) { }, .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) { printf("## Case %zu:\n", i); @@ -396,74 +395,109 @@ DEF_TEST(uc_get_percentile_by_name) { 193, 47.97), .percent = 0, .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}, - }, + .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 = (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[]) { + .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}, }, - (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,}, + .want_ret_value = INFINITY, + }, { .fam = create_metric_family_for_test6( "test9-percentile-by-name", 3, 26, @@ -476,19 +510,21 @@ DEF_TEST(uc_get_percentile_by_name) { 96327.48458, 97958.59675}), .percent = 42.3, .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, - 93547.80996, 53104.75652, 30484.31134, 63405.23635, - 87195.96601, 91571.10233, 10134.44248, 63686.4723, - 323.06071, 48039.79776, 84822.6203, 89630.53538, - 15187.56664, 76056.39513, 91604.62264, 47667.05402, - 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}, }, + .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, + 93547.80996, 53104.75652, 30484.31134, 63405.23635, + 87195.96601, 91571.10233, 10134.44248, 63686.4723, + 323.06071, 48039.79776, 84822.6203, 89630.53538, + 15187.56664, 76056.39513, 91604.62264, 47667.05402, + 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, }, }; @@ -499,13 +535,14 @@ DEF_TEST(uc_get_percentile_by_name) { 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])); - } + 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 */ + } + /* TODO(bkjg): add test, where fam will be NULL */ CHECK_ZERO(uc_update(cases[i].fam)); @@ -573,8 +610,8 @@ DEF_TEST(uc_get_percentile) { 5), .want_get = -1, .percent = -76, - .num_updates = (size_t[]){0, 0, 0, 0, 0, 0}, - }, + .num_updates = (size_t[]){0, 0, 0, 0, 0, 0}, + }, { .fam = create_metric_family_for_test6( "test6-percentile", 5, 8, @@ -589,16 +626,21 @@ DEF_TEST(uc_get_percentile) { create_metric_family_for_test7("test7-percentile", 9, 68, 84.543), .percent = 0, .num_updates = (size_t[]){9, 1, 0, 6, 8, 0, 7, 0, 4}, - .updates = (double*[]){(double[]){1.354, 4.2343, 67.543, 7243.2435, 543.2543, - 54.43, 543.534, 9023.534, 2358453.534534}, - (double[]){67.543}, - (double[]){}, - (double[]){54.4645, 768.435, 6.4534, 986.43, 987.534, 23.5}, - (double[]){546.654, 1324.324, 457.43, 678.435, 5785.435, 895.32, 9.423, 9853.543}, - (double[]){}, - (double[]){654.645, 45352.6, 53453.43, 543.435, 76.43, 797.43, 76.43}, - (double[]){}, - (double[]){83.4653, 943.463, 573.543, 90.543}, }, + .updates = + (double *[]){ + (double[]){1.354, 4.2343, 67.543, 7243.2435, 543.2543, 54.43, + 543.534, 9023.534, 2358453.534534}, + (double[]){67.543}, + (double[]){}, + (double[]){54.4645, 768.435, 6.4534, 986.43, 987.534, 23.5}, + (double[]){546.654, 1324.324, 457.43, 678.435, 5785.435, + 895.32, 9.423, 9853.543}, + (double[]){}, + (double[]){654.645, 45352.6, 53453.43, 543.435, 76.43, 797.43, + 76.43}, + (double[]){}, + (double[]){83.4653, 943.463, 573.543, 90.543}, + }, .want_ret_value = 84.543, .metric_idx = 35, }, @@ -607,20 +649,54 @@ DEF_TEST(uc_get_percentile) { 1.345, 9.67), .percent = 100, .num_updates = (size_t[]){15, 67, 6, 0, 56, 26, 1}, - .updates = (double*[]) {(double[]) {7273.23889, 2332.61737, 5700.55615, 7812.98765, - 4264.86158, 268.74688, 6486.08937, 6204.44048, - 7235.73534, 2794.02672, 9288.39283, 4662.6566, - 6517.20614, 7785.61931, 8087.83614, 1094.24435, - 8093.33661, 2796.65101, 1425.40209, 2949.08743, - 3074.2948, 9631.15671, 1448.20895, 9843.30987, - 5045.33169, 6653.13623}, - (double[]){8.9836,44.92963,3.13412,72.36738,107.39301,21.2692,33.24933,10.00479,11.07998,101.58473,56.7942,102.57711,85.23387,5.50962,109.7728,25.13287,82.06147,7.88873,65.86362,68.49312,76.34463,11.84615,51.95518,51.36831,44.59729,27.56038,54.12334,3.14058,70.23039,113.51434,100.76535,1.42056,98.09661,70.88242,55.39125,4.84537,48.7601,3.89373,61.61134,97.6968,42.15975,66.19623,83.75841,93.82006,86.68521,47.97931,83.52405,79.94514,52.24084,34.4199,89.83969,93.75171,88.65762,8.99014,1.12716,9.23472,44.18075,75.32575,40.50866,0.62965,109.54525,63.84394,19.85427,20.86203,42.07358,100.14113,9.58807}, - (double[]){65.43, 7.54, 10.42323, 11.543, 20.4235, 109.423}, - (double[]){}, - (double[]){40.70721,111.25481,58.84637,130.57275,12.98124,107.43372,7.30452,62.89139,98.57436,81.20726,32.09759,142.48247,45.98872,26.61524,91.13035,105.86144,110.31826,43.40806,46.45192,23.47531,6.53419,149.77225,119.41684,8.76683,134.67231,59.93585,129.2164,108.17816,43.76639,138.4096,44.9372,146.85231,35.69273,91.43816,50.39418,139.84918,132.96587,41.81809,35.02065,67.94941,59.01611,138.43066,95.45903,51.71665,31.17835,125.77984,24.81209,43.67169,59.02432,77.40476,72.55881,103.22872,61.44734,110.21046,22.42225,53.0431}, - (double[]){38.81053,2.92907,58.62993,1.02672,21.98664,27.78435,62.01765,11.04862,35.70885,20.19808,48.87309,16.81291,46.22889,50.54755,59.58231,50.21794,26.45925,10.17534,26.77216,18.10478,30.72786,16.07058,16.60934,44.67609,46.58571,66.82775}, - (double[]){44.32}, - },.want_ret_value = 57.2479817070748, + .updates = + (double *[]){ + (double[]){7273.23889, 2332.61737, 5700.55615, 7812.98765, + 4264.86158, 268.74688, 6486.08937, 6204.44048, + 7235.73534, 2794.02672, 9288.39283, 4662.6566, + 6517.20614, 7785.61931, 8087.83614, 1094.24435, + 8093.33661, 2796.65101, 1425.40209, 2949.08743, + 3074.2948, 9631.15671, 1448.20895, 9843.30987, + 5045.33169, 6653.13623}, + (double[]){ + 8.9836, 44.92963, 3.13412, 72.36738, 107.39301, + 21.2692, 33.24933, 10.00479, 11.07998, 101.58473, + 56.7942, 102.57711, 85.23387, 5.50962, 109.7728, + 25.13287, 82.06147, 7.88873, 65.86362, 68.49312, + 76.34463, 11.84615, 51.95518, 51.36831, 44.59729, + 27.56038, 54.12334, 3.14058, 70.23039, 113.51434, + 100.76535, 1.42056, 98.09661, 70.88242, 55.39125, + 4.84537, 48.7601, 3.89373, 61.61134, 97.6968, + 42.15975, 66.19623, 83.75841, 93.82006, 86.68521, + 47.97931, 83.52405, 79.94514, 52.24084, 34.4199, + 89.83969, 93.75171, 88.65762, 8.99014, 1.12716, + 9.23472, 44.18075, 75.32575, 40.50866, 0.62965, + 109.54525, 63.84394, 19.85427, 20.86203, 42.07358, + 100.14113, 9.58807}, + (double[]){65.43, 7.54, 10.42323, 11.543, 20.4235, 109.423}, + (double[]){}, + (double[]){ + 40.70721, 111.25481, 58.84637, 130.57275, 12.98124, + 107.43372, 7.30452, 62.89139, 98.57436, 81.20726, + 32.09759, 142.48247, 45.98872, 26.61524, 91.13035, + 105.86144, 110.31826, 43.40806, 46.45192, 23.47531, + 6.53419, 149.77225, 119.41684, 8.76683, 134.67231, + 59.93585, 129.2164, 108.17816, 43.76639, 138.4096, + 44.9372, 146.85231, 35.69273, 91.43816, 50.39418, + 139.84918, 132.96587, 41.81809, 35.02065, 67.94941, + 59.01611, 138.43066, 95.45903, 51.71665, 31.17835, + 125.77984, 24.81209, 43.67169, 59.02432, 77.40476, + 72.55881, 103.22872, 61.44734, 110.21046, 22.42225, + 53.0431}, + (double[]){38.81053, 2.92907, 58.62993, 1.02672, 21.98664, + 27.78435, 62.01765, 11.04862, 35.70885, 20.19808, + 48.87309, 16.81291, 46.22889, 50.54755, 59.58231, + 50.21794, 26.45925, 10.17534, 26.77216, 18.10478, + 30.72786, 16.07058, 16.60934, 44.67609, 46.58571, + 66.82775}, + (double[]){44.32}, + }, + .want_ret_value = 57.2479817070748, .metric_idx = 0, }, { @@ -638,40 +714,66 @@ DEF_TEST(uc_get_percentile) { 8055.85652, 8514.09805, 8786.67945, 8814.77247, 9421.52142, 9584.05069, 9618.27028, 9788.40721, 9862.77031}), .percent = 56.3, - .num_updates = (size_t[]){54,67,8,9}, - .updates = (double*[]) { - (double[]) { - 9473.99522, 9682.46524, 6902.22386, 2632.59974, 224.97903, - 4425.67438, 1094.25828, 5507.07452, 6140.55588, 6586.78403, - 3748.51025, 7342.42407, 461.98087, 2370.005, 6234.53679, - 3630.13252, 9190.53656, 2377.16807, 2554.37586, 5973.07804, - 9459.471, 977.36175, 4707.95627, 9373.90178, 5625.67662, - 9200.20201, 2503.82766, 5539.63445, 8564.03697, 5179.19388, - 8530.74263, 3829.30061, 9251.19378, 8991.0057, 8464.4043, - 7580.73952, 9025.62113, 8952.42671, 9287.5265, 8579.52376, - 2938.24169, 1229.20803, 3995.36776, 2629.81514, 222.9282, - 321.08365, 958.73825, 393.90684, 7396.77622, 2706.27567, - 7376.80843, 3028.44747, 8684.45493, 8277.39937}, - (double[]){94.34024,5369.42045,106.99225,4845.37869,3694.95099,6859.38458,3403.18808,9102.51424,4098.48109,5954.08755,6146.62894,3494.39408,4229.73443,1400.66599,8942.00647,6992.12526,3145.67041,4158.62876,8337.978,8311.53907,5934.71194,6885.4022,7941.92203,1636.68227,6086.39492,1893.09594,4984.28907,756.5788,9298.44361,6460.4752,8455.53452,2607.52741,62.34891,2499.08504,1370.14777,7838.19529,4335.81203,736.71981,9177.66445,8299.95565,7745.85028,5442.34546,7129.24099,6034.30483,2666.01496,5626.89066,1948.9354,842.76915,4425.71523,8022.58775,3228.76266,6616.1537,7016.92999,6867.16531,4919.9911,3812.5397,353.57387,7504.68569,8575.42736,9262.40423,6691.10738,9253.02204,9171.75229,6153.56538,8469.24383,4859.31769,1161.66019}, - (double[]){4400.00001,9833.13863,100.16011,6849.80943,510.31266,2866.47649,4492.46879,8692.87943}, - (double[]){1566.00821,7594.931,995.13973,1289.97209,9242.79285,9702.15248,82.44731,1854.97795,5236.74648}, - },.want_ret_value = 2011.40738, + .num_updates = (size_t[]){54, 67, 8, 9}, + .updates = + (double *[]){ + (double[]){9473.99522, 9682.46524, 6902.22386, 2632.59974, + 224.97903, 4425.67438, 1094.25828, 5507.07452, + 6140.55588, 6586.78403, 3748.51025, 7342.42407, + 461.98087, 2370.005, 6234.53679, 3630.13252, + 9190.53656, 2377.16807, 2554.37586, 5973.07804, + 9459.471, 977.36175, 4707.95627, 9373.90178, + 5625.67662, 9200.20201, 2503.82766, 5539.63445, + 8564.03697, 5179.19388, 8530.74263, 3829.30061, + 9251.19378, 8991.0057, 8464.4043, 7580.73952, + 9025.62113, 8952.42671, 9287.5265, 8579.52376, + 2938.24169, 1229.20803, 3995.36776, 2629.81514, + 222.9282, 321.08365, 958.73825, 393.90684, + 7396.77622, 2706.27567, 7376.80843, 3028.44747, + 8684.45493, 8277.39937}, + (double[]){94.34024, 5369.42045, 106.99225, 4845.37869, + 3694.95099, 6859.38458, 3403.18808, 9102.51424, + 4098.48109, 5954.08755, 6146.62894, 3494.39408, + 4229.73443, 1400.66599, 8942.00647, 6992.12526, + 3145.67041, 4158.62876, 8337.978, 8311.53907, + 5934.71194, 6885.4022, 7941.92203, 1636.68227, + 6086.39492, 1893.09594, 4984.28907, 756.5788, + 9298.44361, 6460.4752, 8455.53452, 2607.52741, + 62.34891, 2499.08504, 1370.14777, 7838.19529, + 4335.81203, 736.71981, 9177.66445, 8299.95565, + 7745.85028, 5442.34546, 7129.24099, 6034.30483, + 2666.01496, 5626.89066, 1948.9354, 842.76915, + 4425.71523, 8022.58775, 3228.76266, 6616.1537, + 7016.92999, 6867.16531, 4919.9911, 3812.5397, + 353.57387, 7504.68569, 8575.42736, 9262.40423, + 6691.10738, 9253.02204, 9171.75229, 6153.56538, + 8469.24383, 4859.31769, 1161.66019}, + (double[]){4400.00001, 9833.13863, 100.16011, 6849.80943, + 510.31266, 2866.47649, 4492.46879, 8692.87943}, + (double[]){1566.00821, 7594.931, 995.13973, 1289.97209, + 9242.79285, 9702.15248, 82.44731, 1854.97795, + 5236.74648}, + }, + .want_ret_value = 2011.40738, .metric_idx = 48, }, }; + /* TODO(bkjg): add test cases to the uc_update function that will give an + * error in distribution_sub function */ uc_init(); for (size_t i = 0; i < (sizeof(cases) / sizeof(cases[0])); ++i) { printf("## Case %zu:\n", i); 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])); - } + 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])); } } + } CHECK_ZERO(uc_update(cases[i].fam)); @@ -704,8 +806,8 @@ DEF_TEST(uc_get_rate_by_name) { 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 @@ -713,41 +815,52 @@ DEF_TEST(uc_get_rate_by_name) { .fam = create_metric_family_for_test1( "test1-rate-by-name", 3, (gauge_t[]){69.54, 95.67, 45.87}), .want_ret_value = 45.87, + .num_updates = (size_t[]){0, 0, 0}, }, { .fam = fam_test2, .want_ret_value = want_ret_value_for_test2, + .num_updates = (size_t[]){0, 0, 0, 0, 0, 0}, }, { .fam = create_metric_family_for_test3("test3-rate-by-name", 2, (gauge_t[]){436.54, 543.6}), .want_ret_value = 543.6, + .num_updates = (size_t[]){0, 0}, }, { .fam = create_metric_family_for_test4("test4-rate-by-name"), .want_ret_value = NAN, + .num_updates = (size_t[]){0}, }, { .fam = create_metric_family_for_test5("test5-rate-by-name", 4, 48, 1.033, 35), - .num_updates = 75, + .num_updates = (size_t[]){75, 4, 5, 0}, .updates = - (double[]){ - 4159.654, 9603.94667, 6060.77104, 20.11649, 21.07854, - 7963.46534, 179.10527, 44.50653, 176.80966, 8881.67928, - 5330.64572, 4725.76119, 41.95417, 44.85246, 3917.1775, - 4252.7976, 82.38465, 91.43321, 553.65691, 3162.53235, - 21.63984, 9750.3053, 39.8265, 3745.03322, 565.97145, - 2500.5585, 5454.60361, 3249.507, 9847.01554, 4695.82556, - 307.72055, 60.01705, 7245.61576, 1777.3541, 510.62964, - 5821.57195, 8501.10822, 1017.39535, 5747.66313, 730.39328, - 2036.318, 600.15378, 4453.83351, 9879.11423, 9020.87809, - 3403.07313, 9429.83863, 11.328, 50.28723, 80.87675, - 3841.93743, 2270.33075, 862.9549, 83.00705, 7178.40826, - 2368.45065, 3153.68087, 458.31409, 4949.40529, 862.93844, - 8778.1962, 95.5752, 8604.12661, 274.7418, 2123.17802, - 614.29148, 1915.66805, 7996.38788, 93.39166, 832.57039, - 5094.52733, 58.69212, 4746.39854, 722.9694, 6768.01305}, + (double *[]){ + (double[]){4159.654, 9603.94667, 6060.77104, 20.11649, + 21.07854, 7963.46534, 179.10527, 44.50653, + 176.80966, 8881.67928, 5330.64572, 4725.76119, + 41.95417, 44.85246, 3917.1775, 4252.7976, + 82.38465, 91.43321, 553.65691, 3162.53235, + 21.63984, 9750.3053, 39.8265, 3745.03322, + 565.97145, 2500.5585, 5454.60361, 3249.507, + 9847.01554, 4695.82556, 307.72055, 60.01705, + 7245.61576, 1777.3541, 510.62964, 5821.57195, + 8501.10822, 1017.39535, 5747.66313, 730.39328, + 2036.318, 600.15378, 4453.83351, 9879.11423, + 9020.87809, 3403.07313, 9429.83863, 11.328, + 50.28723, 80.87675, 3841.93743, 2270.33075, + 862.9549, 83.00705, 7178.40826, 2368.45065, + 3153.68087, 458.31409, 4949.40529, 862.93844, + 8778.1962, 95.5752, 8604.12661, 274.7418, + 2123.17802, 614.29148, 1915.66805, 7996.38788, + 93.39166, 832.57039, 5094.52733, 58.69212, + 4746.39854, 722.9694, 6768.01305}, + (double[]){26.24206, 29.78883, 35.16503, 28.52225}, + (double[]){45.65, 78.435, 34.324, 57.45, 67.5743}, + (double[]){}}, .want_ret_value = 35, }, { @@ -763,48 +876,110 @@ DEF_TEST(uc_get_rate_by_name) { 812.37927, 835.96259, 841.42108, 853.20455, 865.72175, 873.74441, 880.88184, 900.20886, 973.97989, 976.72908, 979.7941, 991.89657}), - .num_updates = 68, + .num_updates = (size_t[]){68, 8, 0, 0, 9, 11}, .updates = - (double[]){ - 4682.42335, 4020.54089, 565.10587, 3954.73905, 6439.72826, - 9010.67591, 8621.51997, 9915.12095, 2913.60702, 8645.39755, - 6423.67358, 4830.46203, 8067.11382, 238.90511, 5809.10209, - 7820.37444, 2742.35617, 7310.94613, 6630.98218, 8333.84097, - 6513.26349, 1295.61267, 5724.2328, 1371.68056, 5650.33203, - 8102.43229, 3675.91657, 9497.04227, 7286.45926, 8378.14153, - 4291.39604, 9606.11436, 6525.73329, 3496.49047, 1500.50609, - 5513.17177, 57.07583, 2666.14731, 6138.06959, 7829.2008, - 4590.09268, 6646.89925, 4234.80301, 9875.51713, 8664.20834, - 9593.93277, 5290.35192, 9947.5131, 9303.34419, 4821.80711, - 5620.28822, 2695.28733, 1496.69721, 4338.82326, 769.33479, - 5846.82939, 7256.13839, 5769.4598, 2450.50956, 2482.28105, - 4821.93336, 3614.77436, 6639.69338, 3495.76385, 2296.34926, - 6616.96188, 2966.60109, 1549.4343}, - .want_ret_value = 15.59219, + (double *[]){ + (double[]){4682.42335, 420.549, 565.187, 3954.73905, + 643.72826, 900.67591, 821.51997, 9915.12095, + 2913.60702, 645.39755, 6423.67358, 430.46203, + 87.11382, 238.90511, 509.10209, 720.37444, + 22.35617, 0.94613, 6630.98218, 833.84097, + 613.26349, 125.61267, 528, 1371.68056, + 5650.3303, 8102.43229, 75.91657, 997.04227, + 7286.45926, 838.14153, 421.39604, 9606.11436, + 65.73329, 34.49047, 15.50609, 513.17177, + 57.07583, 6.14731, 6138.069, 9.2008, + 590.09268, 646.89925, 42.801, 95.51713, + 64.20834, 953.93277, 590.35192, 994.31, + 9303.344, 4821.80711, 560.28822, 295.28733, + 1.69721, 326, 769.3479, 586.82939, + 756.13839, 9.4598, 240.556, 242.28105, + 481.93336, 314.77436, 639.6, 3495.76385, + 226.34926, 6616.96188, 2966.60109, 1549.4343}, + (double[]){645.43, 745.425, 989432.3423, 89.432, 678.423, + 903.54, 589.34, 569.54}, + (double[]){}, + (double[]){}, + (double[]){567.432, 678.43, 543.5346, 895.3, 234.543, 178.453, + 864.23, 900.543, 4235}, + (double[]){42342.4324, 543.423, 678.435, 245.325, 8753.6456, + 906.5435, 6874.634, 674.34, 789.534, 543.543, 654.43}}, + .want_ret_value = 718.85353, }, { .fam = create_metric_family_for_test7("test7-rate-by-name", 10, 532, 98), - .num_updates = 36, - .updates = (double[]){8563.48484, 7737.26182, 8461.55369, 7345.18085, - 6922.39556, 9826.36599, 8285.47882, 9242.88802, - 1879.60733, 2017.17049, 9946.55565, 5047.35425, - 5956.43188, 3637.33311, 2275.67666, 5241.08879, - 3752.92924, 4518.3078, 5574.17357, 444.83081, - 8731.81445, 4428.15217, 5869.54926, 4006.06406, - 6442.546, 8566.80388, 6627.0215, 2276.11951, - 7684.56221, 9571.34356, 7074.81794, 3457.6747, - 747.35085, 9269.56873, 6193.34178, 1339.58513}, - .want_ret_value = 98, + .num_updates = (size_t[]){36, 0, 0, 0, 0, 3, 78, 45, 9, 10}, + .updates = + (double *[]){ + (double[]){8563.48484, 7737.26182, 8461.55369, 7345.18085, + 6922.39556, 9826.36599, 8285.47882, 9242.88802, + 1879.60733, 2017.17049, 9946.55565, 5047.35425, + 5956.43188, 3637.33311, 2275.67666, 5241.08879, + 3752.92924, 4518.3078, 5574.17357, 444.83081, + 8731.81445, 4428.15217, 5869.54926, 4006.06406, + 6442.546, 8566.80388, 6627.0215, 2276.11951, + 7684.56221, 9571.34356, 7074.81794, 3457.6747, + 747.35085, 9269.56873, 6193.34178, 1339.58513}, + (double[]){}, + (double[]){}, + (double[]){}, + (double[]){}, + (double[]){125.543, 642.5345, 7564.25}, + (double[]){22195.68641, 20118.4779, 27788.0238, 21660.95577, + 13109.17633, 45481.75486, 60772.61211, 15502.82054, + 64807.98058, 80269.72468, 17138.73195, 36947.45858, + 13698.34813, 24327.0788, 2310.4785, 47154.80257, + 42025.80305, 34341.75166, 50052.9567, 76862.15098, + 96078.89941, 57201.03172, 9861.25572, 87059.45503, + 26535.97795, 12066.52634, 35314.64922, 51132.33884, + 50256.12067, 6097.42143, 92925.59698, 78582.07681, + 89309.56916, 20259.27171, 3171.51752, 46472.43649, + 84907.56782, 4987.50946, 89845.81376, 5311.01208, + 34311.3633, 53558.35518, 91755.7273, 2035.08046, + 53700.1584, 91605.23363, 38349.06227, 17148.10497, + 36924.49226, 39106.15963, 60389.16114, 10506.33747, + 34272.86238, 40229.98104, 29947.99145, 80874.60114, + 94268.40706, 31144.25066, 2994.40595, 78146.89748, + 82519.67508, 39423.41723, 23379.64765, 74648.37952, + 85765.40285, 24009.43512, 69162.25593, 55258.07303, + 8626.32408, 42564.13693, 33160.6236, 11919.79605, + 13647.54085, 98696.50118, 18862.64208, 28554.92706, + 83405.96533, 47459.24177}, + (double[]){66075.33301, 81245.72895, 79264.1119, 71294.4439, + 69789.35421, 44400.87995, 61855.39209, 79255.32008, + 72927.19757, 40667.6036, 72490.18809, 21742.83491, + 89137.57279, 31740.68086, 97752.72254, 33346.88699, + 60235.58325, 43753.29565, 58615.5088, 5223.76648, + 64124.03391, 90914.4585, 12524.41179, 70676.85368, + 87377.49, 47835.43439, 7397.05884, 59284.78323, + 5100.00019, 64840.49217, 35805.81813, 75682.15466, + 1400.07204, 77499.47769, 65685.72436, 5006.66765, + 35944.44801, 60647.21456, 96690.41787, 26233.1071, + 40308.1231, 22477.09745, 3575.69941, 55313.28453, + 44959.21375}, + (double[]){47817.79309, 61037.21185, 38306.19433, 37380.72465, + 45474.26121, 35413.80266, 23993.95002, 52741.09605, + 7207.58457}, + (double[]){47415.11645, 2098.94152, 91558.98643, 53955.27033, + 85504.56864, 13830.14932, 9515.16889, 98472.57733, + 84736.51036, 21878.60046}, + }, + .want_ret_value = 47432, }, }; 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])); + } + } } CHECK_ZERO(uc_update(cases[i].fam)); -- 2.47.3