aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/suricata/src/util-spm.c
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/suricata/src/util-spm.c')
-rw-r--r--framework/src/suricata/src/util-spm.c2368
1 files changed, 0 insertions, 2368 deletions
diff --git a/framework/src/suricata/src/util-spm.c b/framework/src/suricata/src/util-spm.c
deleted file mode 100644
index 2da12e77..00000000
--- a/framework/src/suricata/src/util-spm.c
+++ /dev/null
@@ -1,2368 +0,0 @@
-/* Copyright (C) 2007-2014 Open Information Security Foundation
- *
- * You can copy, redistribute or modify this Program under the terms of
- * the GNU General Public License version 2 as published by the Free
- * Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * version 2 along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-/**
- * \file
- *
- * \author Pablo Rincon Crespo <pablo.rincon.crespo@gmail.com>
- *
- * PR (17/01/2010): Single pattern search algorithms:
- * Currently there are 3 algorithms to choose: BasicSearch, Bs2Bm and
- * BoyerMoore (Boyer Moores algorithm). The first one doesn't need a context.
- * But for Bs2Bm and BoyerMoore, you'll need to build some arrays.
- *
- * !! If you are going to use the same pattern multiple times,
- * please, try to store the context some where. For Bs2Bm, the
- * context is an array of "badchars". For BoyerMoore you need to store
- * two arrays of shifts. Have a look at the wrappers and unittests
- * for examples of this. If you cant store the context, use the
- * wrappers: Bs2bmSearch, BoyerMooreSearch, and the ones caseless, or BasicSearch
- * That is the most basic.
- *
- * Use the stats and util-clock.h to determine which one fit better for you
- * Boyer Moore should be used for patterns greater than 1 of length
- * In the range of 2 - 6, if the text length is greater than 1000 you could
- * use boyer moore, otherwise, basic search. If the pattern is greater
- * than 6 and the textlen is greater than 500, use boyer moore.
- * This is an aproximation, but use the stats and util-clock to determine which one
- * fit better for your case.
- *
- */
-
-#include "suricata-common.h"
-#include "suricata.h"
-#include "util-unittest.h"
-
-#include "util-spm.h"
-#include "util-spm-bs.h"
-#include "util-spm-bs2bm.h"
-#include "util-spm-bm.h"
-#include "util-clock.h"
-
-
-/**
- * Wrappers for building context and searching (Bs2Bm and boyermoore)
- * Use them if you cant store the context
- *
- */
-
-/**
- * \brief Search a pattern in the text using the Bs2Bm algorithm (build a bad characters array)
- *
- * \param text Text to search in
- * \param textlen length of the text
- * \param needle pattern to search for
- * \param needlelen length of the pattern
- */
-uint8_t *Bs2bmSearch(uint8_t *text, uint32_t textlen, uint8_t *needle, uint16_t needlelen)
-{
- uint8_t badchars[ALPHABET_SIZE];
- Bs2BmBadchars(needle, needlelen, badchars);
-
- return Bs2Bm(text, textlen, needle, needlelen, badchars);
-}
-
-/**
- * \brief Search a pattern in the text using the Bs2Bm nocase algorithm (build a bad characters array)
- *
- * \param text Text to search in
- * \param textlen length of the text
- * \param needle pattern to search for
- * \param needlelen length of the pattern
- */
-uint8_t *Bs2bmNocaseSearch(uint8_t *text, uint32_t textlen, uint8_t *needle, uint16_t needlelen)
-{
- uint8_t badchars[ALPHABET_SIZE];
- Bs2BmBadchars(needle, needlelen, badchars);
-
- return Bs2BmNocase(text, textlen, needle, needlelen, badchars);
-}
-
-/**
- * \brief Search a pattern in the text using Boyer Moore algorithm
- * (build a bad character shifts array and good prefixes shift array)
- *
- * \param text Text to search in
- * \param textlen length of the text
- * \param needle pattern to search for
- * \param needlelen length of the pattern
- */
-uint8_t *BoyerMooreSearch(uint8_t *text, uint32_t textlen, uint8_t *needle, uint16_t needlelen)
-{
- BmCtx *bm_ctx = BoyerMooreCtxInit(needle, needlelen);
-
- uint8_t *ret = BoyerMoore(needle, needlelen, text, textlen, bm_ctx);
- BoyerMooreCtxDeInit(bm_ctx);
-
- return ret;
-}
-
-/**
- * \brief Search a pattern in the text using Boyer Moore nocase algorithm
- * (build a bad character shifts array and good prefixes shift array)
- *
- * \param text Text to search in
- * \param textlen length of the text
- * \param needle pattern to search for
- * \param needlelen length of the pattern
- */
-uint8_t *BoyerMooreNocaseSearch(uint8_t *text, uint32_t textlen, uint8_t *needle, uint16_t needlelen)
-{
- BmCtx *bm_ctx = BoyerMooreNocaseCtxInit(needle, needlelen);
-
- uint8_t *ret = BoyerMooreNocase(needle, needlelen, text, textlen, bm_ctx);
- BoyerMooreCtxDeInit(bm_ctx);
-
- return ret;
-}
-
-
-#ifdef UNITTESTS
-
-/** Comment out this if you want stats
- * #define ENABLE_SEARCH_STATS 1
- */
-
-/* Number of times to repeat the search (for stats) */
-#define STATS_TIMES 1000000
-
-/**
- * \brief Unittest helper function wrappers for the search algorithms
- * \param text pointer to the buffer to search in
- * \param needle pointer to the pattern to search for
- * \param times If you are testing performance, se the numebr of times
- * that you want to repeat the search
- */
-uint8_t *BasicSearchWrapper(uint8_t *text, uint8_t *needle, int times)
-{
- uint32_t textlen = strlen((char *)text);
- uint16_t needlelen = strlen((char *)needle);
-
- uint8_t *ret = NULL;
- int i = 0;
-
- CLOCK_INIT;
- if (times > 1)
- CLOCK_START;
-
- for (i = 0; i < times; i++) {
- ret = BasicSearch(text, textlen, needle, needlelen);
- }
-
- if (times > 1) { CLOCK_END; CLOCK_PRINT_SEC; };
- return ret;
-}
-
-uint8_t *BasicSearchNocaseWrapper(uint8_t *text, uint8_t *needle, int times)
-{
- uint32_t textlen = strlen((char *)text);
- uint16_t needlelen = strlen((char *)needle);
-
- uint8_t *ret = NULL;
- int i = 0;
-
- CLOCK_INIT;
- if (times > 1) CLOCK_START;
- for (i = 0; i < times; i++) {
- ret = BasicSearchNocase(text, textlen, needle, needlelen);
- }
- if (times > 1) { CLOCK_END; CLOCK_PRINT_SEC; };
- return ret;
-}
-
-uint8_t *Bs2bmWrapper(uint8_t *text, uint8_t *needle, int times)
-{
- uint32_t textlen = strlen((char *)text);
- uint16_t needlelen = strlen((char *)needle);
-
- uint8_t badchars[ALPHABET_SIZE];
- Bs2BmBadchars(needle, needlelen, badchars);
-
- uint8_t *ret = NULL;
- int i = 0;
-
- CLOCK_INIT;
- if (times > 1) CLOCK_START;
- for (i = 0; i < times; i++) {
- ret = Bs2Bm(text, textlen, needle, needlelen, badchars);
- }
- if (times > 1) { CLOCK_END; CLOCK_PRINT_SEC; };
- return ret;
-}
-
-uint8_t *Bs2bmNocaseWrapper(uint8_t *text, uint8_t *needle, int times)
-{
- uint32_t textlen = strlen((char *)text);
- uint16_t needlelen = strlen((char *)needle);
-
- uint8_t badchars[ALPHABET_SIZE];
- Bs2BmBadchars(needle, needlelen, badchars);
-
- uint8_t *ret = NULL;
- int i = 0;
-
- CLOCK_INIT;
- if (times > 1) CLOCK_START;
- for (i = 0; i < times; i++) {
- ret = Bs2BmNocase(text, textlen, needle, needlelen, badchars);
- }
- if (times > 1) { CLOCK_END; CLOCK_PRINT_SEC; };
- return ret;
-}
-
-uint8_t *BoyerMooreWrapper(uint8_t *text, uint8_t *needle, int times)
-{
- uint32_t textlen = strlen((char *)text);
- uint16_t needlelen = strlen((char *)needle);
-
- BmCtx *bm_ctx = BoyerMooreCtxInit(needle, needlelen);
-
- uint8_t *ret = NULL;
- int i = 0;
-
- CLOCK_INIT;
- if (times > 1) CLOCK_START;
- for (i = 0; i < times; i++) {
- ret = BoyerMoore(needle, needlelen, text, textlen, bm_ctx);
- }
- if (times > 1) { CLOCK_END; CLOCK_PRINT_SEC; };
- BoyerMooreCtxDeInit(bm_ctx);
- return ret;
-}
-
-uint8_t *BoyerMooreNocaseWrapper(uint8_t *text, uint8_t *in_needle, int times)
-{
- uint32_t textlen = strlen((char *)text);
- uint16_t needlelen = strlen((char *)in_needle);
-
- /* Make a copy of in_needle to be able to convert it to lowercase. */
- uint8_t *needle = SCMalloc(needlelen);
- if (needle == NULL)
- return NULL;
- memcpy(needle, in_needle, needlelen);
-
- BmCtx *bm_ctx = BoyerMooreNocaseCtxInit(needle, needlelen);
-
- uint8_t *ret = NULL;
- int i = 0;
-
- CLOCK_INIT;
- if (times > 1) CLOCK_START;
- for (i = 0; i < times; i++) {
- ret = BoyerMooreNocase(needle, needlelen, text, textlen, bm_ctx);
- }
- if (times > 1) { CLOCK_END; CLOCK_PRINT_SEC; };
- BoyerMooreCtxDeInit(bm_ctx);
- free(needle);
- return ret;
-
-}
-
-/**
- * \brief Unittest helper function wrappers for the search algorithms
- * \param text pointer to the buffer to search in
- * \param needle pointer to the pattern to search for
- * \param times If you are testing performance, se the numebr of times
- * that you want to repeat the search
- */
-uint8_t *BasicSearchCtxWrapper(uint8_t *text, uint8_t *needle, int times)
-{
- uint32_t textlen = strlen((char *)text);
- uint16_t needlelen = strlen((char *)needle);
-
- uint8_t *ret = NULL;
- int i = 0;
-
- CLOCK_INIT;
- if (times > 1) CLOCK_START;
- for (i = 0; i < times; i++) {
- /* This wrapper is a fake, no context needed! */
- ret = BasicSearch(text, textlen, needle, needlelen);
- }
- if (times > 1) { CLOCK_END; CLOCK_PRINT_SEC; };
- return ret;
-}
-
-uint8_t *BasicSearchNocaseCtxWrapper(uint8_t *text, uint8_t *needle, int times)
-{
- uint32_t textlen = strlen((char *)text);
- uint16_t needlelen = strlen((char *)needle);
-
- uint8_t *ret = NULL;
- int i = 0;
-
- CLOCK_INIT;
- if (times > 1) CLOCK_START;
- for (i = 0; i < times; i++) {
- /* This wrapper is a fake, no context needed! */
- ret = BasicSearchNocase(text, textlen, needle, needlelen);
- }
- if (times > 1) { CLOCK_END; CLOCK_PRINT_SEC; };
- return ret;
-}
-
-uint8_t *Bs2bmCtxWrapper(uint8_t *text, uint8_t *needle, int times)
-{
- uint32_t textlen = strlen((char *)text);
- uint16_t needlelen = strlen((char *)needle);
-
- uint8_t badchars[ALPHABET_SIZE];
-
- uint8_t *ret = NULL;
- int i = 0;
-
- CLOCK_INIT;
- if (times > 1) CLOCK_START;
- for (i = 0; i < times; i++) {
- /* Stats including context building */
- Bs2BmBadchars(needle, needlelen, badchars);
- ret = Bs2Bm(text, textlen, needle, needlelen, badchars);
- }
- if (times > 1) { CLOCK_END; CLOCK_PRINT_SEC; };
- return ret;
-}
-
-uint8_t *Bs2bmNocaseCtxWrapper(uint8_t *text, uint8_t *needle, int times)
-{
- uint32_t textlen = strlen((char *)text);
- uint16_t needlelen = strlen((char *)needle);
-
- uint8_t badchars[ALPHABET_SIZE];
-
- uint8_t *ret = NULL;
- int i = 0;
-
- CLOCK_INIT;
- if (times > 1) CLOCK_START;
- for (i = 0; i < times; i++) {
- /* Stats including context building */
- Bs2BmBadchars(needle, needlelen, badchars);
- ret = Bs2BmNocase(text, textlen, needle, needlelen, badchars);
- }
- if (times > 1) { CLOCK_END; CLOCK_PRINT_SEC; };
- return ret;
-}
-
-uint8_t *BoyerMooreCtxWrapper(uint8_t *text, uint8_t *needle, int times)
-{
- uint32_t textlen = strlen((char *)text);
- uint16_t needlelen = strlen((char *)needle);
-
- BmCtx *bm_ctx = BoyerMooreCtxInit(needle, needlelen);
-
- uint8_t *ret = NULL;
- int i = 0;
-
- CLOCK_INIT;
- if (times > 1) CLOCK_START;
- for (i = 0; i < times; i++) {
- /* Stats including context building */
- ret = BoyerMoore(needle, needlelen, text, textlen, bm_ctx);
- }
- if (times > 1) { CLOCK_END; CLOCK_PRINT_SEC; };
- BoyerMooreCtxDeInit(bm_ctx);
-
- return ret;
-}
-
-uint8_t *RawCtxWrapper(uint8_t *text, uint8_t *needle, int times)
-{
- uint32_t textlen = strlen((char *)text);
- uint16_t needlelen = strlen((char *)needle);
-
- uint8_t *ret = NULL;
- int i = 0;
-
- CLOCK_INIT;
- if (times > 1) CLOCK_START;
- for (i = 0; i < times; i++) {
- ret = SpmSearch(text, textlen, needle, needlelen);
- }
- if (times > 1) { CLOCK_END; CLOCK_PRINT_SEC; };
- return ret;
-}
-
-uint8_t *BoyerMooreNocaseCtxWrapper(uint8_t *text, uint8_t *in_needle, int times)
-{
- uint32_t textlen = strlen((char *)text);
- uint16_t needlelen = strlen((char *)in_needle);
-
- /* Make a copy of in_needle to be able to convert it to lowercase. */
- uint8_t *needle = SCMalloc(needlelen);
- if (needle == NULL)
- return NULL;
- memcpy(needle, in_needle, needlelen);
-
- BmCtx *bm_ctx = BoyerMooreNocaseCtxInit(needle, needlelen);
-
- uint8_t *ret = NULL;
- int i = 0;
-
- CLOCK_INIT;
- if (times > 1) CLOCK_START;
- for (i = 0; i < times; i++) {
- ret = BoyerMooreNocase(needle, needlelen, text, textlen, bm_ctx);
- }
- if (times > 1) { CLOCK_END; CLOCK_PRINT_SEC; };
- BoyerMooreCtxDeInit(bm_ctx);
- free(needle);
- return ret;
-
-}
-
-/**
- * \test Generic test for BasicSearch matching
- */
-int UtilSpmBasicSearchTest01()
-{
- uint8_t *needle = (uint8_t *)"oPqRsT";
- uint8_t *text = (uint8_t *)"aBcDeFgHiJkLmNoPqRsTuVwXyZ";
- uint8_t *found = BasicSearchWrapper(text, needle, 1);
- //printf("found: %s\n", found);
- if (found != NULL)
- return 1;
- else
- return 0;
-}
-
-/**
- * \test Generic test for BasicSearch nocase matching
- */
-int UtilSpmBasicSearchNocaseTest01()
-{
- uint8_t *needle = (uint8_t *)"OpQrSt";
- uint8_t *text = (uint8_t *)"aBcDeFgHiJkLmNoPqRsTuVwXyZ";
- uint8_t *found = BasicSearchNocaseWrapper(text, needle, 1);
- //printf("found: %s\n", found);
- if (found != NULL)
- return 1;
- else
- return 0;
-}
-
-/**
- * \test Generic test for Bs2Bm matching
- */
-int UtilSpmBs2bmSearchTest01()
-{
- uint8_t *needle = (uint8_t *)"oPqRsT";
- uint8_t *text = (uint8_t *)"aBcDeFgHiJkLmNoPqRsTuVwXyZ";
- uint8_t *found = Bs2bmWrapper(text, needle, 1);
- //printf("found: %s\n", found);
- if (found != NULL)
- return 1;
- else
- return 0;
-}
-
-/**
- * \test Generic test for Bs2Bm no case matching
- */
-int UtilSpmBs2bmSearchNocaseTest01()
-{
- uint8_t *needle = (uint8_t *)"OpQrSt";
- uint8_t *text = (uint8_t *)"aBcDeFgHiJkLmNoPqRsTuVwXyZ";
- uint8_t *found = Bs2bmNocaseWrapper(text, needle, 1);
- //printf("found: %s\n", found);
- if (found != NULL)
- return 1;
- else
- return 0;
-}
-
-/**
- * \test Generic test for boyer moore matching
- */
-int UtilSpmBoyerMooreSearchTest01()
-{
- uint8_t *needle = (uint8_t *)"oPqRsT";
- uint8_t *text = (uint8_t *)"aBcDeFgHiJkLmNoPqRsTuVwXyZ";
- uint8_t *found = BoyerMooreWrapper(text, needle, 1);
- //printf("found: %s\n", found);
- if (found != NULL)
- return 1;
- else
- return 0;
-}
-
-/**
- * \test Generic test for boyer moore nocase matching
- */
-int UtilSpmBoyerMooreSearchNocaseTest01()
-{
- uint8_t *needle = (uint8_t *)"OpQrSt";
- uint8_t *text = (uint8_t *)"aBcDeFgHiJkLmNoPqRsTuVwXyZ";
- uint8_t *found = BoyerMooreNocaseWrapper(text, needle, 1);
- //printf("found: %s\n", found);
- if (found != NULL)
- return 1;
- else
- return 0;
-}
-
-/**
- * \test issue 130 (@redmine) check to ensure that the
- * problem is not the algorithm implementation
- */
-int UtilSpmBoyerMooreSearchNocaseTestIssue130()
-{
- uint8_t *needle = (uint8_t *)"WWW-Authenticate: ";
- uint8_t *text = (uint8_t *)"Date: Mon, 23 Feb 2009 13:31:49 GMT"
- "Server: Apache\r\n"
- "Www-authenticate: Basic realm=\"Authentification user password\"\r\n"
- "Vary: accept-language,accept-charset\r\n"
- "Accept-ranges: bytes\r\n"
- "Connection: close\r\n"
- "Content-type: text/html; charset=iso-8859-1\r\n"
- "Content-language: fr\r\n"
- "Expires: Mon, 23 Feb 2009 13:31:49 GMT\r\n\r\n";
- uint8_t *found = BoyerMooreNocaseWrapper(text, needle, 1);
- //printf("found: %s\n", found);
- if (found != NULL)
- return 1;
- else
- return 0;
-}
-
-/* Generic tests that should not match */
-int UtilSpmBasicSearchTest02()
-{
- uint8_t *needle = (uint8_t *)"oPQRsT";
- uint8_t *text = (uint8_t *)"aBcDeFgHiJkLmNoPqRsTuVwXyZ";
- uint8_t *found = BasicSearchWrapper(text, needle, 1);
- //printf("found: %s\n", found);
- if (found != NULL)
- return 0;
- else
- return 1;
-}
-
-int UtilSpmBasicSearchNocaseTest02()
-{
- uint8_t *needle = (uint8_t *)"OpZrSt";
- uint8_t *text = (uint8_t *)"aBcDeFgHiJkLmNoPqRsTuVwXyZ";
- uint8_t *found = BasicSearchNocaseWrapper(text, needle, 1);
- //printf("found: %s\n", found);
- if (found != NULL)
- return 0;
- else
- return 1;
-}
-
-int UtilSpmBs2bmSearchTest02()
-{
- uint8_t *needle = (uint8_t *)"oPQRsT";
- uint8_t *text = (uint8_t *)"aBcDeFgHiJkLmNoPqRsTuVwXyZ";
- uint8_t *found = Bs2bmWrapper(text, needle, 1);
- //printf("found: %s\n", found);
- if (found != NULL)
- return 0;
- else
- return 1;
-}
-
-int UtilSpmBs2bmSearchNocaseTest02()
-{
- uint8_t *needle = (uint8_t *)"OpZrSt";
- uint8_t *text = (uint8_t *)"aBcDeFgHiJkLmNoPqRsTuVwXyZ";
- uint8_t *found = Bs2bmNocaseWrapper(text, needle, 1);
- //printf("found: %s\n", found);
- if (found != NULL)
- return 0;
- else
- return 1;
-}
-
-int UtilSpmBoyerMooreSearchTest02()
-{
- uint8_t *needle = (uint8_t *)"oPQRsT";
- uint8_t *text = (uint8_t *)"aBcDeFgHiJkLmNoPqRsTuVwXyZ";
- uint8_t *found = BoyerMooreWrapper(text, needle, 1);
- //printf("found: %s\n", found);
- if (found != NULL)
- return 0;
- else
- return 1;
-}
-
-int UtilSpmBoyerMooreSearchNocaseTest02()
-{
- uint8_t *needle = (uint8_t *)"OpZrSt";
- uint8_t *text = (uint8_t *)"aBcDeFgHiJkLmNoPqRsTuVwXyZ";
- uint8_t *found = BoyerMooreNocaseWrapper(text, needle, 1);
- //printf("found: %s\n", found);
- if (found != NULL)
- return 0;
- else
- return 1;
-}
-
-/**
- * \test Check that all the algorithms work at any offset and any pattern length
- */
-int UtilSpmSearchOffsetsTest01()
-{
- char *text[26][27];
- text[0][0]="azzzzzzzzzzzzzzzzzzzzzzzzzz";
- text[0][1]="zazzzzzzzzzzzzzzzzzzzzzzzzz";
- text[0][2]="zzazzzzzzzzzzzzzzzzzzzzzzzz";
- text[0][3]="zzzazzzzzzzzzzzzzzzzzzzzzzz";
- text[0][4]="zzzzazzzzzzzzzzzzzzzzzzzzzz";
- text[0][5]="zzzzzazzzzzzzzzzzzzzzzzzzzz";
- text[0][6]="zzzzzzazzzzzzzzzzzzzzzzzzzz";
- text[0][7]="zzzzzzzazzzzzzzzzzzzzzzzzzz";
- text[0][8]="zzzzzzzzazzzzzzzzzzzzzzzzzz";
- text[0][9]="zzzzzzzzzazzzzzzzzzzzzzzzzz";
- text[0][10]="zzzzzzzzzzazzzzzzzzzzzzzzzz";
- text[0][11]="zzzzzzzzzzzazzzzzzzzzzzzzzz";
- text[0][12]="zzzzzzzzzzzzazzzzzzzzzzzzzz";
- text[0][13]="zzzzzzzzzzzzzazzzzzzzzzzzzz";
- text[0][14]="zzzzzzzzzzzzzzazzzzzzzzzzzz";
- text[0][15]="zzzzzzzzzzzzzzzazzzzzzzzzzz";
- text[0][16]="zzzzzzzzzzzzzzzzazzzzzzzzzz";
- text[0][17]="zzzzzzzzzzzzzzzzzazzzzzzzzz";
- text[0][18]="zzzzzzzzzzzzzzzzzzazzzzzzzz";
- text[0][19]="zzzzzzzzzzzzzzzzzzzazzzzzzz";
- text[0][20]="zzzzzzzzzzzzzzzzzzzzazzzzzz";
- text[0][21]="zzzzzzzzzzzzzzzzzzzzzazzzzz";
- text[0][22]="zzzzzzzzzzzzzzzzzzzzzzazzzz";
- text[0][23]="zzzzzzzzzzzzzzzzzzzzzzzazzz";
- text[0][24]="zzzzzzzzzzzzzzzzzzzzzzzzazz";
- text[0][25]="zzzzzzzzzzzzzzzzzzzzzzzzzaz";
- text[0][26]="zzzzzzzzzzzzzzzzzzzzzzzzzza";
- text[1][0]="aBzzzzzzzzzzzzzzzzzzzzzzzzz";
- text[1][1]="zaBzzzzzzzzzzzzzzzzzzzzzzzz";
- text[1][2]="zzaBzzzzzzzzzzzzzzzzzzzzzzz";
- text[1][3]="zzzaBzzzzzzzzzzzzzzzzzzzzzz";
- text[1][4]="zzzzaBzzzzzzzzzzzzzzzzzzzzz";
- text[1][5]="zzzzzaBzzzzzzzzzzzzzzzzzzzz";
- text[1][6]="zzzzzzaBzzzzzzzzzzzzzzzzzzz";
- text[1][7]="zzzzzzzaBzzzzzzzzzzzzzzzzzz";
- text[1][8]="zzzzzzzzaBzzzzzzzzzzzzzzzzz";
- text[1][9]="zzzzzzzzzaBzzzzzzzzzzzzzzzz";
- text[1][10]="zzzzzzzzzzaBzzzzzzzzzzzzzzz";
- text[1][11]="zzzzzzzzzzzaBzzzzzzzzzzzzzz";
- text[1][12]="zzzzzzzzzzzzaBzzzzzzzzzzzzz";
- text[1][13]="zzzzzzzzzzzzzaBzzzzzzzzzzzz";
- text[1][14]="zzzzzzzzzzzzzzaBzzzzzzzzzzz";
- text[1][15]="zzzzzzzzzzzzzzzaBzzzzzzzzzz";
- text[1][16]="zzzzzzzzzzzzzzzzaBzzzzzzzzz";
- text[1][17]="zzzzzzzzzzzzzzzzzaBzzzzzzzz";
- text[1][18]="zzzzzzzzzzzzzzzzzzaBzzzzzzz";
- text[1][19]="zzzzzzzzzzzzzzzzzzzaBzzzzzz";
- text[1][20]="zzzzzzzzzzzzzzzzzzzzaBzzzzz";
- text[1][21]="zzzzzzzzzzzzzzzzzzzzzaBzzzz";
- text[1][22]="zzzzzzzzzzzzzzzzzzzzzzaBzzz";
- text[1][23]="zzzzzzzzzzzzzzzzzzzzzzzaBzz";
- text[1][24]="zzzzzzzzzzzzzzzzzzzzzzzzaBz";
- text[1][25]="zzzzzzzzzzzzzzzzzzzzzzzzzaB";
- text[2][0]="aBczzzzzzzzzzzzzzzzzzzzzzzz";
- text[2][1]="zaBczzzzzzzzzzzzzzzzzzzzzzz";
- text[2][2]="zzaBczzzzzzzzzzzzzzzzzzzzzz";
- text[2][3]="zzzaBczzzzzzzzzzzzzzzzzzzzz";
- text[2][4]="zzzzaBczzzzzzzzzzzzzzzzzzzz";
- text[2][5]="zzzzzaBczzzzzzzzzzzzzzzzzzz";
- text[2][6]="zzzzzzaBczzzzzzzzzzzzzzzzzz";
- text[2][7]="zzzzzzzaBczzzzzzzzzzzzzzzzz";
- text[2][8]="zzzzzzzzaBczzzzzzzzzzzzzzzz";
- text[2][9]="zzzzzzzzzaBczzzzzzzzzzzzzzz";
- text[2][10]="zzzzzzzzzzaBczzzzzzzzzzzzzz";
- text[2][11]="zzzzzzzzzzzaBczzzzzzzzzzzzz";
- text[2][12]="zzzzzzzzzzzzaBczzzzzzzzzzzz";
- text[2][13]="zzzzzzzzzzzzzaBczzzzzzzzzzz";
- text[2][14]="zzzzzzzzzzzzzzaBczzzzzzzzzz";
- text[2][15]="zzzzzzzzzzzzzzzaBczzzzzzzzz";
- text[2][16]="zzzzzzzzzzzzzzzzaBczzzzzzzz";
- text[2][17]="zzzzzzzzzzzzzzzzzaBczzzzzzz";
- text[2][18]="zzzzzzzzzzzzzzzzzzaBczzzzzz";
- text[2][19]="zzzzzzzzzzzzzzzzzzzaBczzzzz";
- text[2][20]="zzzzzzzzzzzzzzzzzzzzaBczzzz";
- text[2][21]="zzzzzzzzzzzzzzzzzzzzzaBczzz";
- text[2][22]="zzzzzzzzzzzzzzzzzzzzzzaBczz";
- text[2][23]="zzzzzzzzzzzzzzzzzzzzzzzaBcz";
- text[2][24]="zzzzzzzzzzzzzzzzzzzzzzzzaBc";
- text[3][0]="aBcDzzzzzzzzzzzzzzzzzzzzzzz";
- text[3][1]="zaBcDzzzzzzzzzzzzzzzzzzzzzz";
- text[3][2]="zzaBcDzzzzzzzzzzzzzzzzzzzzz";
- text[3][3]="zzzaBcDzzzzzzzzzzzzzzzzzzzz";
- text[3][4]="zzzzaBcDzzzzzzzzzzzzzzzzzzz";
- text[3][5]="zzzzzaBcDzzzzzzzzzzzzzzzzzz";
- text[3][6]="zzzzzzaBcDzzzzzzzzzzzzzzzzz";
- text[3][7]="zzzzzzzaBcDzzzzzzzzzzzzzzzz";
- text[3][8]="zzzzzzzzaBcDzzzzzzzzzzzzzzz";
- text[3][9]="zzzzzzzzzaBcDzzzzzzzzzzzzzz";
- text[3][10]="zzzzzzzzzzaBcDzzzzzzzzzzzzz";
- text[3][11]="zzzzzzzzzzzaBcDzzzzzzzzzzzz";
- text[3][12]="zzzzzzzzzzzzaBcDzzzzzzzzzzz";
- text[3][13]="zzzzzzzzzzzzzaBcDzzzzzzzzzz";
- text[3][14]="zzzzzzzzzzzzzzaBcDzzzzzzzzz";
- text[3][15]="zzzzzzzzzzzzzzzaBcDzzzzzzzz";
- text[3][16]="zzzzzzzzzzzzzzzzaBcDzzzzzzz";
- text[3][17]="zzzzzzzzzzzzzzzzzaBcDzzzzzz";
- text[3][18]="zzzzzzzzzzzzzzzzzzaBcDzzzzz";
- text[3][19]="zzzzzzzzzzzzzzzzzzzaBcDzzzz";
- text[3][20]="zzzzzzzzzzzzzzzzzzzzaBcDzzz";
- text[3][21]="zzzzzzzzzzzzzzzzzzzzzaBcDzz";
- text[3][22]="zzzzzzzzzzzzzzzzzzzzzzaBcDz";
- text[3][23]="zzzzzzzzzzzzzzzzzzzzzzzaBcD";
- text[4][0]="aBcDezzzzzzzzzzzzzzzzzzzzzz";
- text[4][1]="zaBcDezzzzzzzzzzzzzzzzzzzzz";
- text[4][2]="zzaBcDezzzzzzzzzzzzzzzzzzzz";
- text[4][3]="zzzaBcDezzzzzzzzzzzzzzzzzzz";
- text[4][4]="zzzzaBcDezzzzzzzzzzzzzzzzzz";
- text[4][5]="zzzzzaBcDezzzzzzzzzzzzzzzzz";
- text[4][6]="zzzzzzaBcDezzzzzzzzzzzzzzzz";
- text[4][7]="zzzzzzzaBcDezzzzzzzzzzzzzzz";
- text[4][8]="zzzzzzzzaBcDezzzzzzzzzzzzzz";
- text[4][9]="zzzzzzzzzaBcDezzzzzzzzzzzzz";
- text[4][10]="zzzzzzzzzzaBcDezzzzzzzzzzzz";
- text[4][11]="zzzzzzzzzzzaBcDezzzzzzzzzzz";
- text[4][12]="zzzzzzzzzzzzaBcDezzzzzzzzzz";
- text[4][13]="zzzzzzzzzzzzzaBcDezzzzzzzzz";
- text[4][14]="zzzzzzzzzzzzzzaBcDezzzzzzzz";
- text[4][15]="zzzzzzzzzzzzzzzaBcDezzzzzzz";
- text[4][16]="zzzzzzzzzzzzzzzzaBcDezzzzzz";
- text[4][17]="zzzzzzzzzzzzzzzzzaBcDezzzzz";
- text[4][18]="zzzzzzzzzzzzzzzzzzaBcDezzzz";
- text[4][19]="zzzzzzzzzzzzzzzzzzzaBcDezzz";
- text[4][20]="zzzzzzzzzzzzzzzzzzzzaBcDezz";
- text[4][21]="zzzzzzzzzzzzzzzzzzzzzaBcDez";
- text[4][22]="zzzzzzzzzzzzzzzzzzzzzzaBcDe";
- text[5][0]="aBcDeFzzzzzzzzzzzzzzzzzzzzz";
- text[5][1]="zaBcDeFzzzzzzzzzzzzzzzzzzzz";
- text[5][2]="zzaBcDeFzzzzzzzzzzzzzzzzzzz";
- text[5][3]="zzzaBcDeFzzzzzzzzzzzzzzzzzz";
- text[5][4]="zzzzaBcDeFzzzzzzzzzzzzzzzzz";
- text[5][5]="zzzzzaBcDeFzzzzzzzzzzzzzzzz";
- text[5][6]="zzzzzzaBcDeFzzzzzzzzzzzzzzz";
- text[5][7]="zzzzzzzaBcDeFzzzzzzzzzzzzzz";
- text[5][8]="zzzzzzzzaBcDeFzzzzzzzzzzzzz";
- text[5][9]="zzzzzzzzzaBcDeFzzzzzzzzzzzz";
- text[5][10]="zzzzzzzzzzaBcDeFzzzzzzzzzzz";
- text[5][11]="zzzzzzzzzzzaBcDeFzzzzzzzzzz";
- text[5][12]="zzzzzzzzzzzzaBcDeFzzzzzzzzz";
- text[5][13]="zzzzzzzzzzzzzaBcDeFzzzzzzzz";
- text[5][14]="zzzzzzzzzzzzzzaBcDeFzzzzzzz";
- text[5][15]="zzzzzzzzzzzzzzzaBcDeFzzzzzz";
- text[5][16]="zzzzzzzzzzzzzzzzaBcDeFzzzzz";
- text[5][17]="zzzzzzzzzzzzzzzzzaBcDeFzzzz";
- text[5][18]="zzzzzzzzzzzzzzzzzzaBcDeFzzz";
- text[5][19]="zzzzzzzzzzzzzzzzzzzaBcDeFzz";
- text[5][20]="zzzzzzzzzzzzzzzzzzzzaBcDeFz";
- text[5][21]="zzzzzzzzzzzzzzzzzzzzzaBcDeF";
- text[6][0]="aBcDeFgzzzzzzzzzzzzzzzzzzzz";
- text[6][1]="zaBcDeFgzzzzzzzzzzzzzzzzzzz";
- text[6][2]="zzaBcDeFgzzzzzzzzzzzzzzzzzz";
- text[6][3]="zzzaBcDeFgzzzzzzzzzzzzzzzzz";
- text[6][4]="zzzzaBcDeFgzzzzzzzzzzzzzzzz";
- text[6][5]="zzzzzaBcDeFgzzzzzzzzzzzzzzz";
- text[6][6]="zzzzzzaBcDeFgzzzzzzzzzzzzzz";
- text[6][7]="zzzzzzzaBcDeFgzzzzzzzzzzzzz";
- text[6][8]="zzzzzzzzaBcDeFgzzzzzzzzzzzz";
- text[6][9]="zzzzzzzzzaBcDeFgzzzzzzzzzzz";
- text[6][10]="zzzzzzzzzzaBcDeFgzzzzzzzzzz";
- text[6][11]="zzzzzzzzzzzaBcDeFgzzzzzzzzz";
- text[6][12]="zzzzzzzzzzzzaBcDeFgzzzzzzzz";
- text[6][13]="zzzzzzzzzzzzzaBcDeFgzzzzzzz";
- text[6][14]="zzzzzzzzzzzzzzaBcDeFgzzzzzz";
- text[6][15]="zzzzzzzzzzzzzzzaBcDeFgzzzzz";
- text[6][16]="zzzzzzzzzzzzzzzzaBcDeFgzzzz";
- text[6][17]="zzzzzzzzzzzzzzzzzaBcDeFgzzz";
- text[6][18]="zzzzzzzzzzzzzzzzzzaBcDeFgzz";
- text[6][19]="zzzzzzzzzzzzzzzzzzzaBcDeFgz";
- text[6][20]="zzzzzzzzzzzzzzzzzzzzaBcDeFg";
- text[7][0]="aBcDeFgHzzzzzzzzzzzzzzzzzzz";
- text[7][1]="zaBcDeFgHzzzzzzzzzzzzzzzzzz";
- text[7][2]="zzaBcDeFgHzzzzzzzzzzzzzzzzz";
- text[7][3]="zzzaBcDeFgHzzzzzzzzzzzzzzzz";
- text[7][4]="zzzzaBcDeFgHzzzzzzzzzzzzzzz";
- text[7][5]="zzzzzaBcDeFgHzzzzzzzzzzzzzz";
- text[7][6]="zzzzzzaBcDeFgHzzzzzzzzzzzzz";
- text[7][7]="zzzzzzzaBcDeFgHzzzzzzzzzzzz";
- text[7][8]="zzzzzzzzaBcDeFgHzzzzzzzzzzz";
- text[7][9]="zzzzzzzzzaBcDeFgHzzzzzzzzzz";
- text[7][10]="zzzzzzzzzzaBcDeFgHzzzzzzzzz";
- text[7][11]="zzzzzzzzzzzaBcDeFgHzzzzzzzz";
- text[7][12]="zzzzzzzzzzzzaBcDeFgHzzzzzzz";
- text[7][13]="zzzzzzzzzzzzzaBcDeFgHzzzzzz";
- text[7][14]="zzzzzzzzzzzzzzaBcDeFgHzzzzz";
- text[7][15]="zzzzzzzzzzzzzzzaBcDeFgHzzzz";
- text[7][16]="zzzzzzzzzzzzzzzzaBcDeFgHzzz";
- text[7][17]="zzzzzzzzzzzzzzzzzaBcDeFgHzz";
- text[7][18]="zzzzzzzzzzzzzzzzzzaBcDeFgHz";
- text[7][19]="zzzzzzzzzzzzzzzzzzzaBcDeFgH";
- text[8][0]="aBcDeFgHizzzzzzzzzzzzzzzzzz";
- text[8][1]="zaBcDeFgHizzzzzzzzzzzzzzzzz";
- text[8][2]="zzaBcDeFgHizzzzzzzzzzzzzzzz";
- text[8][3]="zzzaBcDeFgHizzzzzzzzzzzzzzz";
- text[8][4]="zzzzaBcDeFgHizzzzzzzzzzzzzz";
- text[8][5]="zzzzzaBcDeFgHizzzzzzzzzzzzz";
- text[8][6]="zzzzzzaBcDeFgHizzzzzzzzzzzz";
- text[8][7]="zzzzzzzaBcDeFgHizzzzzzzzzzz";
- text[8][8]="zzzzzzzzaBcDeFgHizzzzzzzzzz";
- text[8][9]="zzzzzzzzzaBcDeFgHizzzzzzzzz";
- text[8][10]="zzzzzzzzzzaBcDeFgHizzzzzzzz";
- text[8][11]="zzzzzzzzzzzaBcDeFgHizzzzzzz";
- text[8][12]="zzzzzzzzzzzzaBcDeFgHizzzzzz";
- text[8][13]="zzzzzzzzzzzzzaBcDeFgHizzzzz";
- text[8][14]="zzzzzzzzzzzzzzaBcDeFgHizzzz";
- text[8][15]="zzzzzzzzzzzzzzzaBcDeFgHizzz";
- text[8][16]="zzzzzzzzzzzzzzzzaBcDeFgHizz";
- text[8][17]="zzzzzzzzzzzzzzzzzaBcDeFgHiz";
- text[8][18]="zzzzzzzzzzzzzzzzzzaBcDeFgHi";
- text[9][0]="aBcDeFgHiJzzzzzzzzzzzzzzzzz";
- text[9][1]="zaBcDeFgHiJzzzzzzzzzzzzzzzz";
- text[9][2]="zzaBcDeFgHiJzzzzzzzzzzzzzzz";
- text[9][3]="zzzaBcDeFgHiJzzzzzzzzzzzzzz";
- text[9][4]="zzzzaBcDeFgHiJzzzzzzzzzzzzz";
- text[9][5]="zzzzzaBcDeFgHiJzzzzzzzzzzzz";
- text[9][6]="zzzzzzaBcDeFgHiJzzzzzzzzzzz";
- text[9][7]="zzzzzzzaBcDeFgHiJzzzzzzzzzz";
- text[9][8]="zzzzzzzzaBcDeFgHiJzzzzzzzzz";
- text[9][9]="zzzzzzzzzaBcDeFgHiJzzzzzzzz";
- text[9][10]="zzzzzzzzzzaBcDeFgHiJzzzzzzz";
- text[9][11]="zzzzzzzzzzzaBcDeFgHiJzzzzzz";
- text[9][12]="zzzzzzzzzzzzaBcDeFgHiJzzzzz";
- text[9][13]="zzzzzzzzzzzzzaBcDeFgHiJzzzz";
- text[9][14]="zzzzzzzzzzzzzzaBcDeFgHiJzzz";
- text[9][15]="zzzzzzzzzzzzzzzaBcDeFgHiJzz";
- text[9][16]="zzzzzzzzzzzzzzzzaBcDeFgHiJz";
- text[9][17]="zzzzzzzzzzzzzzzzzaBcDeFgHiJ";
- text[10][0]="aBcDeFgHiJkzzzzzzzzzzzzzzzz";
- text[10][1]="zaBcDeFgHiJkzzzzzzzzzzzzzzz";
- text[10][2]="zzaBcDeFgHiJkzzzzzzzzzzzzzz";
- text[10][3]="zzzaBcDeFgHiJkzzzzzzzzzzzzz";
- text[10][4]="zzzzaBcDeFgHiJkzzzzzzzzzzzz";
- text[10][5]="zzzzzaBcDeFgHiJkzzzzzzzzzzz";
- text[10][6]="zzzzzzaBcDeFgHiJkzzzzzzzzzz";
- text[10][7]="zzzzzzzaBcDeFgHiJkzzzzzzzzz";
- text[10][8]="zzzzzzzzaBcDeFgHiJkzzzzzzzz";
- text[10][9]="zzzzzzzzzaBcDeFgHiJkzzzzzzz";
- text[10][10]="zzzzzzzzzzaBcDeFgHiJkzzzzzz";
- text[10][11]="zzzzzzzzzzzaBcDeFgHiJkzzzzz";
- text[10][12]="zzzzzzzzzzzzaBcDeFgHiJkzzzz";
- text[10][13]="zzzzzzzzzzzzzaBcDeFgHiJkzzz";
- text[10][14]="zzzzzzzzzzzzzzaBcDeFgHiJkzz";
- text[10][15]="zzzzzzzzzzzzzzzaBcDeFgHiJkz";
- text[10][16]="zzzzzzzzzzzzzzzzaBcDeFgHiJk";
- text[11][0]="aBcDeFgHiJkLzzzzzzzzzzzzzzz";
- text[11][1]="zaBcDeFgHiJkLzzzzzzzzzzzzzz";
- text[11][2]="zzaBcDeFgHiJkLzzzzzzzzzzzzz";
- text[11][3]="zzzaBcDeFgHiJkLzzzzzzzzzzzz";
- text[11][4]="zzzzaBcDeFgHiJkLzzzzzzzzzzz";
- text[11][5]="zzzzzaBcDeFgHiJkLzzzzzzzzzz";
- text[11][6]="zzzzzzaBcDeFgHiJkLzzzzzzzzz";
- text[11][7]="zzzzzzzaBcDeFgHiJkLzzzzzzzz";
- text[11][8]="zzzzzzzzaBcDeFgHiJkLzzzzzzz";
- text[11][9]="zzzzzzzzzaBcDeFgHiJkLzzzzzz";
- text[11][10]="zzzzzzzzzzaBcDeFgHiJkLzzzzz";
- text[11][11]="zzzzzzzzzzzaBcDeFgHiJkLzzzz";
- text[11][12]="zzzzzzzzzzzzaBcDeFgHiJkLzzz";
- text[11][13]="zzzzzzzzzzzzzaBcDeFgHiJkLzz";
- text[11][14]="zzzzzzzzzzzzzzaBcDeFgHiJkLz";
- text[11][15]="zzzzzzzzzzzzzzzaBcDeFgHiJkL";
- text[12][0]="aBcDeFgHiJkLmzzzzzzzzzzzzzz";
- text[12][1]="zaBcDeFgHiJkLmzzzzzzzzzzzzz";
- text[12][2]="zzaBcDeFgHiJkLmzzzzzzzzzzzz";
- text[12][3]="zzzaBcDeFgHiJkLmzzzzzzzzzzz";
- text[12][4]="zzzzaBcDeFgHiJkLmzzzzzzzzzz";
- text[12][5]="zzzzzaBcDeFgHiJkLmzzzzzzzzz";
- text[12][6]="zzzzzzaBcDeFgHiJkLmzzzzzzzz";
- text[12][7]="zzzzzzzaBcDeFgHiJkLmzzzzzzz";
- text[12][8]="zzzzzzzzaBcDeFgHiJkLmzzzzzz";
- text[12][9]="zzzzzzzzzaBcDeFgHiJkLmzzzzz";
- text[12][10]="zzzzzzzzzzaBcDeFgHiJkLmzzzz";
- text[12][11]="zzzzzzzzzzzaBcDeFgHiJkLmzzz";
- text[12][12]="zzzzzzzzzzzzaBcDeFgHiJkLmzz";
- text[12][13]="zzzzzzzzzzzzzaBcDeFgHiJkLmz";
- text[12][14]="zzzzzzzzzzzzzzaBcDeFgHiJkLm";
- text[13][0]="aBcDeFgHiJkLmNzzzzzzzzzzzzz";
- text[13][1]="zaBcDeFgHiJkLmNzzzzzzzzzzzz";
- text[13][2]="zzaBcDeFgHiJkLmNzzzzzzzzzzz";
- text[13][3]="zzzaBcDeFgHiJkLmNzzzzzzzzzz";
- text[13][4]="zzzzaBcDeFgHiJkLmNzzzzzzzzz";
- text[13][5]="zzzzzaBcDeFgHiJkLmNzzzzzzzz";
- text[13][6]="zzzzzzaBcDeFgHiJkLmNzzzzzzz";
- text[13][7]="zzzzzzzaBcDeFgHiJkLmNzzzzzz";
- text[13][8]="zzzzzzzzaBcDeFgHiJkLmNzzzzz";
- text[13][9]="zzzzzzzzzaBcDeFgHiJkLmNzzzz";
- text[13][10]="zzzzzzzzzzaBcDeFgHiJkLmNzzz";
- text[13][11]="zzzzzzzzzzzaBcDeFgHiJkLmNzz";
- text[13][12]="zzzzzzzzzzzzaBcDeFgHiJkLmNz";
- text[13][13]="zzzzzzzzzzzzzaBcDeFgHiJkLmN";
- text[14][0]="aBcDeFgHiJkLmNozzzzzzzzzzzz";
- text[14][1]="zaBcDeFgHiJkLmNozzzzzzzzzzz";
- text[14][2]="zzaBcDeFgHiJkLmNozzzzzzzzzz";
- text[14][3]="zzzaBcDeFgHiJkLmNozzzzzzzzz";
- text[14][4]="zzzzaBcDeFgHiJkLmNozzzzzzzz";
- text[14][5]="zzzzzaBcDeFgHiJkLmNozzzzzzz";
- text[14][6]="zzzzzzaBcDeFgHiJkLmNozzzzzz";
- text[14][7]="zzzzzzzaBcDeFgHiJkLmNozzzzz";
- text[14][8]="zzzzzzzzaBcDeFgHiJkLmNozzzz";
- text[14][9]="zzzzzzzzzaBcDeFgHiJkLmNozzz";
- text[14][10]="zzzzzzzzzzaBcDeFgHiJkLmNozz";
- text[14][11]="zzzzzzzzzzzaBcDeFgHiJkLmNoz";
- text[14][12]="zzzzzzzzzzzzaBcDeFgHiJkLmNo";
- text[15][0]="aBcDeFgHiJkLmNoPzzzzzzzzzzz";
- text[15][1]="zaBcDeFgHiJkLmNoPzzzzzzzzzz";
- text[15][2]="zzaBcDeFgHiJkLmNoPzzzzzzzzz";
- text[15][3]="zzzaBcDeFgHiJkLmNoPzzzzzzzz";
- text[15][4]="zzzzaBcDeFgHiJkLmNoPzzzzzzz";
- text[15][5]="zzzzzaBcDeFgHiJkLmNoPzzzzzz";
- text[15][6]="zzzzzzaBcDeFgHiJkLmNoPzzzzz";
- text[15][7]="zzzzzzzaBcDeFgHiJkLmNoPzzzz";
- text[15][8]="zzzzzzzzaBcDeFgHiJkLmNoPzzz";
- text[15][9]="zzzzzzzzzaBcDeFgHiJkLmNoPzz";
- text[15][10]="zzzzzzzzzzaBcDeFgHiJkLmNoPz";
- text[15][11]="zzzzzzzzzzzaBcDeFgHiJkLmNoP";
- text[16][0]="aBcDeFgHiJkLmNoPqzzzzzzzzzz";
- text[16][1]="zaBcDeFgHiJkLmNoPqzzzzzzzzz";
- text[16][2]="zzaBcDeFgHiJkLmNoPqzzzzzzzz";
- text[16][3]="zzzaBcDeFgHiJkLmNoPqzzzzzzz";
- text[16][4]="zzzzaBcDeFgHiJkLmNoPqzzzzzz";
- text[16][5]="zzzzzaBcDeFgHiJkLmNoPqzzzzz";
- text[16][6]="zzzzzzaBcDeFgHiJkLmNoPqzzzz";
- text[16][7]="zzzzzzzaBcDeFgHiJkLmNoPqzzz";
- text[16][8]="zzzzzzzzaBcDeFgHiJkLmNoPqzz";
- text[16][9]="zzzzzzzzzaBcDeFgHiJkLmNoPqz";
- text[16][10]="zzzzzzzzzzaBcDeFgHiJkLmNoPq";
- text[17][0]="aBcDeFgHiJkLmNoPqRzzzzzzzzz";
- text[17][1]="zaBcDeFgHiJkLmNoPqRzzzzzzzz";
- text[17][2]="zzaBcDeFgHiJkLmNoPqRzzzzzzz";
- text[17][3]="zzzaBcDeFgHiJkLmNoPqRzzzzzz";
- text[17][4]="zzzzaBcDeFgHiJkLmNoPqRzzzzz";
- text[17][5]="zzzzzaBcDeFgHiJkLmNoPqRzzzz";
- text[17][6]="zzzzzzaBcDeFgHiJkLmNoPqRzzz";
- text[17][7]="zzzzzzzaBcDeFgHiJkLmNoPqRzz";
- text[17][8]="zzzzzzzzaBcDeFgHiJkLmNoPqRz";
- text[17][9]="zzzzzzzzzaBcDeFgHiJkLmNoPqR";
- text[18][0]="aBcDeFgHiJkLmNoPqRszzzzzzzz";
- text[18][1]="zaBcDeFgHiJkLmNoPqRszzzzzzz";
- text[18][2]="zzaBcDeFgHiJkLmNoPqRszzzzzz";
- text[18][3]="zzzaBcDeFgHiJkLmNoPqRszzzzz";
- text[18][4]="zzzzaBcDeFgHiJkLmNoPqRszzzz";
- text[18][5]="zzzzzaBcDeFgHiJkLmNoPqRszzz";
- text[18][6]="zzzzzzaBcDeFgHiJkLmNoPqRszz";
- text[18][7]="zzzzzzzaBcDeFgHiJkLmNoPqRsz";
- text[18][8]="zzzzzzzzaBcDeFgHiJkLmNoPqRs";
- text[19][0]="aBcDeFgHiJkLmNoPqRsTzzzzzzz";
- text[19][1]="zaBcDeFgHiJkLmNoPqRsTzzzzzz";
- text[19][2]="zzaBcDeFgHiJkLmNoPqRsTzzzzz";
- text[19][3]="zzzaBcDeFgHiJkLmNoPqRsTzzzz";
- text[19][4]="zzzzaBcDeFgHiJkLmNoPqRsTzzz";
- text[19][5]="zzzzzaBcDeFgHiJkLmNoPqRsTzz";
- text[19][6]="zzzzzzaBcDeFgHiJkLmNoPqRsTz";
- text[19][7]="zzzzzzzaBcDeFgHiJkLmNoPqRsT";
- text[20][0]="aBcDeFgHiJkLmNoPqRsTuzzzzzz";
- text[20][1]="zaBcDeFgHiJkLmNoPqRsTuzzzzz";
- text[20][2]="zzaBcDeFgHiJkLmNoPqRsTuzzzz";
- text[20][3]="zzzaBcDeFgHiJkLmNoPqRsTuzzz";
- text[20][4]="zzzzaBcDeFgHiJkLmNoPqRsTuzz";
- text[20][5]="zzzzzaBcDeFgHiJkLmNoPqRsTuz";
- text[20][6]="zzzzzzaBcDeFgHiJkLmNoPqRsTu";
- text[21][0]="aBcDeFgHiJkLmNoPqRsTuVzzzzz";
- text[21][1]="zaBcDeFgHiJkLmNoPqRsTuVzzzz";
- text[21][2]="zzaBcDeFgHiJkLmNoPqRsTuVzzz";
- text[21][3]="zzzaBcDeFgHiJkLmNoPqRsTuVzz";
- text[21][4]="zzzzaBcDeFgHiJkLmNoPqRsTuVz";
- text[21][5]="zzzzzaBcDeFgHiJkLmNoPqRsTuV";
- text[22][0]="aBcDeFgHiJkLmNoPqRsTuVwzzzz";
- text[22][1]="zaBcDeFgHiJkLmNoPqRsTuVwzzz";
- text[22][2]="zzaBcDeFgHiJkLmNoPqRsTuVwzz";
- text[22][3]="zzzaBcDeFgHiJkLmNoPqRsTuVwz";
- text[22][4]="zzzzaBcDeFgHiJkLmNoPqRsTuVw";
- text[23][0]="aBcDeFgHiJkLmNoPqRsTuVwXzzz";
- text[23][1]="zaBcDeFgHiJkLmNoPqRsTuVwXzz";
- text[23][2]="zzaBcDeFgHiJkLmNoPqRsTuVwXz";
- text[23][3]="zzzaBcDeFgHiJkLmNoPqRsTuVwX";
- text[24][0]="aBcDeFgHiJkLmNoPqRsTuVwXyzz";
- text[24][1]="zaBcDeFgHiJkLmNoPqRsTuVwXyz";
- text[24][2]="zzaBcDeFgHiJkLmNoPqRsTuVwXy";
- text[25][0]="aBcDeFgHiJkLmNoPqRsTuVwXyZz";
- text[25][1]="zaBcDeFgHiJkLmNoPqRsTuVwXyZ";
-
- char *needle[26];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
- needle[5]="aBcDeF";
- needle[6]="aBcDeFg";
- needle[7]="aBcDeFgH";
- needle[8]="aBcDeFgHi";
- needle[9]="aBcDeFgHiJ";
- needle[10]="aBcDeFgHiJk";
- needle[11]="aBcDeFgHiJkL";
- needle[12]="aBcDeFgHiJkLm";
- needle[13]="aBcDeFgHiJkLmN";
- needle[14]="aBcDeFgHiJkLmNo";
- needle[15]="aBcDeFgHiJkLmNoP";
- needle[16]="aBcDeFgHiJkLmNoPq";
- needle[17]="aBcDeFgHiJkLmNoPqR";
- needle[18]="aBcDeFgHiJkLmNoPqRs";
- needle[19]="aBcDeFgHiJkLmNoPqRsT";
- needle[20]="aBcDeFgHiJkLmNoPqRsTu";
- needle[21]="aBcDeFgHiJkLmNoPqRsTuV";
- needle[22]="aBcDeFgHiJkLmNoPqRsTuVw";
- needle[23]="aBcDeFgHiJkLmNoPqRsTuVwX";
- needle[24]="aBcDeFgHiJkLmNoPqRsTuVwXy";
- needle[25]="aBcDeFgHiJkLmNoPqRsTuVwXyZ";
-
- int i, j;
- uint8_t *found = NULL;
- for (i = 0; i < 26; i++) {
- for (j = 0; j <= (26 - i); j++) {
- found = BasicSearchWrapper((uint8_t *)text[i][j], (uint8_t *)needle[i], 1);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i][j]);
- return 0;
- }
- found = Bs2bmWrapper((uint8_t *)text[i][j], (uint8_t *)needle[i], 1);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i][j]);
- return 0;
- }
- found = BoyerMooreWrapper((uint8_t *)text[i][j], (uint8_t *)needle[i], 1);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i][j]);
- return 0;
- }
- }
- }
- return 1;
-}
-
-/**
- * \test Check that all the algorithms (no case) work at any offset and any pattern length
- */
-int UtilSpmSearchOffsetsNocaseTest01()
-{
- char *text[26][27];
- text[0][0]="azzzzzzzzzzzzzzzzzzzzzzzzzz";
- text[0][1]="zazzzzzzzzzzzzzzzzzzzzzzzzz";
- text[0][2]="zzazzzzzzzzzzzzzzzzzzzzzzzz";
- text[0][3]="zzzazzzzzzzzzzzzzzzzzzzzzzz";
- text[0][4]="zzzzazzzzzzzzzzzzzzzzzzzzzz";
- text[0][5]="zzzzzazzzzzzzzzzzzzzzzzzzzz";
- text[0][6]="zzzzzzazzzzzzzzzzzzzzzzzzzz";
- text[0][7]="zzzzzzzazzzzzzzzzzzzzzzzzzz";
- text[0][8]="zzzzzzzzazzzzzzzzzzzzzzzzzz";
- text[0][9]="zzzzzzzzzazzzzzzzzzzzzzzzzz";
- text[0][10]="zzzzzzzzzzazzzzzzzzzzzzzzzz";
- text[0][11]="zzzzzzzzzzzazzzzzzzzzzzzzzz";
- text[0][12]="zzzzzzzzzzzzazzzzzzzzzzzzzz";
- text[0][13]="zzzzzzzzzzzzzazzzzzzzzzzzzz";
- text[0][14]="zzzzzzzzzzzzzzazzzzzzzzzzzz";
- text[0][15]="zzzzzzzzzzzzzzzazzzzzzzzzzz";
- text[0][16]="zzzzzzzzzzzzzzzzazzzzzzzzzz";
- text[0][17]="zzzzzzzzzzzzzzzzzazzzzzzzzz";
- text[0][18]="zzzzzzzzzzzzzzzzzzazzzzzzzz";
- text[0][19]="zzzzzzzzzzzzzzzzzzzazzzzzzz";
- text[0][20]="zzzzzzzzzzzzzzzzzzzzazzzzzz";
- text[0][21]="zzzzzzzzzzzzzzzzzzzzzazzzzz";
- text[0][22]="zzzzzzzzzzzzzzzzzzzzzzazzzz";
- text[0][23]="zzzzzzzzzzzzzzzzzzzzzzzazzz";
- text[0][24]="zzzzzzzzzzzzzzzzzzzzzzzzazz";
- text[0][25]="zzzzzzzzzzzzzzzzzzzzzzzzzaz";
- text[0][26]="zzzzzzzzzzzzzzzzzzzzzzzzzza";
- text[1][0]="aBzzzzzzzzzzzzzzzzzzzzzzzzz";
- text[1][1]="zaBzzzzzzzzzzzzzzzzzzzzzzzz";
- text[1][2]="zzaBzzzzzzzzzzzzzzzzzzzzzzz";
- text[1][3]="zzzaBzzzzzzzzzzzzzzzzzzzzzz";
- text[1][4]="zzzzaBzzzzzzzzzzzzzzzzzzzzz";
- text[1][5]="zzzzzaBzzzzzzzzzzzzzzzzzzzz";
- text[1][6]="zzzzzzaBzzzzzzzzzzzzzzzzzzz";
- text[1][7]="zzzzzzzaBzzzzzzzzzzzzzzzzzz";
- text[1][8]="zzzzzzzzaBzzzzzzzzzzzzzzzzz";
- text[1][9]="zzzzzzzzzaBzzzzzzzzzzzzzzzz";
- text[1][10]="zzzzzzzzzzaBzzzzzzzzzzzzzzz";
- text[1][11]="zzzzzzzzzzzaBzzzzzzzzzzzzzz";
- text[1][12]="zzzzzzzzzzzzaBzzzzzzzzzzzzz";
- text[1][13]="zzzzzzzzzzzzzaBzzzzzzzzzzzz";
- text[1][14]="zzzzzzzzzzzzzzaBzzzzzzzzzzz";
- text[1][15]="zzzzzzzzzzzzzzzaBzzzzzzzzzz";
- text[1][16]="zzzzzzzzzzzzzzzzaBzzzzzzzzz";
- text[1][17]="zzzzzzzzzzzzzzzzzaBzzzzzzzz";
- text[1][18]="zzzzzzzzzzzzzzzzzzaBzzzzzzz";
- text[1][19]="zzzzzzzzzzzzzzzzzzzaBzzzzzz";
- text[1][20]="zzzzzzzzzzzzzzzzzzzzaBzzzzz";
- text[1][21]="zzzzzzzzzzzzzzzzzzzzzaBzzzz";
- text[1][22]="zzzzzzzzzzzzzzzzzzzzzzaBzzz";
- text[1][23]="zzzzzzzzzzzzzzzzzzzzzzzaBzz";
- text[1][24]="zzzzzzzzzzzzzzzzzzzzzzzzaBz";
- text[1][25]="zzzzzzzzzzzzzzzzzzzzzzzzzaB";
- text[2][0]="aBczzzzzzzzzzzzzzzzzzzzzzzz";
- text[2][1]="zaBczzzzzzzzzzzzzzzzzzzzzzz";
- text[2][2]="zzaBczzzzzzzzzzzzzzzzzzzzzz";
- text[2][3]="zzzaBczzzzzzzzzzzzzzzzzzzzz";
- text[2][4]="zzzzaBczzzzzzzzzzzzzzzzzzzz";
- text[2][5]="zzzzzaBczzzzzzzzzzzzzzzzzzz";
- text[2][6]="zzzzzzaBczzzzzzzzzzzzzzzzzz";
- text[2][7]="zzzzzzzaBczzzzzzzzzzzzzzzzz";
- text[2][8]="zzzzzzzzaBczzzzzzzzzzzzzzzz";
- text[2][9]="zzzzzzzzzaBczzzzzzzzzzzzzzz";
- text[2][10]="zzzzzzzzzzaBczzzzzzzzzzzzzz";
- text[2][11]="zzzzzzzzzzzaBczzzzzzzzzzzzz";
- text[2][12]="zzzzzzzzzzzzaBczzzzzzzzzzzz";
- text[2][13]="zzzzzzzzzzzzzaBczzzzzzzzzzz";
- text[2][14]="zzzzzzzzzzzzzzaBczzzzzzzzzz";
- text[2][15]="zzzzzzzzzzzzzzzaBczzzzzzzzz";
- text[2][16]="zzzzzzzzzzzzzzzzaBczzzzzzzz";
- text[2][17]="zzzzzzzzzzzzzzzzzaBczzzzzzz";
- text[2][18]="zzzzzzzzzzzzzzzzzzaBczzzzzz";
- text[2][19]="zzzzzzzzzzzzzzzzzzzaBczzzzz";
- text[2][20]="zzzzzzzzzzzzzzzzzzzzaBczzzz";
- text[2][21]="zzzzzzzzzzzzzzzzzzzzzaBczzz";
- text[2][22]="zzzzzzzzzzzzzzzzzzzzzzaBczz";
- text[2][23]="zzzzzzzzzzzzzzzzzzzzzzzaBcz";
- text[2][24]="zzzzzzzzzzzzzzzzzzzzzzzzaBc";
- text[3][0]="aBcDzzzzzzzzzzzzzzzzzzzzzzz";
- text[3][1]="zaBcDzzzzzzzzzzzzzzzzzzzzzz";
- text[3][2]="zzaBcDzzzzzzzzzzzzzzzzzzzzz";
- text[3][3]="zzzaBcDzzzzzzzzzzzzzzzzzzzz";
- text[3][4]="zzzzaBcDzzzzzzzzzzzzzzzzzzz";
- text[3][5]="zzzzzaBcDzzzzzzzzzzzzzzzzzz";
- text[3][6]="zzzzzzaBcDzzzzzzzzzzzzzzzzz";
- text[3][7]="zzzzzzzaBcDzzzzzzzzzzzzzzzz";
- text[3][8]="zzzzzzzzaBcDzzzzzzzzzzzzzzz";
- text[3][9]="zzzzzzzzzaBcDzzzzzzzzzzzzzz";
- text[3][10]="zzzzzzzzzzaBcDzzzzzzzzzzzzz";
- text[3][11]="zzzzzzzzzzzaBcDzzzzzzzzzzzz";
- text[3][12]="zzzzzzzzzzzzaBcDzzzzzzzzzzz";
- text[3][13]="zzzzzzzzzzzzzaBcDzzzzzzzzzz";
- text[3][14]="zzzzzzzzzzzzzzaBcDzzzzzzzzz";
- text[3][15]="zzzzzzzzzzzzzzzaBcDzzzzzzzz";
- text[3][16]="zzzzzzzzzzzzzzzzaBcDzzzzzzz";
- text[3][17]="zzzzzzzzzzzzzzzzzaBcDzzzzzz";
- text[3][18]="zzzzzzzzzzzzzzzzzzaBcDzzzzz";
- text[3][19]="zzzzzzzzzzzzzzzzzzzaBcDzzzz";
- text[3][20]="zzzzzzzzzzzzzzzzzzzzaBcDzzz";
- text[3][21]="zzzzzzzzzzzzzzzzzzzzzaBcDzz";
- text[3][22]="zzzzzzzzzzzzzzzzzzzzzzaBcDz";
- text[3][23]="zzzzzzzzzzzzzzzzzzzzzzzaBcD";
- text[4][0]="aBcDezzzzzzzzzzzzzzzzzzzzzz";
- text[4][1]="zaBcDezzzzzzzzzzzzzzzzzzzzz";
- text[4][2]="zzaBcDezzzzzzzzzzzzzzzzzzzz";
- text[4][3]="zzzaBcDezzzzzzzzzzzzzzzzzzz";
- text[4][4]="zzzzaBcDezzzzzzzzzzzzzzzzzz";
- text[4][5]="zzzzzaBcDezzzzzzzzzzzzzzzzz";
- text[4][6]="zzzzzzaBcDezzzzzzzzzzzzzzzz";
- text[4][7]="zzzzzzzaBcDezzzzzzzzzzzzzzz";
- text[4][8]="zzzzzzzzaBcDezzzzzzzzzzzzzz";
- text[4][9]="zzzzzzzzzaBcDezzzzzzzzzzzzz";
- text[4][10]="zzzzzzzzzzaBcDezzzzzzzzzzzz";
- text[4][11]="zzzzzzzzzzzaBcDezzzzzzzzzzz";
- text[4][12]="zzzzzzzzzzzzaBcDezzzzzzzzzz";
- text[4][13]="zzzzzzzzzzzzzaBcDezzzzzzzzz";
- text[4][14]="zzzzzzzzzzzzzzaBcDezzzzzzzz";
- text[4][15]="zzzzzzzzzzzzzzzaBcDezzzzzzz";
- text[4][16]="zzzzzzzzzzzzzzzzaBcDezzzzzz";
- text[4][17]="zzzzzzzzzzzzzzzzzaBcDezzzzz";
- text[4][18]="zzzzzzzzzzzzzzzzzzaBcDezzzz";
- text[4][19]="zzzzzzzzzzzzzzzzzzzaBcDezzz";
- text[4][20]="zzzzzzzzzzzzzzzzzzzzaBcDezz";
- text[4][21]="zzzzzzzzzzzzzzzzzzzzzaBcDez";
- text[4][22]="zzzzzzzzzzzzzzzzzzzzzzaBcDe";
- text[5][0]="aBcDeFzzzzzzzzzzzzzzzzzzzzz";
- text[5][1]="zaBcDeFzzzzzzzzzzzzzzzzzzzz";
- text[5][2]="zzaBcDeFzzzzzzzzzzzzzzzzzzz";
- text[5][3]="zzzaBcDeFzzzzzzzzzzzzzzzzzz";
- text[5][4]="zzzzaBcDeFzzzzzzzzzzzzzzzzz";
- text[5][5]="zzzzzaBcDeFzzzzzzzzzzzzzzzz";
- text[5][6]="zzzzzzaBcDeFzzzzzzzzzzzzzzz";
- text[5][7]="zzzzzzzaBcDeFzzzzzzzzzzzzzz";
- text[5][8]="zzzzzzzzaBcDeFzzzzzzzzzzzzz";
- text[5][9]="zzzzzzzzzaBcDeFzzzzzzzzzzzz";
- text[5][10]="zzzzzzzzzzaBcDeFzzzzzzzzzzz";
- text[5][11]="zzzzzzzzzzzaBcDeFzzzzzzzzzz";
- text[5][12]="zzzzzzzzzzzzaBcDeFzzzzzzzzz";
- text[5][13]="zzzzzzzzzzzzzaBcDeFzzzzzzzz";
- text[5][14]="zzzzzzzzzzzzzzaBcDeFzzzzzzz";
- text[5][15]="zzzzzzzzzzzzzzzaBcDeFzzzzzz";
- text[5][16]="zzzzzzzzzzzzzzzzaBcDeFzzzzz";
- text[5][17]="zzzzzzzzzzzzzzzzzaBcDeFzzzz";
- text[5][18]="zzzzzzzzzzzzzzzzzzaBcDeFzzz";
- text[5][19]="zzzzzzzzzzzzzzzzzzzaBcDeFzz";
- text[5][20]="zzzzzzzzzzzzzzzzzzzzaBcDeFz";
- text[5][21]="zzzzzzzzzzzzzzzzzzzzzaBcDeF";
- text[6][0]="aBcDeFgzzzzzzzzzzzzzzzzzzzz";
- text[6][1]="zaBcDeFgzzzzzzzzzzzzzzzzzzz";
- text[6][2]="zzaBcDeFgzzzzzzzzzzzzzzzzzz";
- text[6][3]="zzzaBcDeFgzzzzzzzzzzzzzzzzz";
- text[6][4]="zzzzaBcDeFgzzzzzzzzzzzzzzzz";
- text[6][5]="zzzzzaBcDeFgzzzzzzzzzzzzzzz";
- text[6][6]="zzzzzzaBcDeFgzzzzzzzzzzzzzz";
- text[6][7]="zzzzzzzaBcDeFgzzzzzzzzzzzzz";
- text[6][8]="zzzzzzzzaBcDeFgzzzzzzzzzzzz";
- text[6][9]="zzzzzzzzzaBcDeFgzzzzzzzzzzz";
- text[6][10]="zzzzzzzzzzaBcDeFgzzzzzzzzzz";
- text[6][11]="zzzzzzzzzzzaBcDeFgzzzzzzzzz";
- text[6][12]="zzzzzzzzzzzzaBcDeFgzzzzzzzz";
- text[6][13]="zzzzzzzzzzzzzaBcDeFgzzzzzzz";
- text[6][14]="zzzzzzzzzzzzzzaBcDeFgzzzzzz";
- text[6][15]="zzzzzzzzzzzzzzzaBcDeFgzzzzz";
- text[6][16]="zzzzzzzzzzzzzzzzaBcDeFgzzzz";
- text[6][17]="zzzzzzzzzzzzzzzzzaBcDeFgzzz";
- text[6][18]="zzzzzzzzzzzzzzzzzzaBcDeFgzz";
- text[6][19]="zzzzzzzzzzzzzzzzzzzaBcDeFgz";
- text[6][20]="zzzzzzzzzzzzzzzzzzzzaBcDeFg";
- text[7][0]="aBcDeFgHzzzzzzzzzzzzzzzzzzz";
- text[7][1]="zaBcDeFgHzzzzzzzzzzzzzzzzzz";
- text[7][2]="zzaBcDeFgHzzzzzzzzzzzzzzzzz";
- text[7][3]="zzzaBcDeFgHzzzzzzzzzzzzzzzz";
- text[7][4]="zzzzaBcDeFgHzzzzzzzzzzzzzzz";
- text[7][5]="zzzzzaBcDeFgHzzzzzzzzzzzzzz";
- text[7][6]="zzzzzzaBcDeFgHzzzzzzzzzzzzz";
- text[7][7]="zzzzzzzaBcDeFgHzzzzzzzzzzzz";
- text[7][8]="zzzzzzzzaBcDeFgHzzzzzzzzzzz";
- text[7][9]="zzzzzzzzzaBcDeFgHzzzzzzzzzz";
- text[7][10]="zzzzzzzzzzaBcDeFgHzzzzzzzzz";
- text[7][11]="zzzzzzzzzzzaBcDeFgHzzzzzzzz";
- text[7][12]="zzzzzzzzzzzzaBcDeFgHzzzzzzz";
- text[7][13]="zzzzzzzzzzzzzaBcDeFgHzzzzzz";
- text[7][14]="zzzzzzzzzzzzzzaBcDeFgHzzzzz";
- text[7][15]="zzzzzzzzzzzzzzzaBcDeFgHzzzz";
- text[7][16]="zzzzzzzzzzzzzzzzaBcDeFgHzzz";
- text[7][17]="zzzzzzzzzzzzzzzzzaBcDeFgHzz";
- text[7][18]="zzzzzzzzzzzzzzzzzzaBcDeFgHz";
- text[7][19]="zzzzzzzzzzzzzzzzzzzaBcDeFgH";
- text[8][0]="aBcDeFgHizzzzzzzzzzzzzzzzzz";
- text[8][1]="zaBcDeFgHizzzzzzzzzzzzzzzzz";
- text[8][2]="zzaBcDeFgHizzzzzzzzzzzzzzzz";
- text[8][3]="zzzaBcDeFgHizzzzzzzzzzzzzzz";
- text[8][4]="zzzzaBcDeFgHizzzzzzzzzzzzzz";
- text[8][5]="zzzzzaBcDeFgHizzzzzzzzzzzzz";
- text[8][6]="zzzzzzaBcDeFgHizzzzzzzzzzzz";
- text[8][7]="zzzzzzzaBcDeFgHizzzzzzzzzzz";
- text[8][8]="zzzzzzzzaBcDeFgHizzzzzzzzzz";
- text[8][9]="zzzzzzzzzaBcDeFgHizzzzzzzzz";
- text[8][10]="zzzzzzzzzzaBcDeFgHizzzzzzzz";
- text[8][11]="zzzzzzzzzzzaBcDeFgHizzzzzzz";
- text[8][12]="zzzzzzzzzzzzaBcDeFgHizzzzzz";
- text[8][13]="zzzzzzzzzzzzzaBcDeFgHizzzzz";
- text[8][14]="zzzzzzzzzzzzzzaBcDeFgHizzzz";
- text[8][15]="zzzzzzzzzzzzzzzaBcDeFgHizzz";
- text[8][16]="zzzzzzzzzzzzzzzzaBcDeFgHizz";
- text[8][17]="zzzzzzzzzzzzzzzzzaBcDeFgHiz";
- text[8][18]="zzzzzzzzzzzzzzzzzzaBcDeFgHi";
- text[9][0]="aBcDeFgHiJzzzzzzzzzzzzzzzzz";
- text[9][1]="zaBcDeFgHiJzzzzzzzzzzzzzzzz";
- text[9][2]="zzaBcDeFgHiJzzzzzzzzzzzzzzz";
- text[9][3]="zzzaBcDeFgHiJzzzzzzzzzzzzzz";
- text[9][4]="zzzzaBcDeFgHiJzzzzzzzzzzzzz";
- text[9][5]="zzzzzaBcDeFgHiJzzzzzzzzzzzz";
- text[9][6]="zzzzzzaBcDeFgHiJzzzzzzzzzzz";
- text[9][7]="zzzzzzzaBcDeFgHiJzzzzzzzzzz";
- text[9][8]="zzzzzzzzaBcDeFgHiJzzzzzzzzz";
- text[9][9]="zzzzzzzzzaBcDeFgHiJzzzzzzzz";
- text[9][10]="zzzzzzzzzzaBcDeFgHiJzzzzzzz";
- text[9][11]="zzzzzzzzzzzaBcDeFgHiJzzzzzz";
- text[9][12]="zzzzzzzzzzzzaBcDeFgHiJzzzzz";
- text[9][13]="zzzzzzzzzzzzzaBcDeFgHiJzzzz";
- text[9][14]="zzzzzzzzzzzzzzaBcDeFgHiJzzz";
- text[9][15]="zzzzzzzzzzzzzzzaBcDeFgHiJzz";
- text[9][16]="zzzzzzzzzzzzzzzzaBcDeFgHiJz";
- text[9][17]="zzzzzzzzzzzzzzzzzaBcDeFgHiJ";
- text[10][0]="aBcDeFgHiJkzzzzzzzzzzzzzzzz";
- text[10][1]="zaBcDeFgHiJkzzzzzzzzzzzzzzz";
- text[10][2]="zzaBcDeFgHiJkzzzzzzzzzzzzzz";
- text[10][3]="zzzaBcDeFgHiJkzzzzzzzzzzzzz";
- text[10][4]="zzzzaBcDeFgHiJkzzzzzzzzzzzz";
- text[10][5]="zzzzzaBcDeFgHiJkzzzzzzzzzzz";
- text[10][6]="zzzzzzaBcDeFgHiJkzzzzzzzzzz";
- text[10][7]="zzzzzzzaBcDeFgHiJkzzzzzzzzz";
- text[10][8]="zzzzzzzzaBcDeFgHiJkzzzzzzzz";
- text[10][9]="zzzzzzzzzaBcDeFgHiJkzzzzzzz";
- text[10][10]="zzzzzzzzzzaBcDeFgHiJkzzzzzz";
- text[10][11]="zzzzzzzzzzzaBcDeFgHiJkzzzzz";
- text[10][12]="zzzzzzzzzzzzaBcDeFgHiJkzzzz";
- text[10][13]="zzzzzzzzzzzzzaBcDeFgHiJkzzz";
- text[10][14]="zzzzzzzzzzzzzzaBcDeFgHiJkzz";
- text[10][15]="zzzzzzzzzzzzzzzaBcDeFgHiJkz";
- text[10][16]="zzzzzzzzzzzzzzzzaBcDeFgHiJk";
- text[11][0]="aBcDeFgHiJkLzzzzzzzzzzzzzzz";
- text[11][1]="zaBcDeFgHiJkLzzzzzzzzzzzzzz";
- text[11][2]="zzaBcDeFgHiJkLzzzzzzzzzzzzz";
- text[11][3]="zzzaBcDeFgHiJkLzzzzzzzzzzzz";
- text[11][4]="zzzzaBcDeFgHiJkLzzzzzzzzzzz";
- text[11][5]="zzzzzaBcDeFgHiJkLzzzzzzzzzz";
- text[11][6]="zzzzzzaBcDeFgHiJkLzzzzzzzzz";
- text[11][7]="zzzzzzzaBcDeFgHiJkLzzzzzzzz";
- text[11][8]="zzzzzzzzaBcDeFgHiJkLzzzzzzz";
- text[11][9]="zzzzzzzzzaBcDeFgHiJkLzzzzzz";
- text[11][10]="zzzzzzzzzzaBcDeFgHiJkLzzzzz";
- text[11][11]="zzzzzzzzzzzaBcDeFgHiJkLzzzz";
- text[11][12]="zzzzzzzzzzzzaBcDeFgHiJkLzzz";
- text[11][13]="zzzzzzzzzzzzzaBcDeFgHiJkLzz";
- text[11][14]="zzzzzzzzzzzzzzaBcDeFgHiJkLz";
- text[11][15]="zzzzzzzzzzzzzzzaBcDeFgHiJkL";
- text[12][0]="aBcDeFgHiJkLmzzzzzzzzzzzzzz";
- text[12][1]="zaBcDeFgHiJkLmzzzzzzzzzzzzz";
- text[12][2]="zzaBcDeFgHiJkLmzzzzzzzzzzzz";
- text[12][3]="zzzaBcDeFgHiJkLmzzzzzzzzzzz";
- text[12][4]="zzzzaBcDeFgHiJkLmzzzzzzzzzz";
- text[12][5]="zzzzzaBcDeFgHiJkLmzzzzzzzzz";
- text[12][6]="zzzzzzaBcDeFgHiJkLmzzzzzzzz";
- text[12][7]="zzzzzzzaBcDeFgHiJkLmzzzzzzz";
- text[12][8]="zzzzzzzzaBcDeFgHiJkLmzzzzzz";
- text[12][9]="zzzzzzzzzaBcDeFgHiJkLmzzzzz";
- text[12][10]="zzzzzzzzzzaBcDeFgHiJkLmzzzz";
- text[12][11]="zzzzzzzzzzzaBcDeFgHiJkLmzzz";
- text[12][12]="zzzzzzzzzzzzaBcDeFgHiJkLmzz";
- text[12][13]="zzzzzzzzzzzzzaBcDeFgHiJkLmz";
- text[12][14]="zzzzzzzzzzzzzzaBcDeFgHiJkLm";
- text[13][0]="aBcDeFgHiJkLmNzzzzzzzzzzzzz";
- text[13][1]="zaBcDeFgHiJkLmNzzzzzzzzzzzz";
- text[13][2]="zzaBcDeFgHiJkLmNzzzzzzzzzzz";
- text[13][3]="zzzaBcDeFgHiJkLmNzzzzzzzzzz";
- text[13][4]="zzzzaBcDeFgHiJkLmNzzzzzzzzz";
- text[13][5]="zzzzzaBcDeFgHiJkLmNzzzzzzzz";
- text[13][6]="zzzzzzaBcDeFgHiJkLmNzzzzzzz";
- text[13][7]="zzzzzzzaBcDeFgHiJkLmNzzzzzz";
- text[13][8]="zzzzzzzzaBcDeFgHiJkLmNzzzzz";
- text[13][9]="zzzzzzzzzaBcDeFgHiJkLmNzzzz";
- text[13][10]="zzzzzzzzzzaBcDeFgHiJkLmNzzz";
- text[13][11]="zzzzzzzzzzzaBcDeFgHiJkLmNzz";
- text[13][12]="zzzzzzzzzzzzaBcDeFgHiJkLmNz";
- text[13][13]="zzzzzzzzzzzzzaBcDeFgHiJkLmN";
- text[14][0]="aBcDeFgHiJkLmNozzzzzzzzzzzz";
- text[14][1]="zaBcDeFgHiJkLmNozzzzzzzzzzz";
- text[14][2]="zzaBcDeFgHiJkLmNozzzzzzzzzz";
- text[14][3]="zzzaBcDeFgHiJkLmNozzzzzzzzz";
- text[14][4]="zzzzaBcDeFgHiJkLmNozzzzzzzz";
- text[14][5]="zzzzzaBcDeFgHiJkLmNozzzzzzz";
- text[14][6]="zzzzzzaBcDeFgHiJkLmNozzzzzz";
- text[14][7]="zzzzzzzaBcDeFgHiJkLmNozzzzz";
- text[14][8]="zzzzzzzzaBcDeFgHiJkLmNozzzz";
- text[14][9]="zzzzzzzzzaBcDeFgHiJkLmNozzz";
- text[14][10]="zzzzzzzzzzaBcDeFgHiJkLmNozz";
- text[14][11]="zzzzzzzzzzzaBcDeFgHiJkLmNoz";
- text[14][12]="zzzzzzzzzzzzaBcDeFgHiJkLmNo";
- text[15][0]="aBcDeFgHiJkLmNoPzzzzzzzzzzz";
- text[15][1]="zaBcDeFgHiJkLmNoPzzzzzzzzzz";
- text[15][2]="zzaBcDeFgHiJkLmNoPzzzzzzzzz";
- text[15][3]="zzzaBcDeFgHiJkLmNoPzzzzzzzz";
- text[15][4]="zzzzaBcDeFgHiJkLmNoPzzzzzzz";
- text[15][5]="zzzzzaBcDeFgHiJkLmNoPzzzzzz";
- text[15][6]="zzzzzzaBcDeFgHiJkLmNoPzzzzz";
- text[15][7]="zzzzzzzaBcDeFgHiJkLmNoPzzzz";
- text[15][8]="zzzzzzzzaBcDeFgHiJkLmNoPzzz";
- text[15][9]="zzzzzzzzzaBcDeFgHiJkLmNoPzz";
- text[15][10]="zzzzzzzzzzaBcDeFgHiJkLmNoPz";
- text[15][11]="zzzzzzzzzzzaBcDeFgHiJkLmNoP";
- text[16][0]="aBcDeFgHiJkLmNoPqzzzzzzzzzz";
- text[16][1]="zaBcDeFgHiJkLmNoPqzzzzzzzzz";
- text[16][2]="zzaBcDeFgHiJkLmNoPqzzzzzzzz";
- text[16][3]="zzzaBcDeFgHiJkLmNoPqzzzzzzz";
- text[16][4]="zzzzaBcDeFgHiJkLmNoPqzzzzzz";
- text[16][5]="zzzzzaBcDeFgHiJkLmNoPqzzzzz";
- text[16][6]="zzzzzzaBcDeFgHiJkLmNoPqzzzz";
- text[16][7]="zzzzzzzaBcDeFgHiJkLmNoPqzzz";
- text[16][8]="zzzzzzzzaBcDeFgHiJkLmNoPqzz";
- text[16][9]="zzzzzzzzzaBcDeFgHiJkLmNoPqz";
- text[16][10]="zzzzzzzzzzaBcDeFgHiJkLmNoPq";
- text[17][0]="aBcDeFgHiJkLmNoPqRzzzzzzzzz";
- text[17][1]="zaBcDeFgHiJkLmNoPqRzzzzzzzz";
- text[17][2]="zzaBcDeFgHiJkLmNoPqRzzzzzzz";
- text[17][3]="zzzaBcDeFgHiJkLmNoPqRzzzzzz";
- text[17][4]="zzzzaBcDeFgHiJkLmNoPqRzzzzz";
- text[17][5]="zzzzzaBcDeFgHiJkLmNoPqRzzzz";
- text[17][6]="zzzzzzaBcDeFgHiJkLmNoPqRzzz";
- text[17][7]="zzzzzzzaBcDeFgHiJkLmNoPqRzz";
- text[17][8]="zzzzzzzzaBcDeFgHiJkLmNoPqRz";
- text[17][9]="zzzzzzzzzaBcDeFgHiJkLmNoPqR";
- text[18][0]="aBcDeFgHiJkLmNoPqRszzzzzzzz";
- text[18][1]="zaBcDeFgHiJkLmNoPqRszzzzzzz";
- text[18][2]="zzaBcDeFgHiJkLmNoPqRszzzzzz";
- text[18][3]="zzzaBcDeFgHiJkLmNoPqRszzzzz";
- text[18][4]="zzzzaBcDeFgHiJkLmNoPqRszzzz";
- text[18][5]="zzzzzaBcDeFgHiJkLmNoPqRszzz";
- text[18][6]="zzzzzzaBcDeFgHiJkLmNoPqRszz";
- text[18][7]="zzzzzzzaBcDeFgHiJkLmNoPqRsz";
- text[18][8]="zzzzzzzzaBcDeFgHiJkLmNoPqRs";
- text[19][0]="aBcDeFgHiJkLmNoPqRsTzzzzzzz";
- text[19][1]="zaBcDeFgHiJkLmNoPqRsTzzzzzz";
- text[19][2]="zzaBcDeFgHiJkLmNoPqRsTzzzzz";
- text[19][3]="zzzaBcDeFgHiJkLmNoPqRsTzzzz";
- text[19][4]="zzzzaBcDeFgHiJkLmNoPqRsTzzz";
- text[19][5]="zzzzzaBcDeFgHiJkLmNoPqRsTzz";
- text[19][6]="zzzzzzaBcDeFgHiJkLmNoPqRsTz";
- text[19][7]="zzzzzzzaBcDeFgHiJkLmNoPqRsT";
- text[20][0]="aBcDeFgHiJkLmNoPqRsTuzzzzzz";
- text[20][1]="zaBcDeFgHiJkLmNoPqRsTuzzzzz";
- text[20][2]="zzaBcDeFgHiJkLmNoPqRsTuzzzz";
- text[20][3]="zzzaBcDeFgHiJkLmNoPqRsTuzzz";
- text[20][4]="zzzzaBcDeFgHiJkLmNoPqRsTuzz";
- text[20][5]="zzzzzaBcDeFgHiJkLmNoPqRsTuz";
- text[20][6]="zzzzzzaBcDeFgHiJkLmNoPqRsTu";
- text[21][0]="aBcDeFgHiJkLmNoPqRsTuVzzzzz";
- text[21][1]="zaBcDeFgHiJkLmNoPqRsTuVzzzz";
- text[21][2]="zzaBcDeFgHiJkLmNoPqRsTuVzzz";
- text[21][3]="zzzaBcDeFgHiJkLmNoPqRsTuVzz";
- text[21][4]="zzzzaBcDeFgHiJkLmNoPqRsTuVz";
- text[21][5]="zzzzzaBcDeFgHiJkLmNoPqRsTuV";
- text[22][0]="aBcDeFgHiJkLmNoPqRsTuVwzzzz";
- text[22][1]="zaBcDeFgHiJkLmNoPqRsTuVwzzz";
- text[22][2]="zzaBcDeFgHiJkLmNoPqRsTuVwzz";
- text[22][3]="zzzaBcDeFgHiJkLmNoPqRsTuVwz";
- text[22][4]="zzzzaBcDeFgHiJkLmNoPqRsTuVw";
- text[23][0]="aBcDeFgHiJkLmNoPqRsTuVwXzzz";
- text[23][1]="zaBcDeFgHiJkLmNoPqRsTuVwXzz";
- text[23][2]="zzaBcDeFgHiJkLmNoPqRsTuVwXz";
- text[23][3]="zzzaBcDeFgHiJkLmNoPqRsTuVwX";
- text[24][0]="aBcDeFgHiJkLmNoPqRsTuVwXyzz";
- text[24][1]="zaBcDeFgHiJkLmNoPqRsTuVwXyz";
- text[24][2]="zzaBcDeFgHiJkLmNoPqRsTuVwXy";
- text[25][0]="aBcDeFgHiJkLmNoPqRsTuVwXyZz";
- text[25][1]="zaBcDeFgHiJkLmNoPqRsTuVwXyZ";
-
- char *needle[26];
- needle[0]="A";
- needle[1]="Ab";
- needle[2]="AbC";
- needle[3]="AbCd";
- needle[4]="AbCdE";
- needle[5]="AbCdEf";
- needle[6]="AbCdEfG";
- needle[7]="AbCdEfGh";
- needle[8]="AbCdEfGhI";
- needle[9]="AbCdEfGhIJ";
- needle[10]="AbCdEfGhIjK";
- needle[11]="AbCdEfGhIjKl";
- needle[12]="AbCdEfGhIjKlM";
- needle[13]="AbCdEfGhIjKlMn";
- needle[14]="AbCdEfGhIjKlMnO";
- needle[15]="AbCdEfGhIjKlMnOp";
- needle[16]="AbCdEfGhIjKlMnOpQ";
- needle[17]="AbCdEfGhIjKlMnOpQr";
- needle[18]="AbCdEfGhIjKlMnOpQrS";
- needle[19]="AbCdEfGhIjKlMnOpQrSt";
- needle[20]="AbCdEfGhIjKlMnOpQrStU";
- needle[21]="AbCdEfGhIjKlMnOpQrStUv";
- needle[22]="AbCdEfGhIjKlMnOpQrStUvW";
- needle[23]="AbCdEfGhIjKlMnOpQrStUvWx";
- needle[24]="AbCdEfGhIjKlMnOpQrStUvWxY";
- needle[25]="AbCdEfGhIjKlMnOpQrStUvWxYZ";
-
- int i, j;
- uint8_t *found = NULL;
- for (i = 0; i < 26; i++) {
- for (j = 0; j <= (26-i); j++) {
- found = BasicSearchNocaseWrapper((uint8_t *)text[i][j], (uint8_t *)needle[i], 1);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i][j]);
- return 0;
- }
- found = Bs2bmNocaseWrapper((uint8_t *)text[i][j], (uint8_t *)needle[i], 1);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i][j]);
- return 0;
- }
- found = BoyerMooreNocaseWrapper((uint8_t *)text[i][j], (uint8_t *)needle[i], 1);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i][j]);
- return 0;
- }
- }
- }
- return 1;
-}
-
-/**
- * \test Give some stats
- */
-int UtilSpmSearchStatsTest01()
-{
- char *text[16];
- text[0]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzza";
- text[1]="aaaaaaaaazaaaaaaaaaaaaaaaaaaaaazaaaaaaaaaaaaaazaaaaaaaaaaaaaaaaaaaaazaaaaaaaaaaaaaaaaaaazaaaaaaaaaaaaaaaaaaazaaaaaaaaazaaaaaaaaaazaaaaaaaaaaaaazaaaaaaaaazaaaaaaaaaaaaaaaaazaaaaaaaaaaaaaaaaazaaaaaaaaazaaaaaaaaaazaaaaaraaaaazaaaaaaazaaaaaaaaaaaaaazaaaaaaaazaaaaaaaaazaaaaaaaaaaaaB";
- text[2]="aBaBaBaBaBaBaBaBazaBaBaBaBaBaBazaBaBaBaBaBaBaBaBaBzBaBaBaBaBaBaBaBazaBaBaBaBaBaBaBzBaBaBaBaBaBaBzBaBaBaBaBzBaBaBaBaBaBzBaBaBaBaBaBzBaBaBaBaBaBaBaBazaBaBaBaBaBaBaBaBaBaBaBaBazaBaBaBaBaBaBaBaBaBzBaBaBaBaBaBaBaBzBaBaBaBaBaBaBaBaBaBzBaBaBaBaBaBaBaBaBaBaBazaBaBaBaBaBaBaBazaBaBaBaBaBc";
- text[3]="aBcaBcaBcaBcaBczBcaBcaBzaBcaBcaBcaBcaBcaBcaBcaBcazcaBcaBcaBcaBcaBcaBcaBzaBcaBcaBcaBcaBcaBczBcaBcaBcaBcaBcaBzaBcaBcaBcaBcaBcaBcaBcazcaBcaBcaBcaBcaBcaBcaBcaBczBcaBcaBcaBcaBcaBcaBczBcaBcaBcaBcaBzaBcaBcaBcaBcaBcaBcaBcazcaBcaBcaBcaBcaBcazcaBcaBcaBcaBcaBcaBzaBcaBcaBcazcaBcaBcaBcaBcaBcD";
- text[4]="aBcDaBcDaBcDaBczaBcDaBcDaBcDaBcDaBczaBcDaBcDaBcDaBcDzBcDaBcDaBcDaBcDzBcDaBcDaBczaBcDaBcDaBczaBcDaBcDaBcDaBcDaBzDaBcDaBcDaBcDaBcDaBcDaBcDaBcDaBczaBcDaBcDaBcDaBcDaBcDaBzDaBcDaBcDaBcDaBzDaBcDaBcDaBzDaBcDaBcDaBcDaBcDaBcDaBczaBcDaBcDaBcDaBcDazcDaBcDaBcDaBcDaBcDzBcDaBcDaBcDaBcDaBcDaBcDe";
- text[5]="aBcDeaBcDeaBcDeazcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDezBcDeaBcDeaBcDzaBcDeaBcDeaBcDeazcDzaBcDeaBcDezBcDeaBzDeaBcDeaBcDeazcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBczeaBcDeaBcDeaBzDeaBcDeaBcDezBcDeaBcDzaBcDeaBcDezBcDeaBcDezBcDeaBczeaBcDeaBcDeaBzDeaBcDezBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDezzzaBcDeF";
- text[6]="aBcDeaBcDeaBcDeazcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBzDeaBcDeaBcDeaBcDzaBcDzaBcDeaBcDeaBcDeaBcDzaBzDeaBcDeaBcDeaBczzaBcDeaBcDeaBcDzazcDeaBcDeaBcDeaBcDzaBzDeaBcDeaBcDeaBcDeazcDeaBcDeaBcDeaBcDeaBczeaBcDeaBcDeaBcDeaBczeaBcDezzzaBcDeFg";
- text[7]="aBcDeaBczeaBcDzaBcDezBcDeaBcDeaBcDeaBcDzaBzDeaBcDeaBcDeaBzDzaBcDeaBcDeazcDeaBcDzaBcDeaBczeaBcDeaBcDeaBzDzaBcDeaBcDeaBcDezBcDzaBcDeaBzDeaBcDeaBcDezBcDzaBcDeaBcDeaBzDeaBcDeaBcDeaBzDeaBcDeaBcDezBcDeaBcDeaBcDeazcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBrDeaBcDeaBcDezzzaBcDeFgH";
- text[8]="aBcDeaBcDeaBczzaBcDeazcDeaBcDezBcDeaBcDzaBcDeaBcDeaBcDeaBczzaBcDeaBcDeaBczeaBcDeaBcDzzBcDeaBcDeaBcDzaBczeaBcDeaBcDzaBcDeaBczeaBcDeaBcDeaBzDeaBcDeaBcDeaBzDeaBcDeaBcDzaBcDeaBcDeazcDeaBcDeaBcDzaBcDeaBcDeaBcDeazcDeaBcDeaBcDeaBcDeazcDeaBcDeaBcDeaBczeaBcDeaBzDeaBcDeaBcDeaBcDeaBcDezzzaBcDeFgHi";
- text[9]="aBcDeaBcDzaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDeazcDeaBcDeaBcDzzBcDeaBcDeaBczeaBcDzaBcDezBcDeaBczeaBcDzaBcDezBcDeaBcDzaBczeaBcDeaBcDzaBcDeazcDeaBcDeaBcDzaBczeaBcDeaBcDzaBzDeaBcDeaBczeaBcDeaBcDzaBcDeaBcDeaBzDeaBcDeaBcDeaBczeaBcDeaBcDeaBcDeaBzDeaBcDeaBcDeazcDeaBcDeaBcDeaBcDeaBcDezzzaBcDeFgHiJ";
- text[10]="aBcDeaBcDeaBczeaBcDzaBczeaBcDeaBczeaBcDeaBcDzaBcDeaBcDeazcDeaBcDeaBcDeaBzDzaBcDeazcDeaBcDeazcDeaBcDzaBcDeazcDeaBcDeaBczzaBcDeaBcDeaBzDeaBcDeaBcDzaBczeaBcDeaBcDeaBcDeaBczeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDezBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDezBcDeaBcDeaBcDeaBzDeaBcDeaBcDezzzaBcDeFgHiJk";
- text[11]="aBcDeaBcDeaBcDeaBcDeaBzDeaBcDeaBcDzaBcDzaBcDeaBcDeaBcDeaBcDeazcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDzaBcDzaBcDeaBcDeaBcDeaBcDzzBcDeaBcDeaBcDeaBcDzaBcDzaBcDeaBzDeaBcDeaBcDezBcDeaBcDeazcDeaBcDeaBcDezBcDeaBcDeaBcDeazcDeaBcDeaBzDeaBcDeaBczeaBcDeazcDeaBcDezBcDeaBcDeaBcDeaBcDeaBcDezzzaBcDeFgHiJkL";
- text[12]="aBcDeaBcDeaBcDeaBcDeaBzDeaBcDeaBzDeaBcDeaBcDezBcDeaBcDeazcDeaBcDeaBcDeazcDeaBcDeaBczeaBcDeaBcDeaBcDezBcDeaBcDzaBcDeaBcDzaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDeaBcDeaBcDezzzaBcDeFgHiJkLm";
- text[13]="aBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDezzzaBcDeFgHiJkLmN";
- text[14]="aBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDezzzaBcDeFgHiJkLmNo";
- text[15]="aBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDeaBcDeaBcDezzzaBcDeFgHiJkLmNoP";
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
- needle[5]="aBcDeF";
- needle[6]="aBcDeFg";
- needle[7]="aBcDeFgH";
- needle[8]="aBcDeFgHi";
- needle[9]="aBcDeFgHiJ";
- needle[10]="aBcDeFgHiJk";
- needle[11]="aBcDeFgHiJkL";
- needle[12]="aBcDeFgHiJkLm";
- needle[13]="aBcDeFgHiJkLmN";
- needle[14]="aBcDeFgHiJkLmNo";
- needle[15]="aBcDeFgHiJkLmNoP";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of greater length (text with a lot of partial matches, worst case for a basic search):\n");
- for (i = 0; i < 16; i++) {
- printf("Pattern length %d with BasicSearch:", i+1);
- found = BasicSearchWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch:", i+1);
- found = Bs2bmWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch:", i+1);
- found = BoyerMooreWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-/**
- * \test Give some stats for
- */
-int UtilSpmSearchStatsTest02()
-{
- char *text[16];
- text[0]="zzzzzzzzzzzzzzzzzza";
- text[1]="zzzzzzzzzzzzzzzzzzaB";
- text[2]="zzzzzzzzzzzzzzzzzzaBc";
- text[3]="zzzzzzzzzzzzzzzzzzaBcD";
- text[4]="zzzzzzzzzzzzzzzzzzaBcDe";
- text[5]="zzzzzzzzzzzzzzzzzzzzaBcDeF";
- text[6]="zzzzzzzzzzzzzzzzzzzzaBcDeFg";
- text[7]="zzzzzzzzzzzzzzzzzzzzaBcDeFgH";
- text[8]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHi";
- text[9]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJ";
- text[10]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJk";
- text[11]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkL";
- text[12]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLm";
- text[13]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmN";
- text[14]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmNo";
- text[15]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmNoP";
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
- needle[5]="aBcDeF";
- needle[6]="aBcDeFg";
- needle[7]="aBcDeFgH";
- needle[8]="aBcDeFgHi";
- needle[9]="aBcDeFgHiJ";
- needle[10]="aBcDeFgHiJk";
- needle[11]="aBcDeFgHiJkL";
- needle[12]="aBcDeFgHiJkLm";
- needle[13]="aBcDeFgHiJkLmN";
- needle[14]="aBcDeFgHiJkLmNo";
- needle[15]="aBcDeFgHiJkLmNoP";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of lower length:\n");
- for (i = 0; i < 16; i++) {
- printf("Pattern length %d with BasicSearch:", i+1);
- found = BasicSearchWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch:", i+1);
- found = Bs2bmWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch:", i+1);
- found = BoyerMooreWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-
-int UtilSpmSearchStatsTest03()
-{
- char *text[16];
- text[0]="zzzzzza";
- text[1]="zzzzzzaB";
- text[2]="zzzzzzaBc";
- text[3]="zzzzzzaBcD";
- text[4]="zzzzzzaBcDe";
- text[5]="zzzzzzzzaBcDeF";
- text[6]="zzzzzzzzaBcDeFg";
- text[7]="zzzzzzzzaBcDeFgH";
- text[8]="zzzzzzzzaBcDeFgHi";
- text[9]="zzzzzzzzaBcDeFgHiJ";
- text[10]="zzzzzzzzaBcDeFgHiJk";
- text[11]="zzzzzzzzaBcDeFgHiJkL";
- text[12]="zzzzzzzzaBcDeFgHiJkLm";
- text[13]="zzzzzzzzaBcDeFgHiJkLmN";
- text[14]="zzzzzzzzaBcDeFgHiJkLmNo";
- text[15]="zzzzzzzzaBcDeFgHiJkLmNoP";
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
- needle[5]="aBcDeF";
- needle[6]="aBcDeFg";
- needle[7]="aBcDeFgH";
- needle[8]="aBcDeFgHi";
- needle[9]="aBcDeFgHiJ";
- needle[10]="aBcDeFgHiJk";
- needle[11]="aBcDeFgHiJkL";
- needle[12]="aBcDeFgHiJkLm";
- needle[13]="aBcDeFgHiJkLmN";
- needle[14]="aBcDeFgHiJkLmNo";
- needle[15]="aBcDeFgHiJkLmNoP";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of lower length (badcase for):\n");
- for (i = 0; i < 16; i++) {
- printf("Pattern length %d with BasicSearch:", i+1);
- found = BasicSearchWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch:", i+1);
- found = Bs2bmWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch:", i+1);
- found = BoyerMooreWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-/**
- * \test Give some stats
- */
-int UtilSpmSearchStatsTest04()
-{
- char *text[16];
- text[0]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzza";
- text[1]="aaaaaaaaazaaaaaaaaaaaaaaaaaaaaazaaaaaaaaaaaaaazaaaaaaaaaaaaaaaaaaaaazaaaaaaaaaaaaaaaaaaazaaaaaaaaaaaaaaaaaaazaaaaaaaaazaaaaaaaaaazaaaaaaaaaaaaazaaaaaaaaazaaaaaaaaaaaaaaaaazaaaaaaaaaaaaaaaaazaaaaaaaaazaaaaaaaaaazaaaaaraaaaazaaaaaaazaaaaaaaaaaaaaazaaaaaaaazaaaaaaaaazaaaaaaaaaaaaB";
- text[2]="aBaBaBaBaBaBaBaBazaBaBaBaBaBaBazaBaBaBaBaBaBaBaBaBzBaBaBaBaBaBaBaBazaBaBaBaBaBaBaBzBaBaBaBaBaBaBzBaBaBaBaBzBaBaBaBaBaBzBaBaBaBaBaBzBaBaBaBaBaBaBaBazaBaBaBaBaBaBaBaBaBaBaBaBazaBaBaBaBaBaBaBaBaBzBaBaBaBaBaBaBaBzBaBaBaBaBaBaBaBaBaBzBaBaBaBaBaBaBaBaBaBaBazaBaBaBaBaBaBaBazaBaBaBaBaBc";
- text[3]="aBcaBcaBcaBcaBczBcaBcaBzaBcaBcaBcaBcaBcaBcaBcaBcazcaBcaBcaBcaBcaBcaBcaBzaBcaBcaBcaBcaBcaBczBcaBcaBcaBcaBcaBzaBcaBcaBcaBcaBcaBcaBcazcaBcaBcaBcaBcaBcaBcaBcaBczBcaBcaBcaBcaBcaBcaBczBcaBcaBcaBcaBzaBcaBcaBcaBcaBcaBcaBcazcaBcaBcaBcaBcaBcazcaBcaBcaBcaBcaBcaBzaBcaBcaBcazcaBcaBcaBcaBcaBcD";
- text[4]="aBcDaBcDaBcDaBczaBcDaBcDaBcDaBcDaBczaBcDaBcDaBcDaBcDzBcDaBcDaBcDaBcDzBcDaBcDaBczaBcDaBcDaBczaBcDaBcDaBcDaBcDaBzDaBcDaBcDaBcDaBcDaBcDaBcDaBcDaBczaBcDaBcDaBcDaBcDaBcDaBzDaBcDaBcDaBcDaBzDaBcDaBcDaBzDaBcDaBcDaBcDaBcDaBcDaBczaBcDaBcDaBcDaBcDazcDaBcDaBcDaBcDaBcDzBcDaBcDaBcDaBcDaBcDaBcDe";
- text[5]="aBcDeaBcDeaBcDeazcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDezBcDeaBcDeaBcDzaBcDeaBcDeaBcDeazcDzaBcDeaBcDezBcDeaBzDeaBcDeaBcDeazcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBczeaBcDeaBcDeaBzDeaBcDeaBcDezBcDeaBcDzaBcDeaBcDezBcDeaBcDezBcDeaBczeaBcDeaBcDeaBzDeaBcDezBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDezzzaBcDeF";
- text[6]="aBcDeaBcDeaBcDeazcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBzDeaBcDeaBcDeaBcDzaBcDzaBcDeaBcDeaBcDeaBcDzaBzDeaBcDeaBcDeaBczzaBcDeaBcDeaBcDzazcDeaBcDeaBcDeaBcDzaBzDeaBcDeaBcDeaBcDeazcDeaBcDeaBcDeaBcDeaBczeaBcDeaBcDeaBcDeaBczeaBcDezzzaBcDeFg";
- text[7]="aBcDeaBczeaBcDzaBcDezBcDeaBcDeaBcDeaBcDzaBzDeaBcDeaBcDeaBzDzaBcDeaBcDeazcDeaBcDzaBcDeaBczeaBcDeaBcDeaBzDzaBcDeaBcDeaBcDezBcDzaBcDeaBzDeaBcDeaBcDezBcDzaBcDeaBcDeaBzDeaBcDeaBcDeaBzDeaBcDeaBcDezBcDeaBcDeaBcDeazcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBrDeaBcDeaBcDezzzaBcDeFgH";
- text[8]="aBcDeaBcDeaBczzaBcDeazcDeaBcDezBcDeaBcDzaBcDeaBcDeaBcDeaBczzaBcDeaBcDeaBczeaBcDeaBcDzzBcDeaBcDeaBcDzaBczeaBcDeaBcDzaBcDeaBczeaBcDeaBcDeaBzDeaBcDeaBcDeaBzDeaBcDeaBcDzaBcDeaBcDeazcDeaBcDeaBcDzaBcDeaBcDeaBcDeazcDeaBcDeaBcDeaBcDeazcDeaBcDeaBcDeaBczeaBcDeaBzDeaBcDeaBcDeaBcDeaBcDezzzaBcDeFgHi";
- text[9]="aBcDeaBcDzaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDeazcDeaBcDeaBcDzzBcDeaBcDeaBczeaBcDzaBcDezBcDeaBczeaBcDzaBcDezBcDeaBcDzaBczeaBcDeaBcDzaBcDeazcDeaBcDeaBcDzaBczeaBcDeaBcDzaBzDeaBcDeaBczeaBcDeaBcDzaBcDeaBcDeaBzDeaBcDeaBcDeaBczeaBcDeaBcDeaBcDeaBzDeaBcDeaBcDeazcDeaBcDeaBcDeaBcDeaBcDezzzaBcDeFgHiJ";
- text[10]="aBcDeaBcDeaBczeaBcDzaBczeaBcDeaBczeaBcDeaBcDzaBcDeaBcDeazcDeaBcDeaBcDeaBzDzaBcDeazcDeaBcDeazcDeaBcDzaBcDeazcDeaBcDeaBczzaBcDeaBcDeaBzDeaBcDeaBcDzaBczeaBcDeaBcDeaBcDeaBczeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDezBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDezBcDeaBcDeaBcDeaBzDeaBcDeaBcDezzzaBcDeFgHiJk";
- text[11]="aBcDeaBcDeaBcDeaBcDeaBzDeaBcDeaBcDzaBcDzaBcDeaBcDeaBcDeaBcDeazcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDzaBcDzaBcDeaBcDeaBcDeaBcDzzBcDeaBcDeaBcDeaBcDzaBcDzaBcDeaBzDeaBcDeaBcDezBcDeaBcDeazcDeaBcDeaBcDezBcDeaBcDeaBcDeazcDeaBcDeaBzDeaBcDeaBczeaBcDeazcDeaBcDezBcDeaBcDeaBcDeaBcDeaBcDezzzaBcDeFgHiJkL";
- text[12]="aBcDeaBcDeaBcDeaBcDeaBzDeaBcDeaBzDeaBcDeaBcDezBcDeaBcDeazcDeaBcDeaBcDeazcDeaBcDeaBczeaBcDeaBcDeaBcDezBcDeaBcDzaBcDeaBcDzaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDeaBcDeaBcDezzzaBcDeFgHiJkLm";
- text[13]="aBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDeaBcDezzzaBcDeFgHiJkLmN";
- text[14]="aBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDezzzaBcDeFgHiJkLmNo";
- text[15]="aBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDeaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDzaBcDeaBcDeaBcDeaBcDezzzaBcDeFgHiJkLmNoP";
-
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
- needle[5]="aBcDeF";
- needle[6]="aBcDeFg";
- needle[7]="aBcDeFgH";
- needle[8]="aBcDeFgHi";
- needle[9]="aBcDeFgHiJ";
- needle[10]="aBcDeFgHiJk";
- needle[11]="aBcDeFgHiJkL";
- needle[12]="aBcDeFgHiJkLm";
- needle[13]="aBcDeFgHiJkLmN";
- needle[14]="aBcDeFgHiJkLmNo";
- needle[15]="aBcDeFgHiJkLmNoP";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of greater length:\n");
- for (i = 0; i < 16; i++) {
- printf("Pattern length %d with BasicSearch (Building Context):", i + 1);
- found = BasicSearchCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch (Building Context):", i + 1);
- found = Bs2bmCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch (Building Context):", i + 1);
- found = BoyerMooreCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with SpmSearch (Building Context):", i + 1);
- found = RawCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-/**
- * \test Give some stats for
- */
-int UtilSpmSearchStatsTest05()
-{
- char *text[16];
- text[0]="zzzzzzzzzzzzzzzzzza";
- text[1]="zzzzzzzzzzzzzzzzzzaB";
- text[2]="zzzzzzzzzzzzzzzzzzaBc";
- text[3]="zzzzzzzzzzzzzzzzzzaBcD";
- text[4]="zzzzzzzzzzzzzzzzzzaBcDe";
- text[5]="zzzzzzzzzzzzzzzzzzzzaBcDeF";
- text[6]="zzzzzzzzzzzzzzzzzzzzaBcDeFg";
- text[7]="zzzzzzzzzzzzzzzzzzzzaBcDeFgH";
- text[8]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHi";
- text[9]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJ";
- text[10]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJk";
- text[11]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkL";
- text[12]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLm";
- text[13]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmN";
- text[14]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmNo";
- text[15]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmNoP";
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
- needle[5]="aBcDeF";
- needle[6]="aBcDeFg";
- needle[7]="aBcDeFgH";
- needle[8]="aBcDeFgHi";
- needle[9]="aBcDeFgHiJ";
- needle[10]="aBcDeFgHiJk";
- needle[11]="aBcDeFgHiJkL";
- needle[12]="aBcDeFgHiJkLm";
- needle[13]="aBcDeFgHiJkLmN";
- needle[14]="aBcDeFgHiJkLmNo";
- needle[15]="aBcDeFgHiJkLmNoP";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of lower length:\n");
- for (i = 0; i < 16; i++) {
- printf("Pattern length %d with BasicSearch (Building Context):", i+1);
- found = BasicSearchCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch (Building Context):", i+1);
- found = Bs2bmCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch (Building Context):", i+1);
- found = BoyerMooreCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-
-int UtilSpmSearchStatsTest06()
-{
- char *text[16];
- text[0]="zzzzkzzzzzzzkzzzzzza";
- text[1]="BBBBkBBBBBBBkBBBBBaB";
- text[2]="BcBckcBcBcBckcBcBcaBc";
- text[3]="BcDBkDBcDBcDkcDBcDaBcD";
- text[4]="BcDekcDeBcDekcDezzaBcDe";
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of lower length (badcase for):\n");
- for (i = 0; i < 5; i++) {
- printf("Pattern length %d with BasicSearch (Building Context):", i+1);
- found = BasicSearchCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch (Building Context):", i+1);
- found = Bs2bmCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch (Building Context):", i+1);
- found = BoyerMooreCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-int UtilSpmSearchStatsTest07()
-{
- char *text[16];
- text[0]="zzzza";
- text[1]="BBBaB";
- text[2]="bbaBc";
- text[3]="aaBcD";
- text[4]="aBcDe";
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of real lower length (badcase for):\n");
- for (i = 0; i < 5; i++) {
- printf("Pattern length %d with BasicSearch (Building Context):", i+1);
- found = BasicSearchCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch (Building Context):", i+1);
- found = Bs2bmCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch (Building Context):", i+1);
- found = BoyerMooreCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-/**
- * \test Give some stats for no case algorithms
- */
-int UtilSpmNocaseSearchStatsTest01()
-{
- char *text[16];
- text[0]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzza";
- text[1]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaB";
- text[2]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBc";
- text[3]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcD";
- text[4]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDe";
- text[5]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeF";
- text[6]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFg";
- text[7]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgH";
- text[8]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHi";
- text[9]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJ";
- text[10]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJk";
- text[11]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkL";
- text[12]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLm";
- text[13]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmN";
- text[14]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmNo";
- text[15]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmNoP";
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
- needle[5]="aBcDeF";
- needle[6]="aBcDeFg";
- needle[7]="aBcDeFgH";
- needle[8]="aBcDeFgHi";
- needle[9]="aBcDeFgHiJ";
- needle[10]="aBcDeFgHiJk";
- needle[11]="aBcDeFgHiJkL";
- needle[12]="aBcDeFgHiJkLm";
- needle[13]="aBcDeFgHiJkLmN";
- needle[14]="aBcDeFgHiJkLmNo";
- needle[15]="aBcDeFgHiJkLmNoP";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of greater length:\n");
- for (i = 0; i < 16; i++) {
- printf("Pattern length %d with BasicSearch:", i+1);
- found = BasicSearchNocaseWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch:", i+1);
- found = Bs2bmNocaseWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch:", i+1);
- found = BoyerMooreNocaseWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-int UtilSpmNocaseSearchStatsTest02()
-{
- char *text[16];
- text[0]="zzzzzzzzzzzzzzzzzza";
- text[1]="zzzzzzzzzzzzzzzzzzaB";
- text[2]="zzzzzzzzzzzzzzzzzzaBc";
- text[3]="zzzzzzzzzzzzzzzzzzaBcD";
- text[4]="zzzzzzzzzzzzzzzzzzaBcDe";
- text[5]="zzzzzzzzzzzzzzzzzzzzaBcDeF";
- text[6]="zzzzzzzzzzzzzzzzzzzzaBcDeFg";
- text[7]="zzzzzzzzzzzzzzzzzzzzaBcDeFgH";
- text[8]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHi";
- text[9]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJ";
- text[10]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJk";
- text[11]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkL";
- text[12]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLm";
- text[13]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmN";
- text[14]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmNo";
- text[15]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmNoP";
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
- needle[5]="aBcDeF";
- needle[6]="aBcDeFg";
- needle[7]="aBcDeFgH";
- needle[8]="aBcDeFgHi";
- needle[9]="aBcDeFgHiJ";
- needle[10]="aBcDeFgHiJk";
- needle[11]="aBcDeFgHiJkL";
- needle[12]="aBcDeFgHiJkLm";
- needle[13]="aBcDeFgHiJkLmN";
- needle[14]="aBcDeFgHiJkLmNo";
- needle[15]="aBcDeFgHiJkLmNoP";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of lower length:\n");
- for (i = 0; i < 16; i++) {
- printf("Pattern length %d with BasicSearch:", i+1);
- found = BasicSearchNocaseWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch:", i+1);
- found = Bs2bmNocaseWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch:", i+1);
- found = BoyerMooreNocaseWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-
-int UtilSpmNocaseSearchStatsTest03()
-{
- char *text[16];
- text[0]="zzzzkzzzzzzzkzzzzzza";
- text[1]="BBBBkBBBBBBBkBBBBBaB";
- text[2]="BcBckcBcBcBckcBcBcaBc";
- text[3]="BcDBkDBcDBcDkcDBcDaBcD";
- text[4]="BcDekcDeBcDekcDezzaBcDe";
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of lower length (badcase for):\n");
- for (i = 0; i < 5; i++) {
- printf("Pattern length %d with BasicSearch:", i+1);
- found = BasicSearchNocaseWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch:", i+1);
- found = Bs2bmNocaseWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch:", i+1);
- found = BoyerMooreNocaseWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-/**
- * \test Give some stats for no case algorithms
- */
-int UtilSpmNocaseSearchStatsTest04()
-{
- char *text[16];
- text[0]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzza";
- text[1]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaB";
- text[2]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBc";
- text[3]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcD";
- text[4]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDe";
- text[5]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeF";
- text[6]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFg";
- text[7]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgH";
- text[8]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHi";
- text[9]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJ";
- text[10]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJk";
- text[11]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkL";
- text[12]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLm";
- text[13]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmN";
- text[14]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmNo";
- text[15]="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmNoP";
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
- needle[5]="aBcDeF";
- needle[6]="aBcDeFg";
- needle[7]="aBcDeFgH";
- needle[8]="aBcDeFgHi";
- needle[9]="aBcDeFgHiJ";
- needle[10]="aBcDeFgHiJk";
- needle[11]="aBcDeFgHiJkL";
- needle[12]="aBcDeFgHiJkLm";
- needle[13]="aBcDeFgHiJkLmN";
- needle[14]="aBcDeFgHiJkLmNo";
- needle[15]="aBcDeFgHiJkLmNoP";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of greater length:\n");
- for (i = 0; i < 16; i++) {
- printf("Pattern length %d with BasicSearch (Building Context):", i+1);
- found = BasicSearchNocaseCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch (Building Context):", i+1);
- found = Bs2bmNocaseCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch (Building Context):", i+1);
- found = BoyerMooreNocaseCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-int UtilSpmNocaseSearchStatsTest05()
-{
- char *text[16];
- text[0]="zzzzzzzzzzzzzzzzzza";
- text[1]="zzzzzzzzzzzzzzzzzzaB";
- text[2]="zzzzzzzzzzzzzzzzzzaBc";
- text[3]="zzzzzzzzzzzzzzzzzzaBcD";
- text[4]="zzzzzzzzzzzzzzzzzzaBcDe";
- text[5]="zzzzzzzzzzzzzzzzzzzzaBcDeF";
- text[6]="zzzzzzzzzzzzzzzzzzzzaBcDeFg";
- text[7]="zzzzzzzzzzzzzzzzzzzzaBcDeFgH";
- text[8]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHi";
- text[9]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJ";
- text[10]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJk";
- text[11]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkL";
- text[12]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLm";
- text[13]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmN";
- text[14]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmNo";
- text[15]="zzzzzzzzzzzzzzzzzzzzaBcDeFgHiJkLmNoP";
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
- needle[5]="aBcDeF";
- needle[6]="aBcDeFg";
- needle[7]="aBcDeFgH";
- needle[8]="aBcDeFgHi";
- needle[9]="aBcDeFgHiJ";
- needle[10]="aBcDeFgHiJk";
- needle[11]="aBcDeFgHiJkL";
- needle[12]="aBcDeFgHiJkLm";
- needle[13]="aBcDeFgHiJkLmN";
- needle[14]="aBcDeFgHiJkLmNo";
- needle[15]="aBcDeFgHiJkLmNoP";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of lower length:\n");
- for (i = 0; i < 16; i++) {
- printf("Pattern length %d with BasicSearch (Building Context):", i+1);
- found = BasicSearchNocaseCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch (Building Context):", i+1);
- found = Bs2bmNocaseCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch (Building Context):", i+1);
- found = BoyerMooreNocaseCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-
-int UtilSpmNocaseSearchStatsTest06()
-{
- char *text[16];
- text[0]="zzzzkzzzzzzzkzzzzzza";
- text[1]="BBBBkBBBBBBBkBBBBBaB";
- text[2]="BcBckcBcBcBckcBcBcaBc";
- text[3]="BcDBkDBcDBcDkcDBcDaBcD";
- text[4]="BcDekcDeBcDekcDezzaBcDe";
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of lower length (badcase for):\n");
- for (i = 0; i < 5; i++) {
- printf("Pattern length %d with BasicSearch (Building Context):", i+1);
- found = BasicSearchNocaseCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch (Building Context):", i+1);
- found = Bs2bmNocaseCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch (Building Context):", i+1);
- found = BoyerMooreNocaseCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-int UtilSpmNocaseSearchStatsTest07()
-{
- char *text[16];
- text[0]="zzzza";
- text[1]="bbbAb";
- text[2]="bbAbC";
- text[3]="bAbCd";
- text[4]="AbCdE";
-
- char *needle[16];
- needle[0]="a";
- needle[1]="aB";
- needle[2]="aBc";
- needle[3]="aBcD";
- needle[4]="aBcDe";
-
- int i;
- uint8_t *found = NULL;
- printf("\nStats for text of real lower length (badcase for):\n");
- for (i = 0; i < 5; i++) {
- printf("Pattern length %d with BasicSearch (Building Context):", i+1);
- found = BasicSearchNocaseCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error1 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with Bs2BmSearch (Building Context):", i+1);
- found = Bs2bmNocaseCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error2 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("Pattern length %d with BoyerMooreSearch (Building Context):", i+1);
- found = BoyerMooreNocaseCtxWrapper((uint8_t *)text[i], (uint8_t *)needle[i], STATS_TIMES);
- if (found == 0) {
- printf("Error3 searching for %s in text %s\n", needle[i], text[i]);
- return 0;
- }
- printf("\n");
- }
- return 1;
-}
-
-#endif
-
-/* Register unittests */
-void UtilSpmSearchRegistertests(void)
-{
-#ifdef UNITTESTS
- /* Generic tests */
- UtRegisterTest("UtilSpmBasicSearchTest01", UtilSpmBasicSearchTest01, 1);
- UtRegisterTest("UtilSpmBasicSearchNocaseTest01", UtilSpmBasicSearchNocaseTest01, 1);
-
- UtRegisterTest("UtilSpmBs2bmSearchTest01", UtilSpmBs2bmSearchTest01, 1);
- UtRegisterTest("UtilSpmBs2bmSearchNocaseTest01", UtilSpmBs2bmSearchNocaseTest01, 1);
-
- UtRegisterTest("UtilSpmBoyerMooreSearchTest01", UtilSpmBoyerMooreSearchTest01, 1);
- UtRegisterTest("UtilSpmBoyerMooreSearchNocaseTest01", UtilSpmBoyerMooreSearchNocaseTest01, 1);
- UtRegisterTest("UtilSpmBoyerMooreSearchNocaseTestIssue130", UtilSpmBoyerMooreSearchNocaseTestIssue130, 1);
-
- UtRegisterTest("UtilSpmBs2bmSearchTest02", UtilSpmBs2bmSearchTest02, 1);
- UtRegisterTest("UtilSpmBs2bmSearchNocaseTest02", UtilSpmBs2bmSearchNocaseTest02, 1);
-
- UtRegisterTest("UtilSpmBasicSearchTest02", UtilSpmBasicSearchTest02, 1);
- UtRegisterTest("UtilSpmBasicSearchNocaseTest02", UtilSpmBasicSearchNocaseTest02, 1);
-
- UtRegisterTest("UtilSpmBoyerMooreSearchTest02", UtilSpmBoyerMooreSearchTest02, 1);
- UtRegisterTest("UtilSpmBoyerMooreSearchNocaseTest02", UtilSpmBoyerMooreSearchNocaseTest02, 1);
-
- /* test matches at any offset */
- UtRegisterTest("UtilSpmSearchOffsetsTest01", UtilSpmSearchOffsetsTest01, 1);
- UtRegisterTest("UtilSpmSearchOffsetsNocaseTest01", UtilSpmSearchOffsetsNocaseTest01, 1);
-
-#ifdef ENABLE_SEARCH_STATS
- /* Give some stats searching given a prepared context (look at the wrappers) */
- UtRegisterTest("UtilSpmSearchStatsTest01", UtilSpmSearchStatsTest01, 1);
- UtRegisterTest("UtilSpmSearchStatsTest02", UtilSpmSearchStatsTest02, 1);
- UtRegisterTest("UtilSpmSearchStatsTest03", UtilSpmSearchStatsTest03, 1);
-
- UtRegisterTest("UtilSpmNocaseSearchStatsTest01", UtilSpmNocaseSearchStatsTest01, 1);
- UtRegisterTest("UtilSpmNocaseSearchStatsTest02", UtilSpmNocaseSearchStatsTest02, 1);
- UtRegisterTest("UtilSpmNocaseSearchStatsTest03", UtilSpmNocaseSearchStatsTest03, 1);
-
- /* Stats building context and searching */
- UtRegisterTest("UtilSpmSearchStatsTest04", UtilSpmSearchStatsTest04, 1);
- UtRegisterTest("UtilSpmSearchStatsTest05", UtilSpmSearchStatsTest05, 1);
- UtRegisterTest("UtilSpmSearchStatsTest06", UtilSpmSearchStatsTest06, 1);
- UtRegisterTest("UtilSpmSearchStatsTest07", UtilSpmSearchStatsTest07, 1);
-
- UtRegisterTest("UtilSpmNocaseSearchStatsTest04", UtilSpmNocaseSearchStatsTest04, 1);
- UtRegisterTest("UtilSpmNocaseSearchStatsTest05", UtilSpmNocaseSearchStatsTest05, 1);
- UtRegisterTest("UtilSpmNocaseSearchStatsTest06", UtilSpmNocaseSearchStatsTest06, 1);
- UtRegisterTest("UtilSpmNocaseSearchStatsTest07", UtilSpmNocaseSearchStatsTest07, 1);
-
-#endif
-#endif
-}