Created
December 20, 2015 18:28
-
-
Save hoorayimhelping/444ce56b9e75bbb4a08a 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 c884617..ea5dd0b 100644 | |
| --- a/js/maps/solar_system.js | |
| +++ b/js/maps/solar_system.js | |
| @@ -10,37 +10,41 @@ var newEdge = function(options) { | |
| var SolarSystem = function() { | |
| this.nodes = { | |
| earth: new Node('Earth'), | |
| - leo: new Node('Low Earth Orbit'), | |
| - geo_transfer: new Node('Geostationary Transfer'), | |
| - geostationary: new Node('Geostationary Orbit'), | |
| + low_earth_orbit: new Node('Low Earth Orbit'), | |
| + geostationary_transfer: new Node('Geostationary Transfer'), | |
| + geostationary_orbit: new Node('Geostationary Orbit'), | |
| moon_transfer: new Node('Moon Transfer'), | |
| low_moon_orbit: new Node('Low Moon Orbit'), | |
| moon: new Node('Moon'), | |
| earth_transfer: new Node('Earth Transfer'), | |
| mars_transfer: new Node('Mars Transfer'), | |
| + low_mars_orbit: new Node('Low Mars Orbit'), | |
| + mars: new Node('Mars'), | |
| deimos_transfer: new Node('Deimos Transfer'), | |
| low_deimos_orbit: new Node('Low Deimos Orbit'), | |
| deimos: new Node('Deimos'), | |
| phobos_transfer: new Node('Phobos Transfer'), | |
| low_phobos_orbit: new Node('Low Phobos Orbit'), | |
| - phobos: new Node('Phobos'), | |
| + phobos: new Node('Phobos') | |
| }; | |
| this.edges = { | |
| low_earth_orbit: newEdge({ deltav: 9400, name: 'low_earth_orbit' }), | |
| - leo_geo_transfer: newEdge({ deltav: 2440, name: 'leo-geo_transfer' }), | |
| - geo_transfer_geo_orbit: newEdge({ deltav: 1470, name: 'geostationary_transfer-geostationary_orbit' }), | |
| - leo_moon_transfer: newEdge({ deltav: 3260, name: 'leo-moon_transfer' }), | |
| - moon_transfer_lmo: newEdge({ deltav: 680, name: 'moon_transfer-low_moon_orbit' }), | |
| - moon_landing: newEdge({ deltav: 1730, name: 'moon-landing' }), | |
| - leo_earth_transfer: newEdge({ deltav: 3210, name: 'leo-earth_transfer' }), | |
| + low_earth_orbit_geostationary_transfer: newEdge({ deltav: 2440, name: 'low_earth_orbit-geostationary_transfer' }), | |
| + geostationary_transfer_geo_orbit: newEdge({ deltav: 1470, name: 'geostationary_transfer-geostationary_orbit' }), | |
| + low_earth_orbit_moon_transfer: newEdge({ deltav: 3260, name: 'low_earth_orbit-moon_transfer' }), | |
| + 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_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' }), | |
| mars_transfer_deimos_transfer: newEdge({ deltav: 340, name: 'mars_transfer-deimos_transfer' }), | |
| deimos_transfer_low_deimos_orbit: newEdge({ deltav: 652, name: 'deimos_transfer-low_deimos_orbit' }), | |
| - deimos_landing: newEdge({ deltav: 4, name: 'deimos_landing' }), | |
| + low_deimos_orbit_deimos_landing: newEdge({ deltav: 4, name: 'low_deimos_orbit-deimos_landing' }), | |
| mars_transfer_phobos_transfer: newEdge({ deltav: 740, name: 'mars_transfer-phobos_transfer'}), | |
| phobos_transfer_low_phobos_orbit: newEdge({ deltav: 543, name: 'mars_transfer-phobos_transfer'}), | |
| - phobos_landing: newEdge({ deltav: 8, name: 'phobos_landing'}) | |
| + low_phobos_orbit_phobos_landing: newEdge({ deltav: 8, name: 'low_phobos_orbit-phobos_landing'}) | |
| }; | |
| }; | |
| @@ -52,25 +56,28 @@ SolarSystem.prototype = { | |
| }, | |
| buildGraph: function(graph, edges, nodes) { | |
| - graph.addEdge(edges.low_earth_orbit, nodes.earth, nodes.leo); | |
| + graph.addEdge(edges.low_earth_orbit, nodes.earth, nodes.low_earth_orbit); | |
| - graph.addEdge(edges.leo_geo_transfer, nodes.leo, nodes.geo_transfer); | |
| - graph.addEdge(edges.geo_transfer_geo_orbit, nodes.geo_transfer, nodes.geostationary); | |
| + graph.addEdge(edges.low_earth_orbit_geostationary_transfer, nodes.low_earth_orbit, nodes.geostationary_transfer); | |
| + graph.addEdge(edges.geostationary_transfer_geo_orbit, nodes.geostationary_transfer, nodes.geostationary_orbit); | |
| - graph.addEdge(edges.leo_moon_transfer, nodes.leo, nodes.moon_transfer); | |
| - graph.addEdge(edges.moon_transfer_lmo, nodes.moon_transfer, nodes.low_moon_orbit); | |
| - graph.addEdge(edges.moon_landing, nodes.low_moon_orbit, nodes.moon); | |
| + graph.addEdge(edges.low_earth_orbit_moon_transfer, nodes.low_earth_orbit, nodes.moon_transfer); | |
| + graph.addEdge(edges.moon_transfer_low_moon_orbit, nodes.moon_transfer, nodes.low_moon_orbit); | |
| + graph.addEdge(edges.low_moon_orbit_moon_landing, nodes.low_moon_orbit, nodes.moon); | |
| - graph.addEdge(edges.leo_earth_transfer, nodes.leo, nodes.earth_transfer); | |
| + 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); | |
| + 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); | |
| + | |
| graph.addEdge(edges.mars_transfer_deimos_transfer, nodes.mars_transfer, nodes.deimos_transfer); | |
| graph.addEdge(edges.deimos_transfer_low_deimos_orbit, nodes.deimos_transfer, nodes.low_deimos_orbit); | |
| - graph.addEdge(edges.deimos_landing, nodes.low_deimos_orbit, nodes.deimos); | |
| + graph.addEdge(edges.low_deimos_orbit_deimos_landing, nodes.low_deimos_orbit, nodes.deimos); | |
| graph.addEdge(edges.mars_transfer_phobos_transfer, nodes.mars_transfer, nodes.phobos_transfer); | |
| graph.addEdge(edges.phobos_transfer_low_phobos_orbit, nodes.phobos_transfer, nodes.low_phobos_orbit); | |
| - graph.addEdge(edges.phobos_landing, nodes.low_phobos_orbit, nodes.phobos); | |
| + graph.addEdge(edges.low_phobos_orbit_phobos_landing, nodes.low_phobos_orbit, nodes.phobos); | |
| } | |
| }; | |
| diff --git a/test/solar_system.js b/test/solar_system.js | |
| index 15389ce..5cd1f48 100644 | |
| --- a/test/solar_system.js | |
| +++ b/test/solar_system.js | |
| @@ -16,18 +16,18 @@ describe("one-way trips from earth", function() { | |
| }); | |
| it("calculates the delta-v to geostationary orbit", function() { | |
| - var total_value = graph.walk(nodes.earth, nodes.geostationary); | |
| + var total_value = graph.walk(nodes.earth, nodes.geostationary_orbit); | |
| var expected_value = edges.low_earth_orbit.value + | |
| - edges.leo_geo_transfer.value + | |
| - edges.geo_transfer_geo_orbit.value; | |
| + edges.low_earth_orbit_geostationary_transfer.value + | |
| + edges.geostationary_transfer_geo_orbit.value; | |
| expect(total_value).to.equal(expected_value); | |
| }); | |
| describe("to lunar space", function() { | |
| var earth_to_low_lunar_orbit_delta_v = edges.low_earth_orbit.value + | |
| - edges.leo_moon_transfer.value + | |
| - edges.moon_transfer_lmo.value; | |
| + edges.low_earth_orbit_moon_transfer.value + | |
| + edges.moon_transfer_low_moon_orbit.value; | |
| it("calulates the delta-v to lunar orbit", function() { | |
| var total_value = graph.walk(nodes.earth, nodes.low_moon_orbit); | |
| @@ -38,7 +38,7 @@ describe("one-way trips from earth", function() { | |
| it("calculates the delta-v to a lunar surface landing", function() { | |
| var total_value = graph.walk(nodes.earth, nodes.moon); | |
| - expect(total_value).to.equal(earth_to_low_lunar_orbit_delta_v + edges.moon_landing.value); | |
| + expect(total_value).to.equal(earth_to_low_lunar_orbit_delta_v + edges.low_moon_orbit_moon_landing.value); | |
| }); | |
| }); | |
| @@ -46,18 +46,39 @@ describe("one-way trips from earth", function() { | |
| it("calculates the delta-v to mars transfer orbit", function() { | |
| var total_value = graph.walk(nodes.earth, nodes.mars_transfer); | |
| var expected_value = edges.low_earth_orbit.value + | |
| - edges.leo_earth_transfer.value + | |
| + edges.low_earth_orbit_earth_transfer.value + | |
| edges.earth_transfer_mars_transfer.value; | |
| expect(total_value).to.equal(expected_value); | |
| }); | |
| + it("calculates the delta-v to low mars orbit", function() { | |
| + var total_value = graph.walk(nodes.earth, nodes.low_mars_orbit); | |
| + var expected_value = edges.low_earth_orbit.value + | |
| + edges.low_earth_orbit_earth_transfer.value + | |
| + edges.earth_transfer_mars_transfer.value + | |
| + edges.mars_transfer_low_mars_orbit.value; | |
| + | |
| + expect(total_value).to.equal(expected_value); | |
| + }); | |
| + | |
| + it("calculates the delta-v to a mars landing", function() { | |
| + var total_value = graph.walk(nodes.earth, nodes.mars); | |
| + var expected_value = edges.low_earth_orbit.value + | |
| + edges.low_earth_orbit_earth_transfer.value + | |
| + edges.earth_transfer_mars_transfer.value + | |
| + edges.mars_transfer_low_mars_orbit.value + | |
| + edges.low_mars_orbit_mars_landing.value; | |
| + | |
| + expect(total_value).to.equal(expected_value); | |
| + }); | |
| + | |
| describe("to deimos space", function() { | |
| it("calculates the delta-v to low deimos orbit", function() { | |
| var total_value = graph.walk(nodes.earth, nodes.low_deimos_orbit); | |
| var expected_value = edges.low_earth_orbit.value + | |
| - edges.leo_earth_transfer.value + | |
| + edges.low_earth_orbit_earth_transfer.value + | |
| edges.earth_transfer_mars_transfer.value + | |
| edges.mars_transfer_deimos_transfer.value + | |
| edges.deimos_transfer_low_deimos_orbit.value; | |
| @@ -69,11 +90,11 @@ describe("one-way trips from earth", function() { | |
| var total_value = graph.walk(nodes.earth, nodes.deimos); | |
| var expected_value = edges.low_earth_orbit.value + | |
| - edges.leo_earth_transfer.value + | |
| + edges.low_earth_orbit_earth_transfer.value + | |
| edges.earth_transfer_mars_transfer.value + | |
| edges.mars_transfer_deimos_transfer.value + | |
| edges.deimos_transfer_low_deimos_orbit.value + | |
| - edges.deimos_landing.value; | |
| + edges.low_deimos_orbit_deimos_landing.value; | |
| expect(total_value).to.equal(expected_value); | |
| }); | |
| @@ -83,7 +104,7 @@ describe("one-way trips from earth", function() { | |
| var total_value = graph.walk(nodes.earth, nodes.low_phobos_orbit); | |
| var expected_value = edges.low_earth_orbit.value + | |
| - edges.leo_earth_transfer.value + | |
| + edges.low_earth_orbit_earth_transfer.value + | |
| edges.earth_transfer_mars_transfer.value + | |
| edges.mars_transfer_phobos_transfer.value + | |
| edges.phobos_transfer_low_phobos_orbit.value; | |
| @@ -95,11 +116,11 @@ describe("one-way trips from earth", function() { | |
| var total_value = graph.walk(nodes.earth, nodes.phobos); | |
| var expected_value = edges.low_earth_orbit.value + | |
| - edges.leo_earth_transfer.value + | |
| + edges.low_earth_orbit_earth_transfer.value + | |
| edges.earth_transfer_mars_transfer.value + | |
| edges.mars_transfer_phobos_transfer.value + | |
| edges.phobos_transfer_low_phobos_orbit.value + | |
| - edges.phobos_landing.value; | |
| + edges.low_phobos_orbit_phobos_landing.value; | |
| expect(total_value).to.equal(expected_value); | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment