/// <summary> /// Initializes a new instance of the <see cref="T:RedBlueGames.MulliganRenamer.CountByLetterOperation"/> class. /// This is a clone constructor, copying the values from one to another. /// </summary> /// <param name="operationToCopy">Operation to copy.</param> public CountByLetterOperation(CountByLetterOperation operationToCopy) { this.DoNotCarryOver = operationToCopy.DoNotCarryOver; this.StartingCount = operationToCopy.StartingCount; this.Increment = operationToCopy.Increment; this.preset = operationToCopy.preset; this.countSequence = new string[operationToCopy.CountSequence.Length]; operationToCopy.countSequence.CopyTo(this.countSequence, 0); this.Prepend = operationToCopy.Prepend; }
public void Rename_EmptySequence_AddsNothing() { // Arrange string name = "Blah"; var countByLetterOp = new CountByLetterOperation(); var expected = new RenameResult() { new Diff("Blah", DiffOperation.Equal) }; // Act var result = countByLetterOp.Rename(name, 0); // Assert Assert.AreEqual(expected, result); }
public void Rename_UppercaseAddFirstToEmpty_AddsA() { // Arrange string name = string.Empty;; var countByLetterOp = new CountByLetterOperation(); countByLetterOp.SetCountSequencePreset(CountByLetterOperation.StringPreset.UppercaseAlphabet); var expected = new RenameResult() { new Diff("A", DiffOperation.Insertion) }; // Act var result = countByLetterOp.Rename(name, 0); // Assert Assert.AreEqual(expected, result); }
public void Rename_NullTarget_Adds() { // Arrange string name = null; var countByLetterOp = new CountByLetterOperation(); countByLetterOp.SetCountSequence(new string[] { "A" }); var expected = new RenameResult() { new Diff("A", DiffOperation.Insertion) }; // Act var result = countByLetterOp.Rename(name, 0); // Assert Assert.AreEqual(expected, result); }
public void Rename_Increment_CountsByIncrement() { // Arrange string name = string.Empty;; var countByLetterOp = new CountByLetterOperation(); countByLetterOp.SetCountSequence(new string[] { "X", "Y", "Z" }); countByLetterOp.Increment = 2; var expected = new RenameResult() { new Diff("XY", DiffOperation.Insertion) }; // Act var result = countByLetterOp.Rename(name, 2); // Assert Assert.AreEqual(expected, result); }
public void Rename_DoNotCarryOver_LoopsToNext() { // Arrange string name = string.Empty;; var countByLetterOp = new CountByLetterOperation(); countByLetterOp.SetCountSequence(new string[] { "X", "Y", "Z" }); countByLetterOp.DoNotCarryOver = true; var expected = new RenameResult() { new Diff("X", DiffOperation.Insertion) }; // Act var result = countByLetterOp.Rename(name, 3); // Assert Assert.AreEqual(expected, result); }
public void Rename_StartingFromBB_NextIsBC() { // Arrange string name = string.Empty;; var countByLetterOp = new CountByLetterOperation(); countByLetterOp.SetCountSequencePreset(CountByLetterOperation.StringPreset.UppercaseAlphabet); countByLetterOp.StartingCount = 53; var expected = new RenameResult() { new Diff("BC", DiffOperation.Insertion) }; // Act var result = countByLetterOp.Rename(name, 1); // Assert Assert.AreEqual(expected, result); }
public void Rename_Lowercase_AddsAllLetters() { // Arrange string name = string.Empty;; var countByLetterOp = new CountByLetterOperation(); countByLetterOp.SetCountSequencePreset(CountByLetterOperation.StringPreset.LowercaseAlphabet); // Act / Assert for (int i = 0; i < 25; ++i) { var result = countByLetterOp.Rename(name, i); var letter = (char)('a' + i); var expected = new RenameResult() { new Diff(letter.ToString(), DiffOperation.Insertion) }; Assert.AreEqual(expected, result); } }
public void Rename_UppercaseAddFirstToSomethingPrefixed_PrependsA() { // Arrange string name = "Something";; var countByLetterOp = new CountByLetterOperation(); countByLetterOp.SetCountSequencePreset(CountByLetterOperation.StringPreset.UppercaseAlphabet); countByLetterOp.Prepend = true; var expected = new RenameResult() { new Diff("A", DiffOperation.Insertion), new Diff("Something", DiffOperation.Equal) }; // Act var result = countByLetterOp.Rename(name, 0); // Assert Assert.AreEqual(expected, result); }
/// <summary> /// Clone this instance. /// </summary> /// <returns>A clone of this instance</returns> public virtual IRenameOperation Clone() { var clone = new CountByLetterOperation(this); return(clone); }
/// <summary> /// Initializes a new instance of the <see cref="T:RedBlueGames.MulliganRenamer.AddStringSequenceOperation"/> class. /// This is a clone constructor, copying the values from one to another. /// </summary> /// <param name="operationToCopy">Operation to copy.</param> public AddStringSequenceOperation(CountByLetterOperation operationToCopy) : base(operationToCopy) { }