public void CanHandleCyrillic() { var actual = DiacriticsCommand.DiacriticsLogic("матт", ToggleMode.Apply); Assert.AreEqual("м\u030A\u0325а\u030A\u0325т\u030A\u0325т\u030A\u0325", actual); Assert.AreEqual("м̥̊а̥̊т̥̊т̥̊", actual); }
public void CanHandleNonAscii() { var actual = DiacriticsCommand.DiacriticsLogic("mrläcey", ToggleMode.Apply); Assert.AreEqual("m\u0301\u0317r\u0301\u0317l\u0301\u0317ä\u0301\u0317c\u0301\u0317e\u0301\u0317y\u0301\u0317", actual); Assert.AreEqual("ḿ̗ŕ̗ĺ̗ä̗́ć̗é̗ý̗", actual); }
public void AddToStringOfLength3_Bridge() { var actual = DiacriticsCommand.DiacriticsLogic("abc", ToggleMode.Apply); Assert.AreEqual("a\u0346\u033Ab\u0346\u033Ac\u0346\u033A", actual); Assert.AreEqual("a̺͆b̺͆c̺͆", actual); }
public void AddToStringOfLength2_Breve() { var actual = DiacriticsCommand.DiacriticsLogic("ab", ToggleMode.Apply); Assert.AreEqual("a\u0306\u032Eb\u0306\u032E", actual); Assert.AreEqual("ă̮b̮̆", actual); }
public void AddToStringOfLength6_Grave() { var actual = DiacriticsCommand.DiacriticsLogic("abcdef", ToggleMode.Apply); Assert.AreEqual("a\u0300\u0316b\u0300\u0316c\u0300\u0316d\u0300\u0316e\u0300\u0316f\u0300\u0316", actual); Assert.AreEqual("à̖b̖̀c̖̀d̖̀è̖f̖̀", actual); }
/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> /// <param name="cancellationToken">A cancellation token to monitor for initialization cancellation, which can occur when VS is shutting down.</param> /// <param name="progress">A provider for progress updates.</param> /// <returns>A task representing the async work of package initialization, or an already completed task if there is none. Do not return null from this method.</returns> protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress <ServiceProgressData> progress) { // When initialized asynchronously, the current thread may be a background thread at this point. // Do any initialization that requires the UI thread after switching to the UI thread. await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken); await SurroundCommand.InitializeAsync(this); await ReverseCommand.InitializeAsync(this); await PaddingCommand.InitializeAsync(this); await InvertCaseCommand.InitializeAsync(this); await DiacriticsCommand.InitializeAsync(this); await DoubleCommand.InitializeAsync(this); await UppercaseCommand.InitializeAsync(this); await XxxxxCommand.InitializeAsync(this); await L337Command.InitializeAsync(this); await AlternateCaseCommand.InitializeAsync(this); await SponsorRequestHelper.CheckIfNeedToShowAsync(); }
public void AddToStringOfLength9_Umlaut() { var actual = DiacriticsCommand.DiacriticsLogic("abcdefghi", ToggleMode.Apply); Assert.AreEqual("a\u0308\u0324b\u0308\u0324c\u0308\u0324d\u0308\u0324e\u0308\u0324f\u0308\u0324g\u0308\u0324h\u0308\u0324i\u0308\u0324", actual); Assert.AreEqual("ä̤b̤̈c̤̈d̤̈ë̤f̤̈g̤̈ḧ̤ï̤", actual); }
public void AddToStringOfLength1_Equals() { var actual = DiacriticsCommand.DiacriticsLogic("a", ToggleMode.Apply); Assert.AreEqual("a\u033F\u0347", actual); Assert.AreEqual("a͇̿", actual); }
public void OrderOfDoubleAndDiacriticsDoesMatterButCanRemoveInEitherOrder() { var original = "Original String"; // Apply both changes var doubleFirst = DoubleCommand.DoubleLogic(original, ToggleMode.Apply); doubleFirst = DiacriticsCommand.DiacriticsLogic(doubleFirst, ToggleMode.Apply); var diacriticsFirst = DiacriticsCommand.DiacriticsLogic(original, ToggleMode.Apply); diacriticsFirst = DoubleCommand.DoubleLogic(diacriticsFirst, ToggleMode.Apply); // Remove doubling first var doubleFirstRemoved = DoubleCommand.DoubleLogic(doubleFirst, ToggleMode.Reverse); doubleFirstRemoved = DiacriticsCommand.DiacriticsLogic(doubleFirstRemoved, ToggleMode.Reverse); var diacriticsFirstRemoved = DoubleCommand.DoubleLogic(diacriticsFirst, ToggleMode.Reverse); diacriticsFirstRemoved = DiacriticsCommand.DiacriticsLogic(diacriticsFirstRemoved, ToggleMode.Reverse); Assert.AreEqual(original, doubleFirstRemoved); Assert.AreEqual(original, diacriticsFirstRemoved); // Remove diacritics first doubleFirstRemoved = DiacriticsCommand.DiacriticsLogic(doubleFirst, ToggleMode.Reverse); doubleFirstRemoved = DoubleCommand.DoubleLogic(doubleFirstRemoved, ToggleMode.Reverse); diacriticsFirstRemoved = DiacriticsCommand.DiacriticsLogic(diacriticsFirst, ToggleMode.Reverse); diacriticsFirstRemoved = DoubleCommand.DoubleLogic(diacriticsFirstRemoved, ToggleMode.Reverse); Assert.AreEqual(original, doubleFirstRemoved); Assert.AreEqual(original, diacriticsFirstRemoved); }
public void AddToStringOfLength10_Equals() { var actual = DiacriticsCommand.DiacriticsLogic("abcdefghij", ToggleMode.Apply); Assert.AreEqual("a\u033F\u0347b\u033F\u0347c\u033F\u0347d\u033F\u0347e\u033F\u0347f\u033F\u0347g\u033F\u0347h\u033F\u0347i\u033F\u0347j\u033F\u0347", actual); Assert.AreEqual("a͇̿b͇̿c͇̿d͇̿e͇̿f͇̿g͇̿h͇̿i͇̿j͇̿", actual); }
public void AddToStringOfLength8_Hook() { var actual = DiacriticsCommand.DiacriticsLogic("abcdefgh", ToggleMode.Apply); Assert.AreEqual("a\u0309\u0321b\u0309\u0321c\u0309\u0321d\u0309\u0321e\u0309\u0321f\u0309\u0321g\u0309\u0321h\u0309\u0321", actual); Assert.AreEqual("ả̡b̡̉c̡̉d̡̉ẻ̡f̡̉g̡̉h̡̉", actual); }
public static string Apply(string input, string command) { switch (command) { case nameof(DiacriticsCommand): return(DiacriticsCommand.DiacriticsLogic(input, ToggleMode.Apply)); case nameof(DoubleCommand): return(DoubleCommand.DoubleLogic(input, ToggleMode.Apply)); case nameof(InvertCaseCommand): return(InvertCaseCommand.InvertCaseLogic(input)); case nameof(PaddingCommand): return(PaddingCommand.PaddingLogic(input, ToggleMode.Apply)); case nameof(ReverseCommand): return(ReverseCommand.ReverseLogic(input)); case nameof(SurroundCommand): return(SurroundCommand.SurroundLogic(input, ToggleMode.Apply)); default: return(input); } }
public void AddToStringOfLength5_Circumflex() { var actual = DiacriticsCommand.DiacriticsLogic("abcde", ToggleMode.Apply); Assert.AreEqual("a\u0302\u032Db\u0302\u032Dc\u0302\u032Dd\u0302\u032De\u0302\u032D", actual); Assert.AreEqual("â̭b̭̂ĉ̭ḓ̂ḙ̂", actual); }
public void AddToStringOfLength7_Acute() { var actual = DiacriticsCommand.DiacriticsLogic("abcdefg", ToggleMode.Apply); Assert.AreEqual("a\u0301\u0317b\u0301\u0317c\u0301\u0317d\u0301\u0317e\u0301\u0317f\u0301\u0317g\u0301\u0317", actual); Assert.AreEqual("á̗b̗́ć̗d̗́é̗f̗́ǵ̗", actual); }
public void AddToStringOfLength4_Ring() { var actual = DiacriticsCommand.DiacriticsLogic("abcd", ToggleMode.Apply); Assert.AreEqual("a\u030A\u0325b\u030A\u0325c\u030A\u0325d\u030A\u0325", actual); Assert.AreEqual("ḁ̊b̥̊c̥̊d̥̊", actual); }
public void RemoveDiacrtiticsWhenAlreadyHasPadding() { var actual = DiacriticsCommand.DiacriticsLogic( "a\u0306\u032E-b\u0306\u032E-c\u0306\u032E-d\u0306\u032E-e\u0306\u032E-f\u0306\u032E", ToggleMode.Reverse); Assert.AreEqual("a-b-c-d-e-f", actual); }
public void RemoveDiacriticsWhenAlsoHasBeenDoubled() { var actual = DiacriticsCommand.DiacriticsLogic( "a\u0302\u032Da\u0302\u032Db\u0302\u032Db\u0302\u032Dc\u0302\u032Dc\u0302\u032Dd\u0302\u032Dd\u0302\u032De\u0302\u032De\u0302\u032D", ToggleMode.Reverse); Assert.AreEqual("aabbccddee", actual); }
public void CallingApplyMultipleTimesHasNoEffect() { var origin = "Original String"; var once = DiacriticsCommand.DiacriticsLogic(origin, ToggleMode.Apply); var twice = DiacriticsCommand.DiacriticsLogic(origin, ToggleMode.Apply); twice = DiacriticsCommand.DiacriticsLogic(twice, ToggleMode.Apply); Assert.AreEqual(once, twice); }
public void HandleRemovingDiacriticsWhenAddedAreMixedWithOthers_FirstAdditionsInvalid_SoNoAdditionDetectedAndNothingRemoved() { // Note. The scenario tested here should never happen in reality as it's using the wrong toggle mode for the input string. //// a - extra in third addition //// b - extra in second addition //// c - extra in first position - should have removals //// d - 2 extras in first & second position - should have removals //// e - no extras - all should be removed var testStr = "a\u0306\u032E\u033Eb\u0306\u033E\u032Ec\u033E\u0306\u032Ed\u033E\u033F\u0306\u032Ee\u0306\u032E"; var actual = DiacriticsCommand.DiacriticsLogic(testStr, ToggleMode.Reverse); Assert.AreEqual(testStr, actual); }
public void HandleRemovingDiacriticsWhenAddedAreMixedWithOthers_FirstAdditionsValid_SoHaveRemovals() { //// z - no extras //// a - extra in third addition //// b - extra in second addition //// c - extra in first position - should have removals //// d - 2 extras in first & second position - should have removals //// e - no extras - all should be removed var testStr = "z\u0306\u032Ea\u0306\u032E\u033Eb\u0306\u033E\u032Ec\u033E\u0306\u032Ed\u033E\u033F\u0306\u032Ee\u0306\u032E"; var actual = DiacriticsCommand.DiacriticsLogic(testStr, ToggleMode.Reverse); Assert.AreEqual("za\u0306\u032E\u033Eb\u0306\u033E\u032Ec\u033Ed\u033E\u033Fe", actual); }
public void OrderOfDoubleAndDiacriticsDoesMatter() { var original = "Original String"; var doubleFirst = DoubleCommand.DoubleLogic(original, ToggleMode.Apply); doubleFirst = DiacriticsCommand.DiacriticsLogic(doubleFirst, ToggleMode.Apply); var diacriticsFirst = DiacriticsCommand.DiacriticsLogic(original, ToggleMode.Apply); diacriticsFirst = DoubleCommand.DoubleLogic(diacriticsFirst, ToggleMode.Apply); // This is because the diacritic used is based on the string length Assert.AreNotEqual(doubleFirst, diacriticsFirst); }
public void HandleRemovingDiacriticsWhenAddedAreMixedWithOthers_FirstAdditionsInvalid() { // a - extra in third addition // b - extra in second addition // c - extra in first position - should have removals // d - 2 extras in first & second position - should have removals // e - no extras - all should be removed var actual = DiacriticsCommand.RemoveDiacritics( "a\u0306\u032E\u033Eb\u0306\u033E\u032Ec\u033E\u0306\u032Ed\u033E\u033F\u0306\u032Ee\u0306\u032E"); // The above would fail if calling DiacriticsLogic with ToggleMode.Reverse as the // combining characters added to the first letter 'a' don't look right. // See next test for variation on this theme. Assert.AreEqual( "a\u0306\u032E\u033Eb\u0306\u033E\u032Ec\u033Ed\u033E\u033Fe", actual); }
public void CanAddAndRemoveToggleActionsInDifferentOrder() { var origin = "Original String"; var modifiedStep1 = SurroundCommand.SurroundLogic(origin, ToggleMode.Apply); var modifiedStep2 = DiacriticsCommand.DiacriticsLogic(modifiedStep1, ToggleMode.Apply); var modifiedStep3 = DoubleCommand.DoubleLogic(modifiedStep2, ToggleMode.Apply); var modifiedStep4 = ReverseCommand.ReverseLogic(modifiedStep3); var modifiedStep5 = PaddingCommand.PaddingLogic(modifiedStep4, ToggleMode.Apply); var modifiedStep6 = InvertCaseCommand.InvertCaseLogic(modifiedStep5); var modifiedStep7 = DiacriticsCommand.DiacriticsLogic(modifiedStep6, ToggleMode.Reverse); var modifiedStep8 = SurroundCommand.SurroundLogic(modifiedStep7, ToggleMode.Reverse); var modifiedStep9 = DoubleCommand.DoubleLogic(modifiedStep8, ToggleMode.Reverse); var modifiedStep10 = ReverseCommand.ReverseLogic(modifiedStep9); var modifiedStep11 = InvertCaseCommand.InvertCaseLogic(modifiedStep10); var finalResult = PaddingCommand.PaddingLogic(modifiedStep11, ToggleMode.Reverse); Assert.AreEqual(origin, finalResult); }
public void Diacritics_RemovesWhereHave() { var origin = new List <string> { "h\u0346\u033Aa\u0346\u033As\u0346\u033A", "does not have", "A\u0309\u0321l\u0309\u0321s\u0309\u0321o\u0309\u0321 h\u0309\u0321a\u0309\u0321s\u0309\u0321", }; var sut = DiacriticsCommand.CreateForTesting(); var actual = sut.TestActingOnMultipleStrings(origin); var expected = new List <string> { "has", "does not have", "Also has" }; Assert.That.StringListsAreEqual(expected, actual); }
public void Diacritics_WithSurround_AddsWhereDoNotHave() { var origin = new List <string> { "[! does not have !]", "[! h\u0346\u033Aa\u0346\u033As\u0346\u033A !]", "[! also does not have !]", }; var sut = DiacriticsCommand.CreateForTesting(); var actual = sut.TestActingOnMultipleStrings(origin); var expected = new List <string> { "[! d\u030A\u0325o\u030A\u0325e\u030A\u0325s\u030A\u0325 n\u030A\u0325o\u030A\u0325t\u030A\u0325 h\u030A\u0325a\u030A\u0325v\u030A\u0325e\u030A\u0325 !]", "[! h\u0346\u033Aa\u0346\u033As\u0346\u033A !]", "[! a\u0308\u0324l\u0308\u0324s\u0308\u0324o\u0308\u0324 d\u0308\u0324o\u0308\u0324e\u0308\u0324s\u0308\u0324 n\u0308\u0324o\u0308\u0324t\u0308\u0324 h\u0308\u0324a\u0308\u0324v\u0308\u0324e\u0308\u0324 !]", }; Assert.That.StringListsAreEqual(expected, actual); }
public void RemoveDiacrtiticsWhenAlreadyHasSurroundsAndPadding() { var actual = DiacriticsCommand.DiacriticsLogic("[! a\u0302\u032D-b\u0302\u032D-c\u0302\u032D !]", ToggleMode.Reverse); Assert.AreEqual("[! a-b-c !]", actual); }
public void CanHandleWhenSecondCombiningDiacriticIsNotOneUsedHere() { var actual = DiacriticsCommand.HasAddedDiacritics("1\u033F\u033E"); Assert.IsFalse(actual); }
public void RemoveWhenSomeLettersHaveMultipleOtherDiacriticsAdded() { var actual = DiacriticsCommand.DiacriticsLogic("s͇̿o͇̿m͇̿e͇̿ X a\u0306\u033E", ToggleMode.Reverse); Assert.AreEqual("some X a\u0306\u033E", actual); }
public void CanHandleToggleModeNotSet() { var actual = DiacriticsCommand.DiacriticsLogic("Something", ToggleMode.NotSet); Assert.AreEqual("Something", actual); }
public void RemoveWhenNotAllLettersHaveDiacticsAdded() { var actual = DiacriticsCommand.DiacriticsLogic("s͇̿o͇̿m͇̿e͇̿ t͇̿e͇̿x͇̿t͇̿ X m͇̿o͇̿r͇̿e͇̿ t͇̿e͇̿x͇̿t͇̿", ToggleMode.Reverse); Assert.AreEqual("some text X more text", actual); }