public void MoveWorks() { var unscrambler = new Unscrambler(); Assert.Equal("bcdea", unscrambler.Unscramble("bdeac", new[] { SampleOps.Move1To4 })); Assert.Equal("bdeac", unscrambler.Unscramble("abdec", new[] { SampleOps.Move3To0 })); }
public void RotateWorks() { var unscrambler = new Unscrambler(); Assert.Equal("abcde", unscrambler.Unscramble("bcdea", new[] { SampleOps.Rotate1Left })); Assert.Equal("abcde", unscrambler.Unscramble("cdeab", new[] { SampleOps.Rotate8Right })); }
public void RotateByLetterWorks() { var unscrambler = new Unscrambler(); Assert.Equal("abcdefgh", unscrambler.Unscramble("ghabcdef", new[] { SampleOps.RotateByB })); Assert.Equal("abcdefgh", unscrambler.Unscramble("efghabcd", new[] { SampleOps.RotateByD })); Assert.Equal("abcdefgh", unscrambler.Unscramble("habcdefg", new[] { SampleOps.RotateByH })); }
public string Solve(string[] input) { var parser = new OperationParser(); var steps = input.Select(line => parser.Parse(line)); var unscrambler = new Unscrambler(); return(unscrambler.Unscramble(Password, steps)); }
static void Main(string[] args) { try { Input User = new Input(); Unscrambler Unscramble = new Unscrambler(); int r; //result of tryparse do { User.UserChoiceInstructions(Data.UserChoice); //choose to use manual or file input var _userInput = Console.ReadLine() ?? string.Empty; Data.UserChoice = (_userInput == string.Empty || !int.TryParse(_userInput, out r)) ? 4 : Convert.ToInt32(_userInput); //If user input is unrecognized, the choice is set to 4 by default do { if (Data.UserChoice == 4 || (Data.UserChoice != 1 || Data.UserChoice != 2 || Data.UserChoice != 3)) { User.UserChoiceInstructions(Data.UserChoice); // In case user chose unrecognized option _userInput = Console.ReadLine() ?? string.Empty; Data.UserChoice = (_userInput == string.Empty || !int.TryParse(_userInput, out r)) ? 4 : Convert.ToInt32(_userInput); } Data.RepeatProcess = (Data.UserChoice == 1 || Data.UserChoice == 2 || Data.UserChoice == 3) ? false : true; } while (Data.RepeatProcess); User.UserChoiceInstructions(Data.UserChoice); //When recognized option is chosen, program keeps running Data.UserFileListInput = Console.ReadLine() ?? string.Empty; if (User.AcquireTypeOfUserInpput(Data.UserChoice, Data.UserFileListInput) != null) { Unscramble.MatchesFound(Data.ScrambledWords); //Looks for matches if there wasnt an error in file path case User.RepeatProgram(); //Does user want to repeat the prorgam? } } while (Data.ContinueWordUnscrambler); //User.PrintArray(Data.Dictionary); //Console.ReadKey(); } catch (Exception ex) { Console.WriteLine(Constants.ErrorCaught + ex.Message); } }
public void SwapPositionWorks() { var unscrambler = new Unscrambler(); Assert.Equal("abcde", unscrambler.Unscramble("ebcda", new[] { SampleOps.Swap4With0 })); }
public void ScramblingWithSequenceWorks() { var unscrambler = new Unscrambler(); Assert.Equal("abcde", unscrambler.Unscramble("abdec", SampleOps.Sequence.Where(op => !(op is RotateByLetter)))); }
public void ReverseWorks() { var unscrambler = new Unscrambler(); Assert.Equal("edcba", unscrambler.Unscramble("abcde", new[] { SampleOps.Reverse0Through4 })); }
public void SwapLetterWorks() { var unscrambler = new Unscrambler(); Assert.Equal("ebcda", unscrambler.Unscramble("edcba", new[] { SampleOps.SwapDWithB })); }