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); } }