Skip to content

Instantly share code, notes, and snippets.

@hoorayimhelping
Created December 24, 2015 04:13
Show Gist options
  • Select an option

  • Save hoorayimhelping/9c5ab6dc4a1870439b78 to your computer and use it in GitHub Desktop.

Select an option

Save hoorayimhelping/9c5ab6dc4a1870439b78 to your computer and use it in GitHub Desktop.
diff --git a/js/maps/solar_system.js b/js/maps/solar_system.js
index 2526c9b..1fe224a 100644
--- a/js/maps/solar_system.js
+++ b/js/maps/solar_system.js
@@ -24,6 +24,10 @@ var SolarSystem = function() {
low_venus_orbit: new Node('Low Venus Orbit'),
venus: new Node('Venus'),
+ mercury_transfer: new Node('Mercuryr Transfer'),
+ low_mercury_orbit: new Node('Low Mercuryr Orbit'),
+ mercury: new Node('Mercuryr'),
+
mars_transfer: new Node('Mars Transfer'),
low_mars_orbit: new Node('Low Mars Orbit'),
mars: new Node('Mars'),
@@ -53,6 +57,10 @@ var SolarSystem = function() {
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_mercury_transfer: newEdge({ deltav: 2340, name: 'earth_transfer-mercury_transfer' }),
+ mercury_transfer_low_mercury_orbit: newEdge({ deltav: 7530, name: 'mercury_transfer-low_mercury_orbit' }),
+ low_mercury_orbit_mercury_landing: newEdge({ deltav: 3060, name: 'low_mercury_orbit-mercury_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' }),
@@ -92,6 +100,11 @@ SolarSystem.prototype = {
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);
+ // mercury
+ graph.addEdge(edges.earth_transfer_mercury_transfer, nodes.earth_transfer, nodes.mercury_transfer);
+ graph.addEdge(edges.mercury_transfer_low_mercury_orbit, nodes.mercury_transfer, nodes.low_mercury_orbit);
+ graph.addEdge(edges.low_mercury_orbit_mercury_landing, nodes.low_mercury_orbit, nodes.mercury);
+
// 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);
diff --git a/test/solar_system.js b/test/solar_system.js
index 3e8289a..8f2926a 100644
--- a/test/solar_system.js
+++ b/test/solar_system.js
@@ -74,6 +74,38 @@ describe("one-way trips from earth", function() {
});
});
+ describe("to mercurian space", function() {
+ it("calculates the delta-v to mercury transfer orbit", function() {
+ var total_value = graph.walk(nodes.earth, nodes.mercury_transfer);
+ var expected_value = edges.low_earth_orbit.value +
+ edges.low_earth_orbit_earth_transfer.value +
+ edges.earth_transfer_mercury_transfer.value;
+
+ expect(total_value).to.equal(expected_value);
+ });
+
+ it("calculates the delta-v to low mercury orbit", function() {
+ var total_value = graph.walk(nodes.earth, nodes.low_mercury_orbit);
+ var expected_value = edges.low_earth_orbit.value +
+ edges.low_earth_orbit_earth_transfer.value +
+ edges.earth_transfer_mercury_transfer.value +
+ edges.mercury_transfer_low_mercury_orbit.value;
+
+ expect(total_value).to.equal(expected_value);
+ });
+
+ it("calculates the delta-v to a mercury landing", function() {
+ var total_value = graph.walk(nodes.earth, nodes.mercury);
+ var expected_value = edges.low_earth_orbit.value +
+ edges.low_earth_orbit_earth_transfer.value +
+ edges.earth_transfer_mercury_transfer.value +
+ edges.mercury_transfer_low_mercury_orbit.value +
+ edges.low_mercury_orbit_mercury_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