Beispiel #1
0
 /// <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);
        }
Beispiel #10
0
        /// <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)
 {
 }