예제 #1
0
 public void ParseDigits_MinimumNonDigits()
 {
     var value = new ValueCursor("1abc");
     Assert.True(value.MoveNext());
     int actual;
     Assert.True(value.ParseDigits(1, 2, out actual));
     Assert.AreEqual(1, actual);
     ValidateCurrentCharacter(value, 1, 'a');
 }
예제 #2
0
 public void ParseDigits_NonAscii_NeverMatches()
 {
     // Arabic-Indic digits 0 and 1. See
     // http://www.unicode.org/charts/PDF/U0600.pdf
     var value = new ValueCursor("\u0660\u0661");
     Assert.True(value.MoveNext());
     int actual;
     Assert.False(value.ParseDigits(1, 2, out actual));
 }
예제 #3
0
 public void ParseDigits_Minimum()
 {
     var value = new ValueCursor("1");
     value.MoveNext();
     int actual;
     Assert.True(value.ParseDigits(1, 2, out actual));
     Assert.AreEqual(1, actual);
     ValidateEndOfString(value);
 }
예제 #4
0
 public void ParseDigits_MaximumMoreDigits()
 {
     var value = new ValueCursor("1234");
     Assert.True(value.MoveNext());
     int actual;
     Assert.True(value.ParseDigits(1, 2, out actual));
     Assert.AreEqual(12, actual);
     ValidateCurrentCharacter(value, 2, '3');
 }
예제 #5
0
 public void ParseDigits_Maximum()
 {
     var value = new ValueCursor("12");
     Assert.True(value.MoveNext());
     int actual;
     Assert.True(value.ParseDigits(1, 2, out actual));
     Assert.AreEqual(12, actual);
 }
예제 #6
0
 public void ParseDigits_NoNumber()
 {
     var value = new ValueCursor("abc");
     Assert.True(value.MoveNext());
     int actual;
     Assert.False(value.ParseDigits(1, 2, out actual));
     ValidateCurrentCharacter(value, 0, 'a');
 }
예제 #7
0
 public void ParseDigits_TooFewDigits()
 {
     var value = new ValueCursor("a12b");
     Assert.True(value.MoveNext());
     ValidateCurrentCharacter(value, 0, 'a');
     Assert.True(value.MoveNext());
     int actual;
     Assert.False(value.ParseDigits(3, 3, out actual));
     ValidateCurrentCharacter(value, 1, '1');
 }