OSDN Git Service

境界チェック不具合修正,UBX特化の座標コンストラクタ廃止,パケット実装の拡充と修正
[yubeshi/yubeshi.git] / YubeshiTest / ParserTest.cs
index c054d17..e4ed3cb 100755 (executable)
@@ -8,16 +8,70 @@
 using System;\r
 using System.Collections.Generic;\r
 using System.Text;\r
+using Yubeshi;\r
 using NUnit.Framework;\r
 \r
 namespace YubeshiTest\r
 {\r
     public class ParserTest\r
     {\r
+        private static OctetString noise;\r
+        \r
+        static ParserTest()\r
+        {\r
+            noise = new OctetString(100);\r
+            for (int i = 0; i < noise.Length; ++i)\r
+            {\r
+                noise[i] = (byte)(i & 0x7F | 0x80);\r
+            }\r
+            noise[52, -1] = NmeaTest.SamplePackets.Dummy;\r
+            noise[79, -1] = UbxTest.SamplePackets.Dummy;\r
+        }\r
+\r
         [Test]\r
-        public void Parse()\r
+        public void Noise()\r
         {\r
-        \r
+            Parser parser = new Parser();\r
+            UnknownPacket p;\r
+\r
+            parser.Push(noise);\r
+\r
+            p = parser.Peek();\r
+            Assert.IsNull(p);\r
+        }\r
+\r
+        [Test]\r
+        public void NoisePacketsNoise()\r
+        {\r
+            Parser parser = new Parser();\r
+            UnknownPacket p;\r
+\r
+            OctetString data = noise;\r
+            data += NmeaTest.SamplePackets.GpDtm;\r
+            data += UbxTest.SamplePackets.NavClock;\r
+            data += noise;\r
+\r
+            parser.Push(data);\r
+\r
+            int length = 0;\r
+            while (null != (p = parser.Peek()))\r
+            {\r
+                if (p is Yubeshi.Nmea.GpDtm)\r
+                {\r
+                    break;\r
+                }\r
+                Assert.IsTrue(p is UnknownPacket);\r
+                length += p.Raw.Length;\r
+            }\r
+            Assert.AreEqual(noise.Length, length);\r
+\r
+            Assert.IsTrue(p is Yubeshi.Nmea.GpDtm);\r
+\r
+            p = parser.Peek();\r
+            Assert.IsTrue(p is Yubeshi.Ubx.NavClock);\r
+\r
+            p = parser.Peek();\r
+            Assert.IsNull(p);\r
         }\r
     }\r
 }\r