Exemplo n.º 1
0
        public void CloneValues1()
        {
            string line = "G11.1 Z22.22";
            var    test = new LineCommand();

            Assert.AreEqual(test.Parse(line), true);
            Assert.AreEqual(test.Comment, null);
            Assert.AreEqual(test.Original, line);
            Assert.AreEqual(test.Count, 2);

            var val = test.CloneValues();

            Assert.AreEqual(val.Count, 2);
            Assert.AreEqual(val[0].Key, 'G');
            Assert.AreEqual(val[0].Value, 11.1);
            Assert.AreEqual(val[0].FP, 1);
            Assert.AreEqual(val[0].Position, 0);
            Assert.AreEqual(val[1].Key, 'Z');
            Assert.AreEqual(val[1].Value, 22.22);
            Assert.AreEqual(val[1].FP, 2);
            Assert.AreEqual(val[1].Position, 1);

            // CloneValuesでもらったデータを変更したら、オリジナル側が変わっていないことも確認
            val[0].Value    = 22.3;
            val[0].FP       = 0;
            val[0].Position = 1;
            val[1].Value    = 33.3;
            val[1].FP       = 0;
            val[1].Position = 0;

            {
                Double value;
                int    pos;
                Assert.AreEqual(test.TryGetValue('G', out value, out pos), true);
                Assert.AreEqual(value, 11.1);
                Assert.AreEqual(pos, 0);
                Assert.AreEqual(test.GetFP('G'), 1);
            }
            {
                Double value;
                int    pos;
                Assert.AreEqual(test.TryGetValue('Z', out value, out pos), true);
                Assert.AreEqual(value, 22.22);
                Assert.AreEqual(pos, 1);
                Assert.AreEqual(test.GetFP('Z'), 2);
            }
            {
                Double value;
                int    pos;
                Assert.AreEqual(test.TryGetValue('A', out value, out pos), false);
                Assert.AreEqual(test.GetFP('A'), 0);
            }
        }