Created
December 20, 2015 18:54
-
-
Save hoorayimhelping/0e6e2e464c2820863225 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/js/maps/solar_system.js b/js/maps/solar_system.js | |
| index ea5dd0b..d464e79 100644 | |
| --- a/js/maps/solar_system.js | |
| +++ b/js/maps/solar_system.js | |
| @@ -17,6 +17,9 @@ var SolarSystem = function() { | |
| low_moon_orbit: new Node('Low Moon Orbit'), | |
| moon: new Node('Moon'), | |
| earth_transfer: new Node('Earth Transfer'), | |
| + venus_transfer: new Node('Venus Transfer'), | |
| + low_venus_orbit: new Node('Low Venus Orbit'), | |
| + venus: new Node('Venus'), | |
| mars_transfer: new Node('Mars Transfer'), | |
| low_mars_orbit: new Node('Low Mars Orbit'), | |
| mars: new Node('Mars'), | |
| @@ -36,6 +39,9 @@ var SolarSystem = function() { | |
| moon_transfer_low_moon_orbit: newEdge({ deltav: 680, name: 'moon_transfer-low_moon_orbit' }), | |
| low_moon_orbit_moon_landing: newEdge({ deltav: 1730, name: 'low_moon_orbit-moon_landing' }), | |
| low_earth_orbit_earth_transfer: newEdge({ deltav: 3210, name: 'low_earth_orbit-earth_transfer' }), | |
| + earth_transfer_venus_transfer: newEdge({ deltav: 640, name: 'earth_transfer-venus_transfer' }), | |
| + venus_transfer_low_venus_orbit: newEdge({ deltav: 2940, name: 'venus_transfer-low_venus_orbit' }), | |
| + low_venus_orbit_venus_landing: newEdge({ deltav: 2000, name: 'low_venus_orbit-venus_landing' }), | |
| earth_transfer_mars_transfer: newEdge({ deltav: 1060, name: 'earth_transfer-mars_transfer' }), | |
| mars_transfer_low_mars_orbit: newEdge({ deltav: 1440, name: 'mars_transfer-low_mars_orbit' }), | |
| low_mars_orbit_mars_landing: newEdge({ deltav: 2000, name: 'low_mars_orbit-mars_landing' }), | |
| @@ -56,6 +62,7 @@ SolarSystem.prototype = { | |
| }, | |
| buildGraph: function(graph, edges, nodes) { | |
| + // earth | |
| graph.addEdge(edges.low_earth_orbit, nodes.earth, nodes.low_earth_orbit); | |
| graph.addEdge(edges.low_earth_orbit_geostationary_transfer, nodes.low_earth_orbit, nodes.geostationary_transfer); | |
| @@ -66,8 +73,14 @@ SolarSystem.prototype = { | |
| graph.addEdge(edges.low_moon_orbit_moon_landing, nodes.low_moon_orbit, nodes.moon); | |
| graph.addEdge(edges.low_earth_orbit_earth_transfer, nodes.low_earth_orbit, nodes.earth_transfer); | |
| - graph.addEdge(edges.earth_transfer_mars_transfer, nodes.earth_transfer, nodes.mars_transfer); | |
| + // venus | |
| + graph.addEdge(edges.earth_transfer_venus_transfer, nodes.earth_transfer, nodes.venus_transfer); | |
| + graph.addEdge(edges.venus_transfer_low_venus_orbit, nodes.venus_transfer, nodes.low_venus_orbit); | |
| + graph.addEdge(edges.low_venus_orbit_venus_landing, nodes.low_venus_orbit, nodes.venus); | |
| + | |
| + // mars | |
| + graph.addEdge(edges.earth_transfer_mars_transfer, nodes.earth_transfer, nodes.mars_transfer); | |
| graph.addEdge(edges.mars_transfer_low_mars_orbit, nodes.mars_transfer, nodes.low_mars_orbit); | |
| graph.addEdge(edges.low_mars_orbit_mars_landing, nodes.low_mars_orbit, nodes.mars); | |
| diff --git a/test/solar_system.js b/test/solar_system.js | |
| index 5cd1f48..3e8289a 100644 | |
| --- a/test/solar_system.js | |
| +++ b/test/solar_system.js | |
| @@ -42,6 +42,38 @@ describe("one-way trips from earth", function() { | |
| }); | |
| }); | |
| + describe("to venutian space", function() { | |
| + it("calculates the delta-v to venus transfer orbit", function() { | |
| + var total_value = graph.walk(nodes.earth, nodes.venus_transfer); | |
| + var expected_value = edges.low_earth_orbit.value + | |
| + edges.low_earth_orbit_earth_transfer.value + | |
| + edges.earth_transfer_venus_transfer.value; | |
| + | |
| + expect(total_value).to.equal(expected_value); | |
| + }); | |
| + | |
| + it("calculates the delta-v to low venus orbit", function() { | |
| + var total_value = graph.walk(nodes.earth, nodes.low_venus_orbit); | |
| + var expected_value = edges.low_earth_orbit.value + | |
| + edges.low_earth_orbit_earth_transfer.value + | |
| + edges.earth_transfer_venus_transfer.value + | |
| + edges.venus_transfer_low_venus_orbit.value; | |
| + | |
| + expect(total_value).to.equal(expected_value); | |
| + }); | |
| + | |
| + it("calculates the delta-v to a venus landing", function() { | |
| + var total_value = graph.walk(nodes.earth, nodes.venus); | |
| + var expected_value = edges.low_earth_orbit.value + | |
| + edges.low_earth_orbit_earth_transfer.value + | |
| + edges.earth_transfer_venus_transfer.value + | |
| + edges.venus_transfer_low_venus_orbit.value + | |
| + edges.low_venus_orbit_venus_landing.value; | |
| + | |
| + expect(total_value).to.equal(expected_value); | |
| + }); | |
| + }); | |
| + | |
| describe("to martian space", function() { | |
| it("calculates the delta-v to mars transfer orbit", function() { | |
| var total_value = graph.walk(nodes.earth, nodes.mars_transfer); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment