Blender
V2.93
source
blender
blenlib
tests
BLI_string_search_test.cc
Go to the documentation of this file.
1
/* Apache License, Version 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
TEST
(string_search,
damerau_levenshtein_distance
)
12
{
13
EXPECT_EQ
(
damerau_levenshtein_distance
(
"test"
,
"test"
), 0);
14
EXPECT_EQ
(
damerau_levenshtein_distance
(
"hello"
,
"ell"
), 2);
15
EXPECT_EQ
(
damerau_levenshtein_distance
(
"hello"
,
"hel"
), 2);
16
EXPECT_EQ
(
damerau_levenshtein_distance
(
"ell"
,
"hello"
), 2);
17
EXPECT_EQ
(
damerau_levenshtein_distance
(
"hell"
,
"hello"
), 1);
18
EXPECT_EQ
(
damerau_levenshtein_distance
(
"hello"
,
"hallo"
), 1);
19
EXPECT_EQ
(
damerau_levenshtein_distance
(
"test"
,
""
), 4);
20
EXPECT_EQ
(
damerau_levenshtein_distance
(
""
,
"hello"
), 5);
21
EXPECT_EQ
(
damerau_levenshtein_distance
(
"Test"
,
"test"
), 1);
22
EXPECT_EQ
(
damerau_levenshtein_distance
(
"ab"
,
"ba"
), 1);
23
EXPECT_EQ
(
damerau_levenshtein_distance
(
"what"
,
"waht"
), 1);
24
EXPECT_EQ
(
damerau_levenshtein_distance
(
"what"
,
"ahwt"
), 2);
25
}
26
27
TEST
(string_search,
get_fuzzy_match_errors
)
28
{
29
EXPECT_EQ
(
get_fuzzy_match_errors
(
"a"
,
"b"
), -1);
30
EXPECT_EQ
(
get_fuzzy_match_errors
(
""
,
"abc"
), 0);
31
EXPECT_EQ
(
get_fuzzy_match_errors
(
"hello"
,
"hallo"
), 1);
32
EXPECT_EQ
(
get_fuzzy_match_errors
(
"hap"
,
"hello"
), -1);
33
EXPECT_EQ
(
get_fuzzy_match_errors
(
"armature"
,
"▶restore"
), -1);
34
}
35
36
TEST
(string_search,
extract_normalized_words
)
37
{
38
LinearAllocator<>
allocator;
39
Vector<StringRef, 64>
words;
40
extract_normalized_words
(
"hello world▶test another test▶ 3"
, allocator, words);
41
EXPECT_EQ
(words.
size
(), 6);
42
EXPECT_EQ
(words[0],
"hello"
);
43
EXPECT_EQ
(words[1],
"world"
);
44
EXPECT_EQ
(words[2],
"test"
);
45
EXPECT_EQ
(words[3],
"another"
);
46
EXPECT_EQ
(words[4],
"test"
);
47
EXPECT_EQ
(words[5],
"3"
);
48
}
49
50
}
// 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
BLI_vector.hh
blender::LinearAllocator
Definition:
BLI_linear_allocator.hh:33
blender::Vector
Definition:
BLI_vector.hh:78
blender::Vector::size
int64_t size() const
Definition:
BLI_vector.hh:662
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:11
blender::string_search::extract_normalized_words
void extract_normalized_words(StringRef str, LinearAllocator<> &allocator, Vector< StringRef, 64 > &r_words)
Definition:
string_search.cc:349
blender::string_search::get_fuzzy_match_errors
int get_fuzzy_match_errors(StringRef query, StringRef full)
Definition:
string_search.cc:109
blender::string_search::damerau_levenshtein_distance
int damerau_levenshtein_distance(StringRef a, StringRef b)
Definition:
string_search.cc:42
Generated on Tue Jan 31 2023 14:37:24 for Blender by
doxygen
1.9.1