/// <summary> /// Creates and seeds a new part. /// </summary> /// <param name="item">The item this part should belong to.</param> /// <param name="location">The location.</param> /// <param name="baseText">The base text.</param> /// <returns>A new fragment.</returns> /// <exception cref="ArgumentNullException">item or location or /// baseText</exception> public override ITextLayerFragment GetFragment( IItem item, string location, string baseText) { if (item == null) { throw new ArgumentNullException(nameof(item)); } if (location == null) { throw new ArgumentNullException(nameof(location)); } if (baseText == null) { throw new ArgumentNullException(nameof(baseText)); } // find 1st letter int i = 0; while (i < baseText.Length) { if (char.IsLetter(baseText[i])) { break; } i++; } if (i == baseText.Length) { return(null); } // change it string standard = ChangeLetterAt(baseText, i); // create operation MspOperation op = new MspOperation { Operator = MspOperator.Replace, RangeA = new TextRange(i, 1), ValueA = new string(baseText[i], 1), ValueB = new string(standard[i], 1), Tag = _options?.Tags?.Length > 0 ? SeedHelper.RandomPickOneOf(_options.Tags) : null }; OrthographyLayerFragment fragment = new OrthographyLayerFragment { Location = location, Standard = standard }; fragment.Operations.Add(op.ToString()); return(fragment); }
public void ToString_Delete_Ok(string tag, string note, string expected) { MspOperation op = new MspOperation { Operator = MspOperator.Delete, RangeA = TextRange.Parse("2x3"), Tag = tag, Note = note }; Assert.Equal(expected, op.ToString()); }
public void ToString_Insert_Ok(string tag, string note, string expected) { MspOperation op = new MspOperation { Operator = MspOperator.Insert, RangeA = TextRange.Parse("2x0"), ValueB = "new", Tag = tag, Note = note }; Assert.Equal(expected, op.ToString()); }
public void ToString_ReplaceWithValueA_Ok(string tag, string note, string expected) { MspOperation op = new MspOperation { Operator = MspOperator.Replace, RangeA = TextRange.Parse("2x3"), ValueA = "old", ValueB = "new", Tag = tag, Note = note }; Assert.Equal(expected, op.ToString()); }