private void Initialize(ILevelControllerOptions options) { // Constructs all the in-level components, then stores the ones that'll be needed later in member variables. // Done this way rather than directly initializing the member variables because this way if they're reordered, // the compiler will complain if something's being constructed before its dependency. var surface = GeodesicSphereFactory.Build(options); var simulation = new SimulationController(surface, options); var cameraController = new CameraController(options); var meshManager = new MeshManager(surface); var cursorTracker = new CursorTracker(cameraController.Camera, meshManager); var fieldManipulator = new FieldManipulator(surface, cursorTracker, options); var colorMapView = new ColorMapView(surface, meshManager.Mesh, options); var particleMapView = new ParticleMapView(surface, options); var rawValuesView = new RawValuesView(cursorTracker); var timeDilationView = new TimeView(50, options.Timestep); var latLongGridView = new LatLongGridView(options.Radius); _simulationController = simulation; _colorMapView = colorMapView; _particleMapView = particleMapView; _rawValuesView = rawValuesView; _timeView = timeDilationView; _latLongGridView = latLongGridView; _cameraController = cameraController; _cursorTracker = cursorTracker; _fieldManipulator = fieldManipulator; }
public void TwelveFaces_ShouldHaveFiveVertices (IPolyhedronOptions options) { // Fixture setup var polyhedron = GeodesicSphereFactory.Build(options); // Exercise system var numberOfFacesWithFiveVertices = polyhedron.Faces.Count(face => face.Vertices.Count == 5); // Verify outcome Debug.WriteLine("Number of faces with five vertices is " + numberOfFacesWithFiveVertices); Assert.True(numberOfFacesWithFiveVertices == 12); // Teardown }
public void NumberOfFaces_If43FacesAreRequested_ShouldBe162() { // Fixture setup var options = new TestPolyhedronOptions { MinimumNumberOfFaces = 43, Radius = 1 }; var polyhedron = GeodesicSphereFactory.Build(options); // Exercise system var numberOfFaces = polyhedron.Faces.Count; // Verify outcome Debug.WriteLine("Number of faces is " + numberOfFaces); Assert.True(numberOfFaces == 162); // Teardown }
public void Vertices_ShouldHaveTheSameLengthsAsTheRadius (IPolyhedronOptions options) { // Fixture setup var polyhedron = GeodesicSphereFactory.Build(options); // Exercise system var vertices = polyhedron.Vertices; // Verify outcome var lengths = vertices.Select(vertex => vertex.Position.Norm()).ToList(); Debug.WriteLine("Lengths were " + TestUtilities.CollectionToString(lengths)); Assert.True(lengths.All(length => Number.AlmostEqual(length, options.Radius))); // Teardown }
public void EveryVertex_ShouldNeighbourThreeFaces (IPolyhedronOptions options) { // Fixture setup var polyhedron = GeodesicSphereFactory.Build(options); // Exercise system var numberOfVerticesWithThreeFaces = polyhedron.Vertices.Count(vertex => polyhedron.FacesOf(vertex).Count == 3); // Verify outcome var numberOfVertices = polyhedron.Vertices.Count; Debug.WriteLine("Number of vertices is " + numberOfVertices); Debug.WriteLine("Number of vertices neighbouring three faces is " + numberOfVerticesWithThreeFaces); Assert.True(numberOfVerticesWithThreeFaces == numberOfVertices); // Teardown }
public void EveryEdge_ShouldNeighbourTwoFaces (IPolyhedronOptions options) { // Fixture setup var polyhedron = GeodesicSphereFactory.Build(options); // Exercise system var numberOfEdgesWithThreeFaces = polyhedron.Edges.Count(edge => polyhedron.FacesOf(edge).Count == 2); // Verify outcome var numberOfEdges = polyhedron.Edges.Count; Debug.WriteLine("Number of edges is " + numberOfEdges); Debug.WriteLine("Number of edges neighbouring two faces is " + numberOfEdgesWithThreeFaces); Assert.True(numberOfEdgesWithThreeFaces == numberOfEdges); // Teardown }
public void NumbersOfVerticesAndEdgesAndFaces_ShouldSatisfyEulersFormula (IPolyhedronOptions options) { // Fixture setup var polyhedron = GeodesicSphereFactory.Build(options); // Exercise system var v = polyhedron.Vertices.Count; var e = polyhedron.Edges.Count; var f = polyhedron.Faces.Count; // Verify outcome Debug.WriteLine("Number of vertices: " + v); Debug.WriteLine("Number of edges: " + e); Debug.WriteLine("Number of faces: " + f); Assert.True(v - e + f == 2); // Teardown }