mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
71 lines
2.8 KiB
C#
71 lines
2.8 KiB
C#
using System.Collections.Generic;
|
|
using System.Reflection;
|
|
using Flow.Launcher.Infrastructure;
|
|
using NUnit.Framework;
|
|
using NUnit.Framework.Legacy;
|
|
|
|
namespace Flow.Launcher.Test
|
|
{
|
|
[TestFixture]
|
|
public class TranslationMappingTest
|
|
{
|
|
[Test]
|
|
public void AddNewIndex_ShouldAddTranslatedIndexPlusLength()
|
|
{
|
|
var mapping = new TranslationMapping();
|
|
mapping.AddNewIndex(5, 3);
|
|
mapping.AddNewIndex(8, 2);
|
|
|
|
// 5+3=8, 8+2=10
|
|
ClassicAssert.AreEqual(2, GetOriginalToTranslatedCount(mapping));
|
|
ClassicAssert.AreEqual(8, GetOriginalToTranslatedAt(mapping, 0));
|
|
ClassicAssert.AreEqual(10, GetOriginalToTranslatedAt(mapping, 1));
|
|
}
|
|
|
|
|
|
[TestCase(0, 0)] // "F" -> "F"
|
|
[TestCase(1, 1)] // "l" -> "l"
|
|
[TestCase(2, 2)] // "o" -> "o"
|
|
[TestCase(3, 3)] // "w" -> "w"
|
|
[TestCase(4, 4)] // " " -> " "
|
|
[TestCase(5, 5)] // "Y" (translated from "用") -> original index 5
|
|
[TestCase(6, 5)] // "o" (translated from "用") -> original index 5
|
|
[TestCase(7, 5)] // "n" (translated from "用") -> original index 5
|
|
[TestCase(8, 5)] // "g" (translated from "用") -> original index 5
|
|
[TestCase(10, 6)] // "H" (translated from "户") -> original index 6
|
|
[TestCase(11, 6)] // "u" (translated from "户") -> original index 6
|
|
public void MapToOriginalIndex_ShouldReturnExpectedIndex(int translatedIndex, int expectedOriginalIndex)
|
|
{
|
|
var mapping = new TranslationMapping();
|
|
// Test case :
|
|
// 0123456
|
|
// Flow 用户
|
|
// 012345678901
|
|
// Flow Yong Hu
|
|
mapping.AddNewIndex(0, 1); // F
|
|
mapping.AddNewIndex(1, 1); // l
|
|
mapping.AddNewIndex(2, 1); // o
|
|
mapping.AddNewIndex(3, 1); // w
|
|
mapping.AddNewIndex(4, 1); // ' '
|
|
mapping.AddNewIndex(5, 4); // 用 -> Yong
|
|
mapping.AddNewIndex(10, 2); // 户 -> Hu
|
|
|
|
var result = mapping.MapToOriginalIndex(translatedIndex);
|
|
ClassicAssert.AreEqual(expectedOriginalIndex, result);
|
|
}
|
|
|
|
private static int GetOriginalToTranslatedCount(TranslationMapping mapping)
|
|
{
|
|
var field = typeof(TranslationMapping).GetField("_originalToTranslated", BindingFlags.NonPublic | BindingFlags.Instance);
|
|
var list = (List<int>)field.GetValue(mapping);
|
|
return list.Count;
|
|
}
|
|
|
|
private static int GetOriginalToTranslatedAt(TranslationMapping mapping, int index)
|
|
{
|
|
var field = typeof(TranslationMapping).GetField("_originalToTranslated", BindingFlags.NonPublic | BindingFlags.Instance);
|
|
var list = (List<int>)field.GetValue(mapping);
|
|
return list[index];
|
|
}
|
|
}
|
|
}
|