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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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.