private void Parse(string input) { this.points.Clear(); for (int i = 0; i < input.Length;) { SkipWhitespace(input, ref i); if (!DecimalDegree.Parse(input, ref i, out double longitude)) { break; } if (!SkipSeparator(input, ref i) || !DecimalDegree.Parse(input, ref i, out double latitude)) { break; } if (SkipSeparator(input, ref i) && DecimalDegree.Parse(input, ref i, out double altitude)) { this.points.Add(new Vector(latitude, longitude, altitude)); } else { this.points.Add(new Vector(latitude, longitude)); } } }
public void ShouldTruncateInsignificantDigits(string value) { int index = 0; bool result = DecimalDegree.Parse(value, ref index, out double parsed); Assert.That(result, Is.True); Assert.That(parsed, Is.EqualTo(double.Parse(value, NumberFormatInfo.InvariantInfo))); }
public void ShouldReadAsMuchAsPossible() { int index = 1; bool result = DecimalDegree.Parse(",123,", ref index, out double parsed); Assert.That(result, Is.True); Assert.That(index, Is.EqualTo(4)); Assert.That(parsed, Is.EqualTo(123)); }
public void ShouldParseValidFormats(string value, double expected) { int index = 0; bool result = DecimalDegree.Parse(value, ref index, out double parsed); Assert.That(result, Is.True); Assert.That(index, Is.EqualTo(value.Length)); Assert.That(parsed, Is.EqualTo(expected)); }