Blender
V3.3
source
blender
blenlib
tests
BLI_string_search_test.cc
Go to the documentation of this file.
1
/* SPDX-License-Identifier: Apache-2.0 */
2
3
#include "testing/testing.h"
4
5
#include "
BLI_array.hh
"
6
#include "
BLI_string_search.h
"
7
#include "
BLI_vector.hh
"
8
9
namespace
blender::string_search::tests
{
10
11
/* Right arrow, keep in sync with #UI_MENU_ARROW_SEP in `UI_interface.h`. */
12
#define UI_MENU_ARROW_SEP "\xe2\x96\xb6"
13
14
TEST
(string_search,
damerau_levenshtein_distance
)
15
{
16
EXPECT_EQ
(
damerau_levenshtein_distance
(
"test"
,
"test"
), 0);
17
EXPECT_EQ
(
damerau_levenshtein_distance
(
"hello"
,
"ell"
), 2);
18
EXPECT_EQ
(
damerau_levenshtein_distance
(
"hello"
,
"hel"
), 2);
19
EXPECT_EQ
(
damerau_levenshtein_distance
(
"ell"
,
"hello"
), 2);
20
EXPECT_EQ
(
damerau_levenshtein_distance
(
"hell"
,
"hello"
), 1);
21
EXPECT_EQ
(
damerau_levenshtein_distance
(
"hello"
,
"hallo"
), 1);
22
EXPECT_EQ
(
damerau_levenshtein_distance
(
"test"
,
""
), 4);
23
EXPECT_EQ
(
damerau_levenshtein_distance
(
""
,
"hello"
), 5);
24
EXPECT_EQ
(
damerau_levenshtein_distance
(
"Test"
,
"test"
), 1);
25
EXPECT_EQ
(
damerau_levenshtein_distance
(
"ab"
,
"ba"
), 1);
26
EXPECT_EQ
(
damerau_levenshtein_distance
(
"what"
,
"waht"
), 1);
27
EXPECT_EQ
(
damerau_levenshtein_distance
(
"what"
,
"ahwt"
), 2);
28
}
29
30
TEST
(string_search,
get_fuzzy_match_errors
)
31
{
32
EXPECT_EQ
(
get_fuzzy_match_errors
(
"a"
,
"b"
), -1);
33
EXPECT_EQ
(
get_fuzzy_match_errors
(
""
,
"abc"
), 0);
34
EXPECT_EQ
(
get_fuzzy_match_errors
(
"hello"
,
"hallo"
), 1);
35
EXPECT_EQ
(
get_fuzzy_match_errors
(
"hap"
,
"hello"
), -1);
36
EXPECT_EQ
(
get_fuzzy_match_errors
(
"armature"
,
UI_MENU_ARROW_SEP
"restore"
), -1);
37
}
38
39
TEST
(string_search,
extract_normalized_words
)
40
{
41
LinearAllocator<>
allocator;
42
Vector<StringRef, 64>
words;
43
extract_normalized_words
(
"hello world"
UI_MENU_ARROW_SEP
"test another test"
UI_MENU_ARROW_SEP
44
" 3"
,
45
allocator,
46
words);
47
EXPECT_EQ
(words.
size
(), 6);
48
EXPECT_EQ
(words[0],
"hello"
);
49
EXPECT_EQ
(words[1],
"world"
);
50
EXPECT_EQ
(words[2],
"test"
);
51
EXPECT_EQ
(words[3],
"another"
);
52
EXPECT_EQ
(words[4],
"test"
);
53
EXPECT_EQ
(words[5],
"3"
);
54
}
55
56
}
// namespace blender::string_search::tests
BLI_array.hh
EXPECT_EQ
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
BLI_string_search.h
UI_MENU_ARROW_SEP
#define UI_MENU_ARROW_SEP
Definition:
BLI_string_search_test.cc:12
BLI_vector.hh
blender::LinearAllocator
Definition:
BLI_linear_allocator.hh:19
blender::Vector
Definition:
BLI_vector.hh:64
blender::Vector::size
int64_t size() const
Definition:
BLI_vector.hh:694
blender::string_search::tests
Definition:
BLI_string_search_test.cc:9
blender::string_search::tests::TEST
TEST(string_search, damerau_levenshtein_distance)
Definition:
BLI_string_search_test.cc:14
blender::string_search::extract_normalized_words
void extract_normalized_words(StringRef str, LinearAllocator<> &allocator, Vector< StringRef, 64 > &r_words)
Definition:
string_search.cc:344
blender::string_search::get_fuzzy_match_errors
int get_fuzzy_match_errors(StringRef query, StringRef full)
Definition:
string_search.cc:87
blender::string_search::damerau_levenshtein_distance
int damerau_levenshtein_distance(StringRef a, StringRef b)
Definition:
string_search.cc:24
Generated on Sat Jul 27 2024 14:57:55 for Blender by
doxygen
1.9.1