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'); }
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)); }
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); }
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'); }
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); }
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'); }
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'); }