You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Zero/ZeroLevel.UnitTests/SuffixAutomataTests.cs

43 lines
1.8 KiB

2 years ago
using Xunit;
using ZeroLevel.Semantic;
using ZeroLevel.Services.Text;
namespace ZeroLevel.UnitTests
{
public class SuffixAutomataTests
{
[Fact]
public void IsSubstringTest()
{
var text = @"=Однако эту оценку легко показать и без знания алгоритма. Вспомним о том, что число состояний равно количеству различных значений множеств endpos.#";
var automata = new SuffixAutomata();
automata.Init();
foreach (var ch in text)
{
automata.Extend(ch);
}
Assert.True(automata.IsSubstring("Вспомним"));
Assert.True(automata.IsSubstring("")); // empty line
Assert.True(automata.IsSubstring("#")); // end line
Assert.True(automata.IsSubstring("=")); // start line
Assert.True(automata.IsSubstring(null)); // null
Assert.False(automata.IsSubstring("равноценно"));
Assert.False(automata.IsSubstring("нетслова"));
}
[Fact]
public void IntersectionTest()
{
var text = @"=Однако эту оценку легко показать и без знания алгоритма. Вспомним о том, что число состояний равно количеству различных значений множеств endpos.#";
var i = LongestCommonSubstring.LCS(text, "енк");
Assert.Equal("енк", i);
i = LongestCommonSubstring.LCS(text, "стоя");
Assert.Equal("стоя", i);
i = LongestCommonSubstring.LCS(text, "горизонт");
Assert.Equal("гори", i);
}
}
}

Powered by TurnKey Linux.