Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 public void InvalidParam()
 {
     Assert.Throws <ArgumentNullException>(() => TleLine2Parser.Parse(""));
 }
Пример #4
0
 public void ParamToLong()
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => TleLine2Parser.Parse("1998-067PC               "));
 }