public static TwoLineElementsModel Parse(Queue <string> lines) { if (lines == null) { throw new ArgumentNullException("lines"); } if (lines.Count < Convert.ToInt32(Properties.Resources.TLE_MIN_LINE_COUNT)) { throw new ArgumentException("Lines count is to low"); } //TLE could be 3 lines, first than is satellite name if (lines.Count > Convert.ToInt32(Properties.Resources.TLE_MAX_LINE_COUNT)) { throw new ArgumentOutOfRangeException("lines has more than 3 positions"); } TwoLineElementsModel tle = new TwoLineElementsModel(); if (lines.Count > Convert.ToInt32(Properties.Resources.TLE_MIN_LINE_COUNT)) { tle.Name = TleLine0Parser.Parse(lines.Dequeue()); } tle.Line1 = TleLine1Parser.Parse(lines.Dequeue()); tle.Line2 = TleLine2Parser.Parse(lines.Dequeue()); return(tle); }
public void ValidParam() { //24 length var line = "2 25544 51.6416 247.4627 0006703 130.5360 325.0288 15.72125391563537"; var result = TleLine2Parser.Parse(line); Assert.Equal(2, result.Line); Assert.Equal(51.6416, result.Inclination); Assert.Equal(247.4627, result.Ascension); Assert.Equal(0006703, result.Eccentricity); Assert.Equal(130.5360, result.Perigee); Assert.Equal(325.0288, result.Anomaly); Assert.Equal(15.72125391, result.Motion); Assert.Equal(56353, result.Revolution); }
public void InvalidParam() { Assert.Throws <ArgumentNullException>(() => TleLine2Parser.Parse("")); }
public void ParamToLong() { Assert.Throws <ArgumentOutOfRangeException>(() => TleLine2Parser.Parse("1998-067PC ")); }