|
@@ -1,13 +1,13 @@
|
|
|
using Terminal.Gui;
|
|
|
using Xunit;
|
|
|
|
|
|
-namespace UnitTests {
|
|
|
+namespace Terminal.Gui.Core {
|
|
|
public class SearchCollectionNavigatorTests {
|
|
|
|
|
|
[Fact]
|
|
|
public void TestSearchCollectionNavigator_Cycling ()
|
|
|
{
|
|
|
- var s = new string []{
|
|
|
+ var strings = new string []{
|
|
|
"appricot",
|
|
|
"arm",
|
|
|
"bat",
|
|
@@ -15,12 +15,12 @@ namespace UnitTests {
|
|
|
"candle"
|
|
|
};
|
|
|
|
|
|
- var n = new SearchCollectionNavigator ();
|
|
|
- Assert.Equal (2, n.CalculateNewIndex (s, 0, 'b'));
|
|
|
- Assert.Equal (3, n.CalculateNewIndex (s, 2, 'b'));
|
|
|
+ var n = new SearchCollectionNavigator (strings);
|
|
|
+ Assert.Equal (2, n.CalculateNewIndex ( 0, 'b'));
|
|
|
+ Assert.Equal (3, n.CalculateNewIndex ( 2, 'b'));
|
|
|
|
|
|
// if 4 (candle) is selected it should loop back to bat
|
|
|
- Assert.Equal (2, n.CalculateNewIndex (s, 4, 'b'));
|
|
|
+ Assert.Equal (2, n.CalculateNewIndex ( 4, 'b'));
|
|
|
|
|
|
}
|
|
|
|
|
@@ -28,7 +28,7 @@ namespace UnitTests {
|
|
|
[Fact]
|
|
|
public void TestSearchCollectionNavigator_ToSearchText ()
|
|
|
{
|
|
|
- var s = new string []{
|
|
|
+ var strings = new string []{
|
|
|
"appricot",
|
|
|
"arm",
|
|
|
"bat",
|
|
@@ -37,19 +37,19 @@ namespace UnitTests {
|
|
|
"candle"
|
|
|
};
|
|
|
|
|
|
- var n = new SearchCollectionNavigator ();
|
|
|
- Assert.Equal (2, n.CalculateNewIndex (s, 0, 'b'));
|
|
|
- Assert.Equal (4, n.CalculateNewIndex (s, 2, 'b'));
|
|
|
+ var n = new SearchCollectionNavigator (strings);
|
|
|
+ Assert.Equal (2, n.CalculateNewIndex (0, 'b'));
|
|
|
+ Assert.Equal (4, n.CalculateNewIndex (2, 'b'));
|
|
|
|
|
|
// another 'b' means searching for "bbb" which does not exist
|
|
|
// so we go back to looking for "b" as a fresh key strike
|
|
|
- Assert.Equal (4, n.CalculateNewIndex (s, 2, 'b'));
|
|
|
+ Assert.Equal (4, n.CalculateNewIndex (2, 'b'));
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
|
public void TestSearchCollectionNavigator_FullText ()
|
|
|
{
|
|
|
- var s = new string []{
|
|
|
+ var strings = new string []{
|
|
|
"appricot",
|
|
|
"arm",
|
|
|
"ta",
|
|
@@ -59,23 +59,23 @@ namespace UnitTests {
|
|
|
"candle"
|
|
|
};
|
|
|
|
|
|
- var n = new SearchCollectionNavigator ();
|
|
|
- Assert.Equal (2, n.CalculateNewIndex (s, 0, 't'));
|
|
|
+ var n = new SearchCollectionNavigator (strings);
|
|
|
+ Assert.Equal (2, n.CalculateNewIndex (0, 't'));
|
|
|
|
|
|
// should match "te" in "text"
|
|
|
- Assert.Equal (4, n.CalculateNewIndex (s, 2, 'e'));
|
|
|
+ Assert.Equal (4, n.CalculateNewIndex (2, 'e'));
|
|
|
|
|
|
// still matches text
|
|
|
- Assert.Equal (4, n.CalculateNewIndex (s, 4, 'x'));
|
|
|
+ Assert.Equal (4, n.CalculateNewIndex (4, 'x'));
|
|
|
|
|
|
// nothing starts texa so it jumps to a for appricot
|
|
|
- Assert.Equal (0, n.CalculateNewIndex (s, 4, 'a'));
|
|
|
+ Assert.Equal (0, n.CalculateNewIndex (4, 'a'));
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
|
public void TestSearchCollectionNavigator_Unicode ()
|
|
|
{
|
|
|
- var s = new string []{
|
|
|
+ var strings = new string []{
|
|
|
"appricot",
|
|
|
"arm",
|
|
|
"ta",
|
|
@@ -86,27 +86,27 @@ namespace UnitTests {
|
|
|
"candle"
|
|
|
};
|
|
|
|
|
|
- var n = new SearchCollectionNavigator ();
|
|
|
- Assert.Equal (3, n.CalculateNewIndex (s, 0, '丗'));
|
|
|
+ var n = new SearchCollectionNavigator (strings);
|
|
|
+ Assert.Equal (3, n.CalculateNewIndex (0, '丗'));
|
|
|
|
|
|
// 丗丙业丞 is as good a match as 丗丙丛
|
|
|
// so when doing multi character searches we should
|
|
|
// prefer to stay on the same index unless we invalidate
|
|
|
// our typed text
|
|
|
- Assert.Equal (3, n.CalculateNewIndex (s, 3, '丙'));
|
|
|
+ Assert.Equal (3, n.CalculateNewIndex (3, '丙'));
|
|
|
|
|
|
// No longer matches 丗丙业丞 and now only matches 丗丙丛
|
|
|
// so we should move to the new match
|
|
|
- Assert.Equal (4, n.CalculateNewIndex (s, 3, '丛'));
|
|
|
+ Assert.Equal (4, n.CalculateNewIndex (3, '丛'));
|
|
|
|
|
|
// nothing starts "丗丙丛a" so it jumps to a for appricot
|
|
|
- Assert.Equal (0, n.CalculateNewIndex (s, 4, 'a'));
|
|
|
+ Assert.Equal (0, n.CalculateNewIndex (4, 'a'));
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
|
public void TestSearchCollectionNavigator_AtSymbol ()
|
|
|
{
|
|
|
- var s = new string []{
|
|
|
+ var strings = new string []{
|
|
|
"appricot",
|
|
|
"arm",
|
|
|
"ta",
|
|
@@ -117,10 +117,10 @@ namespace UnitTests {
|
|
|
"candle"
|
|
|
};
|
|
|
|
|
|
- var n = new SearchCollectionNavigator ();
|
|
|
- Assert.Equal (3, n.CalculateNewIndex (s, 0, '@'));
|
|
|
- Assert.Equal (3, n.CalculateNewIndex (s, 3, 'b'));
|
|
|
- Assert.Equal (4, n.CalculateNewIndex (s, 3, 'b'));
|
|
|
+ var n = new SearchCollectionNavigator (strings);
|
|
|
+ Assert.Equal (3, n.CalculateNewIndex (0, '@'));
|
|
|
+ Assert.Equal (3, n.CalculateNewIndex (3, 'b'));
|
|
|
+ Assert.Equal (4, n.CalculateNewIndex (3, 'b'));
|
|
|
}
|
|
|
}
|
|
|
}
|