Add a test over dictionnary of string.
This commit is contained in:
1 parent
c927e57122
commit
7b3b8a261b
1 file changed
+40
@@ -13,6 +13,7 @@
|
|||||||
#include "m-dict.h"
|
#include "m-dict.h"
|
||||||
#include "m-algo.h"
|
#include "m-algo.h"
|
||||||
#include "m-mempool.h"
|
#include "m-mempool.h"
|
||||||
|
#include "m-string.h"
|
||||||
|
|
||||||
unsigned long g_result;
|
unsigned long g_result;
|
||||||
|
|
||||||
@@ -213,6 +214,43 @@ test_dict_big(unsigned long n)
|
|||||||
|
|
||||||
/********************************************************************************************/
|
/********************************************************************************************/
|
||||||
|
|
||||||
|
#ifdef USE_MEMPOOL
|
||||||
|
DICT_DEF2(str, string_t, M_OPLIST_CAT((MEMPOOL(dict_mpool3), MEMPOOL_LINKAGE(static)),STRING_OPLIST), string_t, STRING_OPLIST)
|
||||||
|
#else
|
||||||
|
DICT_DEF2(str, string_t, STRING_OPLIST, string_t, STRING_OPLIST)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_dict_str(unsigned long n)
|
||||||
|
{
|
||||||
|
#ifdef USE_MEMPOOL
|
||||||
|
mempool_list_dict_pair_str_init(dict_mpool3);
|
||||||
|
#endif
|
||||||
|
rand_init();
|
||||||
|
M_LET(s1, s2, STRING_OPLIST)
|
||||||
|
M_LET(dict, DICT_OPLIST(str)) {
|
||||||
|
for (size_t i = 0; i < n; i++) {
|
||||||
|
string_printf(s1, "%u", rand_get());
|
||||||
|
string_printf(s2, "%u", rand_get());
|
||||||
|
dict_str_set_at(dict, s1, s2);
|
||||||
|
}
|
||||||
|
rand_init();
|
||||||
|
unsigned int s = 0;
|
||||||
|
for (size_t i = 0; i < n; i++) {
|
||||||
|
string_printf(s1, "%u", rand_get());
|
||||||
|
string_t *p = dict_str_get(dict, s1);
|
||||||
|
if (p)
|
||||||
|
s ++;
|
||||||
|
}
|
||||||
|
g_result = s;
|
||||||
|
}
|
||||||
|
#ifdef USE_MEMPOOL
|
||||||
|
mempool_list_dict_pair_str_clear(dict_mpool3);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/********************************************************************************************/
|
||||||
|
|
||||||
ARRAY_DEF(float, float)
|
ARRAY_DEF(float, float)
|
||||||
ALGO_DEF(afloat, ARRAY_OPLIST(float))
|
ALGO_DEF(afloat, ARRAY_OPLIST(float))
|
||||||
|
|
||||||
@@ -245,5 +283,7 @@ int main(int argc, const char *argv[])
|
|||||||
test_function("DictB time", 1000000, test_dict_big);
|
test_function("DictB time", 1000000, test_dict_big);
|
||||||
if (n == 7)
|
if (n == 7)
|
||||||
test_function("Sort time", 10000000, test_sort);
|
test_function("Sort time", 10000000, test_sort);
|
||||||
|
if (n == 8)
|
||||||
|
test_function("DictS time", 1000000, test_dict_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
Reference in new issue
Block a user