diff options
Diffstat (limited to 'runtime/tests/maps/setadd.c')
-rw-r--r-- | runtime/tests/maps/setadd.c | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/runtime/tests/maps/setadd.c b/runtime/tests/maps/setadd.c new file mode 100644 index 00000000..44687528 --- /dev/null +++ b/runtime/tests/maps/setadd.c @@ -0,0 +1,213 @@ +#include "runtime.h" + +/* verify correct set and add behavior */ +#define VALUE_TYPE INT64 +#define KEY1_TYPE INT64 +#define STP_MAP_II +#include "map-gen.c" + +#define VALUE_TYPE STRING +#define KEY1_TYPE INT64 +#include "map-gen.c" + +#define VALUE_TYPE STAT +#define KEY1_TYPE INT64 +#include "map-gen.c" + +#include "map.c" + +int main () +{ + int i, res; + MAP mapi = _stp_map_new_ii(4); + MAP maps = _stp_map_new_is(4); + MAP mapx = _stp_map_new_ix(4, HIST_NONE); + + /* use add to set initial values */ + for (i = 1; i < 5; i++) + { + res = _stp_map_add_ii (mapi, i, i*i); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print(mapi,"mapi[%1d] = %d"); + + for (i = 1; i < 5; i++) + { + char buf[32]; + sprintf(buf, "value of %d", i); + res = _stp_map_add_is (maps, i, buf); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print(maps,"maps[%1d] = %s"); + + for (i = 1; i < 5; i++) + { + res = _stp_map_add_ix (mapx, i, i); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M"); + + /*************** now add some values *******************/ + + for (i = 1; i < 5; i++) + { + res = _stp_map_add_ii (mapi, i, i*i); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print(mapi,"mapi[%1d] = %d"); + + for (i = 1; i < 5; i++) + { + char buf[32]; + sprintf(buf, "*****", i); + res = _stp_map_add_is (maps, i, buf); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print(maps,"maps[%1d] = %s"); + + for (i = 1; i < 5; i++) + { + res = _stp_map_add_ix (mapx, i, i+i); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M"); + + /*************** now add 0 *******************/ + printf ("Adding 0\n"); + for (i = 1; i < 5; i++) + { + res = _stp_map_add_ii (mapi, i, 0); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print(mapi,"mapi[%1d] = %d"); + + for (i = 1; i < 5; i++) + { + res = _stp_map_add_is (maps, i, ""); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + for (i = 1; i < 5; i++) + { + res = _stp_map_add_is (maps, i, 0); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print(maps,"maps[%1d] = %s"); + + for (i = 1; i < 5; i++) + { + res = _stp_map_add_ix (mapx, i, 0); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M"); + + /*************** now set to 0 (clear) *******************/ + printf ("setting everything to 0\n"); + for (i = 1; i < 5; i++) + { + res = _stp_map_set_ii (mapi, i, 0); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print(mapi,"mapi[%1d] = %d"); + + for (i = 1; i < 5; i++) + { + res = _stp_map_set_is (maps, i, 0); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print(maps,"maps[%1d] = %s"); + + for (i = 1; i < 5; i++) + { + res = _stp_map_set_ix (mapx, i, 0); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M"); + + /*************** now add 0 *******************/ + printf ("Adding 0\n"); + for (i = 1; i < 5; i++) + { + res = _stp_map_add_ii (mapi, i, 0); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print(mapi,"mapi[%1d] = %d"); + + for (i = 1; i < 5; i++) + { + res = _stp_map_add_is (maps, i, 0); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + for (i = 1; i < 5; i++) + { + res = _stp_map_add_is (maps, i, 0); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print(maps,"maps[%1d] = %s"); + + for (i = 1; i < 5; i++) + { + res = _stp_map_add_ix (mapx, i, 0); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M"); + + + /*************** now set to -1 *******************/ + printf ("setting everything to -1\n"); + for (i = 1; i < 5; i++) + { + res = _stp_map_set_ii (mapi, i, -1); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print(mapi,"mapi[%1d] = %d"); + + for (i = 1; i < 5; i++) + { + res = _stp_map_set_ix (mapx, i, -1); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M"); + + /*************** now add -1 *******************/ + printf ("adding -1\n"); + for (i = 1; i < 5; i++) + { + res = _stp_map_add_ii (mapi, i, -1); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print(mapi,"mapi[%1d] = %d"); + + for (i = 1; i < 5; i++) + { + res = _stp_map_add_ix (mapx, i, -1); + if (res) + printf("ERROR: got result of %d when expected 0\n", res); + } + _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M"); + + + _stp_map_del (mapi); + _stp_map_del (maps); + _stp_map_del (mapx); + return 0; +} |