123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- #include <string.h>
- #include "utils.h"
- #include "gtest/gtest.h"
- #define GTEST_COUT std::cerr << "[ ] [ INFO ]"
- namespace {
- TEST(UtilsRandRange, rangehits_10k) {
- int x;
- int rmin = 5, rmax = 200;
- int max = -rmax, min = rmax * 2;
- for (x = 0; x < 10000; x++) {
- int r = randrange(rmin, rmax);
- if (r < min)
- min = r;
- if (r > max)
- max = r;
- }
- ASSERT_EQ(min, rmin);
- ASSERT_EQ(max, rmax);
- }
- TEST(UtilsRandInt, rangeint_10k) {
- int x;
- int rmax = 200;
- int max = -rmax, min = rmax * 2;
- for (x = 0; x < 10000; x++) {
- int r = randint(rmax);
- if (r < min)
- min = r;
- if (r > max)
- max = r;
- }
- ASSERT_EQ(min, 0);
- ASSERT_EQ(max, rmax - 1);
- }
- TEST(UtilsRandActivate, rand_activate) {
- int yes, no, r;
- for (int l = 1; l < 5; l++) {
- yes = 0;
- no = 0;
- int total = 100000;
- for (int x = 0; x < total; x++) {
- if (random_activate(l))
- yes++;
- else
- no++;
- }
- GTEST_COUT << "Total " << total << ", Yes " << yes << std::endl;
- r = total / 100 * (l + 1);
- ASSERT_LE(abs(r - yes), 100);
- }
- }
- TEST(UtilsStrNStr, strnstr) {
-
- char buffer[20];
- int size = sizeof(buffer);
- memset(buffer, ' ', size);
- ASSERT_EQ(strnstr(buffer, size, "?"), (char *)NULL);
- buffer[10] = '?';
- ASSERT_EQ(strnstr(buffer, size, "?"), &buffer[10]);
- ASSERT_EQ(strnstr(buffer, 10, "?"), (char *)NULL);
- buffer[11] = '!';
- ASSERT_EQ(strnstr(buffer, size, "?!"), &buffer[10]);
- ASSERT_EQ(strnstr(buffer, size, "??"), (char *)NULL);
-
- ASSERT_EQ(strnstr(buffer, 10, "?!"), (char *)NULL);
-
- ASSERT_EQ(strnstr(buffer, 11, "?!"), &buffer[10]);
- buffer[2] = '?';
- buffer[5] = '?';
- buffer[1] = '!';
-
- ASSERT_EQ(strnstr(buffer, 10, "?!"), (char *)NULL);
- ASSERT_EQ(strnstr(buffer, 11, "?!"), &buffer[10]);
- }
- TEST(UtilsStringInsert, strin) {
-
-
- char buffer[20];
- int size = sizeof(buffer);
- memset(buffer, 1, size);
- strcpy(buffer, "STARTEND");
- ASSERT_EQ(string_insert(buffer, size, 5, "XX"), 1);
- ASSERT_EQ(strncmp(buffer + 5, "XX", 2), 0);
- ASSERT_STREQ(buffer, "STARTXXEND");
- ASSERT_EQ(string_insert(buffer, size, 5, "ZZZ"), 1);
- ASSERT_STREQ(buffer, "STARTZZZXXEND");
-
- ASSERT_EQ(string_insert(buffer, size, 0, "12345"), 1);
-
- ASSERT_STREQ(buffer, "12345STARTZZZXXEND");
- ASSERT_EQ(string_insert(buffer, size, 5, "FAIL"), 0);
- ASSERT_EQ(string_insert(buffer, size, size, "!"), 0);
- ASSERT_EQ(string_insert(buffer, size, strlen(buffer), "!"), 1);
- ASSERT_STREQ(buffer, "12345STARTZZZXXEND!");
-
- ASSERT_EQ(strlen(buffer), size - 1);
-
- ASSERT_EQ(string_insert(buffer, size, strlen(buffer), "!"), 0);
- ASSERT_STREQ(buffer, "12345STARTZZZXXEND!");
- }
- }
|