public void TestAddNode()
        {
            Node testNode =new Node();
            testNode.Id = -1;
            testNode.Latitude = 0;
            testNode.Longitude = 0;

            var source = new MemoryDataSource();
            source.AddNode(testNode);

            // test if the node is actually there.
            Assert.AreEqual(testNode, source.GetNode(-1));

            // test if the node was not remove after getting it.
            Assert.AreEqual(testNode, source.GetNodes(new List<long>() { -1 })[0]);

            // test if the node is in the list of nodes.
            Assert.AreEqual(testNode, new List<Node>(source.GetNodes())[0]);

            // test if the node will be retrieved using a list of ids.
            var ids = new List<long>();
            ids.Add(-1);
            IList<Node> nodes = source.GetNodes(ids);
            Assert.IsNotNull(nodes);
            Assert.AreEqual(1, nodes.Count);
            Assert.AreEqual(testNode, nodes[0]);
        }
        /// <summary>
        /// Compares what is in the complete list against the objects in the reference source.
        /// </summary>
        /// <param name="expected"></param>
        /// <param name="actual"></param>
        private void Compare(MemoryDataSource expected, List<CompleteOsmGeo> actual)
        {
            List<CompleteOsmGeo> exectedList = new List<CompleteOsmGeo>();
            foreach (Node node in expected.GetNodes())
            {
                CompleteNode completeNode = CompleteNode.CreateFrom(node);
                if (completeNode != null)
                {
                    exectedList.Add(completeNode);
                }
            }
            foreach (Way way in expected.GetWays())
            {
                CompleteWay completeWay = CompleteWay.CreateFrom(way, expected);
                if (completeWay != null)
                {
                    exectedList.Add(completeWay);
                }
            }
            foreach (Relation relation in expected.GetRelations())
            {
                CompleteRelation completeRelation = CompleteRelation.CreateFrom(relation, expected);
                if (completeRelation != null)
                {
                    exectedList.Add(completeRelation);
                }
            }

            ComparisonHelpers.CompareComplete(exectedList, actual);
        }