GroupKV: Move test code into its own file in tests

This commit is contained in:
HanishKVC 2024-05-12 22:10:40 +05:30
parent 6048218383
commit f2dd1263fd
3 changed files with 67 additions and 79 deletions

View file

@ -20,21 +20,6 @@
#define GKV_DEBUG
//#define GKV_TEST_PRG
#ifdef GKV_TEST_PRG
#include <iostream>
#include <format>
#define LINFO_LN(FMT, ...) fprintf(stdout, FMT"\n", ##__VA_ARGS__)
#ifdef GKV_DEBUG
#define LDBUG(FMT, ...) fprintf(stderr, FMT, ##__VA_ARGS__)
#define LDBUG_LN(FMT, ...) fprintf(stderr, FMT"\n", ##__VA_ARGS__)
#else
#define LDBUG_LN(...)
#define LDBUG(...)
#endif
#define LERRR_LN(FMT, ...) fprintf(stderr, FMT"\n", ##__VA_ARGS__)
#define LWARN_LN(FMT, ...) fprintf(stderr, FMT"\n", ##__VA_ARGS__)
#else
#include "log.h"
#define LINFO_LN LOG_TEELN
#ifdef GKV_DEBUG
@ -46,7 +31,6 @@
#endif
#define LERRR_LN LOG_TEELN
#define LWARN_LN LOG_TEELN
#endif
typedef std::variant<std::string, bool, int32_t, int64_t, double> GroupKVData;
@ -181,66 +165,3 @@ public:
}
};
#ifdef GKV_TEST_PRG
void gkv_inited() {
GroupKV gkv = {{
{"Group1",{
{"testkey11", 11},
{"testkey12", true}
}},
{"Group2", {
{"key21", "val21"},
{"key22", 22},
{"key23", 2.3}
}}
}};
std::cout << "**** gkv inited **** " << std::endl;
std::cout << gkv.dump("", "INFO:GKV:Inited:") << std::endl;
}
void gkv_set() {
std::cout << "**** gkv set **** " << std::endl;
GroupKV gkv = {{}};
std::cout << gkv.dump("", "INFO:GKV:Set:Initial:") << std::endl;
gkv.get_value("testme", {"key101b"}, false);
gkv.get_value<std::string>("testme", {"key101s"}, "Not found");
gkv.get_value("testme", {"key101i"}, 123456);
gkv.get_value("testme", {"key101d"}, 123456.789);
gkv.set_value("testme", {"key201b"}, true);
gkv.set_value("testme", {"key201s"}, "hello world");
gkv.set_value("testme", {"key201i"}, 987654);
gkv.set_value("testme", {"key201d"}, 9988.7766);
std::cout << gkv.dump("testme", "INFO:GKV:Set:After testme set:") << std::endl;
gkv.get_value("testme", {"key201b"}, false);
gkv.get_value<std::string>("testme", {"key201s"}, "Not found");
gkv.get_value("testme", {"key201i"}, 123456);
gkv.get_value("testme", {"key201d"}, 123456.789);
gkv.get_vector<int64_t>("testme", {"keyA100"}, {1, 2, 3});
gkv.get_vector<std::string>("testme", {"keyA100"}, { "A", "", "", "" });
gkv.set_value("testme", {"keyA300-0"}, 330);
gkv.set_value("testme", {"keyA300-1"}, 331);
gkv.set_value("testme", {"keyA300-2"}, 332);
gkv.set_value("testme", {"keyA301-0"}, "India");
gkv.set_value<std::string>("testme", {"keyA301", "1"}, "World");
gkv.set_value("testme", {"keyA301", "2"}, "AkashaGanga");
gkv.get_vector<int32_t>("testme", {"keyA300"}, {1, 2, 3});
gkv.get_vector<std::string>("testme", {"keyA301"}, { "yes 1", "No 2", "very well 3" });
}
int main(int argc, char **argv) {
gkv_inited();
gkv_set();
return 0;
}
#endif

View file

@ -117,6 +117,7 @@ llama_target_and_test(test-quantize-perf.cpp)
llama_target_and_test(test-sampling.cpp)
llama_target_and_test(test-chat-template.cpp)
llama_target_and_test(test-chat-template-chaton.cpp)
llama_target_and_test(test-chaton-groupkv.cpp)
llama_target_and_test(test-grammar-parser.cpp)
llama_target_and_test(test-llama-grammar.cpp)

View file

@ -0,0 +1,66 @@
//
// Test GroupKV
//
#include "groupkv.hpp"
static void gkv_inited() {
GroupKV gkv = {{
{"Group1",{
{"testkey11", 11},
{"testkey12", true}
}},
{"Group2", {
{"key21", "val21"},
{"key22", 22},
{"key23", 2.3}
}}
}};
std::cout << "**** gkv inited **** " << std::endl;
std::cout << gkv.dump("", "INFO:GKV:Inited:") << std::endl;
}
static void gkv_set() {
std::cout << "**** gkv set **** " << std::endl;
GroupKV gkv = {{}};
std::cout << gkv.dump("", "INFO:GKV:Set:Initial:") << std::endl;
gkv.get_value("testme", {"key101b"}, false);
gkv.get_value<std::string>("testme", {"key101s"}, "Not found");
gkv.get_value("testme", {"key101i"}, 123456);
gkv.get_value("testme", {"key101d"}, 123456.789);
gkv.set_value("testme", {"key201b"}, true);
gkv.set_value("testme", {"key201s"}, "hello world");
gkv.set_value("testme", {"key201i"}, 987654);
gkv.set_value("testme", {"key201d"}, 9988.7766);
std::cout << gkv.dump("testme", "INFO:GKV:Set:After testme set:") << std::endl;
gkv.get_value("testme", {"key201b"}, false);
gkv.get_value<std::string>("testme", {"key201s"}, "Not found");
gkv.get_value("testme", {"key201i"}, 123456);
gkv.get_value("testme", {"key201d"}, 123456.789);
gkv.get_vector<int64_t>("testme", {"keyA100"}, {1, 2, 3});
gkv.get_vector<std::string>("testme", {"keyA100"}, { "A", "", "", "" });
gkv.set_value("testme", {"keyA300-0"}, 330);
gkv.set_value("testme", {"keyA300-1"}, 331);
gkv.set_value("testme", {"keyA300-2"}, 332);
gkv.set_value("testme", {"keyA301-0"}, "India");
gkv.set_value<std::string>("testme", {"keyA301", "1"}, "World");
gkv.set_value("testme", {"keyA301", "2"}, "AkashaGanga");
gkv.get_vector<int32_t>("testme", {"keyA300"}, {1, 2, 3});
gkv.get_vector<std::string>("testme", {"keyA301"}, { "yes 1", "No 2", "very well 3" });
}
int main(int argc, char **argv) {
log_set_target(log_filename_generator("main", "log"));
log_dump_cmdline(argc, argv);
gkv_inited();
gkv_set();
return 0;
}