public void TrainDrawingInfoClassLineVertexesPropertyGetMethodOnlyReturnsDistinctVertexesWhereVertexObjectsAreSharedBetweenLines() { TrainDrawingInfo testObject = new TrainDrawingInfo(); int vertexCount = _rnd.Next(10) + 1; int lineCount = _rnd.Next(10) + vertexCount; VertexInformation[] vertexSource = new VertexInformation[vertexCount]; bool[] vertexesUsed = new bool[vertexCount]; for (int i = 0; i < vertexCount; ++i) { vertexSource[i] = GetVertexInformation(testObject); } for (int i = 0; i < lineCount; ++i) { int firstIndex = _rnd.Next(vertexCount); int secondIndex = _rnd.Next(vertexCount); testObject.Lines.Add(new LineCoordinates(vertexSource[firstIndex], vertexSource[secondIndex])); vertexesUsed[firstIndex] = true; vertexesUsed[secondIndex] = true; } List <VertexInformation> vertexList = vertexSource.Where((v, i) => vertexesUsed[i]).ToList(); List <VertexInformation> testOutput = testObject.LineVertexes.ToList(); Assert.AreEqual(vertexList.Count, testOutput.Count); foreach (VertexInformation vi in testOutput) { Assert.IsTrue(vertexList.Contains(vi)); vertexList.Remove(vi); } }