Ejemplo n.º 1
0
        public void EmitsEmptyStringTrailingNewline()
        {
            var first  = "";
            var second = "\n";

            CollectionAssert.AreEqual(new[] { "", "" }, StringComposer.ToLines(first, second).ToList());
        }
Ejemplo n.º 2
0
        public void CannotBackspaceOverNewline()
        {
            var first  = "a";
            var second = "bc\nde\b\b\b\bf";
            var actual = StringComposer.ToLines(first, second);

            CollectionAssert.AreEqual(new[] { "abc", "f" }, actual.ToList());
        }
Ejemplo n.º 3
0
        public void ErasesWithBackspaceAfterCr()
        {
            var first  = "x";
            var second = "xx\rx\b\b123";
            var actual = StringComposer.ToLines(first, second);

            Assert.AreEqual("123", actual.Single());
        }
Ejemplo n.º 4
0
        public void ErasesLeadingBeforeEmbeddedCr()
        {
            var original = "x";
            var withCr   = "xxx\r123";
            var actual   = StringComposer.ToLines(original, withCr);

            Assert.AreEqual("123", actual.Single());
        }
Ejemplo n.º 5
0
        public void ErasesFirstWhenLeadingCr()
        {
            var original = "x";
            var withCr   = "\r123";
            var actual   = StringComposer.ToLines(original, withCr);

            Assert.AreEqual("123", actual.Single());
        }
Ejemplo n.º 6
0
        public void CanComposeEmbeddedBackspaces()
        {
            var original     = "0";
            var withEmbedded = "1xx\b\b23";
            var actual       = StringComposer.ToLines(original, withEmbedded);

            Assert.AreEqual("0123", actual.Single());
        }
Ejemplo n.º 7
0
        public void CanComposeTooManyBackspaces()
        {
            var original      = "x";
            var withBackspace = "\b\b123";
            var actual        = StringComposer.ToLines(original, withBackspace);

            Assert.AreEqual("123", actual.Single());
        }
Ejemplo n.º 8
0
        public void CanComposeNoBackspaces()
        {
            var original      = "0";
            var withBackspace = "123";
            var actual        = StringComposer.ToLines(original, withBackspace);

            Assert.AreEqual("0123", actual.Single());
        }
Ejemplo n.º 9
0
        public void DoesNotEraseForCrLf()
        {
            var first  = "abc";
            var second = "def\r\nghi";
            var actual = StringComposer.ToLines(first, second);

            CollectionAssert.AreEqual(new[] { "abcdef", "ghi" }, actual.ToList());
        }
Ejemplo n.º 10
0
        public void DoesComposeMultipleCarriageReturns()
        {
            var first  = "ab";
            var second = "c\nde\rf\rg";
            var actual = StringComposer.ToLines(first, second);

            CollectionAssert.AreEqual(new[] { "abc", "g" }, actual.ToList());
        }
Ejemplo n.º 11
0
        public void CannotCarriageReturnOverNewline()
        {
            var first  = "ab";
            var second = "c\nd\re";
            var actual = StringComposer.ToLines(first, second);

            CollectionAssert.AreEqual(new[] { "abc", "e" }, actual.ToList());
        }
Ejemplo n.º 12
0
        public override object VisitStringValueRule(
            JimlParser.StringValueRuleContext context)
        {
            var stringComposer = new StringComposer(
                value: RemoveQuotes(
                    context.STRING().GetText()));

            return(stringComposer);
        }
Ejemplo n.º 13
0
        public CurrencyWordValueComposer ComposeIntegerExpression()
        {
            if ((int)currency == 0)
            {
                sb.Append(ZERO).Append(" ");
                return(this);
            }

            string[] groups = StringComposer.SplitNumber((int)currency).Reverse().ToArray();

            for (int i = 0; i < groups.Length; i++)
            {
                string s = BuildExpression(groups[i], i);
                sb.Insert(0, s);
            }

            return(this);
        }