Skip to content

Instantly share code, notes, and snippets.

@hoorayimhelping
Created December 24, 2015 15:26
Show Gist options
  • Select an option

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

Select an option

Save hoorayimhelping/cd5740e1a3ea4b92c256 to your computer and use it in GitHub Desktop.
diff --git a/js/maps/solar_system.js b/js/maps/solar_system.js
index d7ff7c4..331aaa4 100644
--- a/js/maps/solar_system.js
+++ b/js/maps/solar_system.js
@@ -71,6 +71,14 @@ var SolarSystem = function() {
uranus_transfer: new Node('Uranus Transfer'),
low_uranus_orbit: new Node('Low Uranus Orbit'),
uranus: new Node('Uranus'),
+
+ neptune_transfer: new Node('Neptune Transfer'),
+ low_neptune_orbit: new Node('Low Neptune Orbit'),
+ neptune: new Node('Neptune'),
+
+ sun_transfer: new Node('Sun Transfer'),
+ low_sun_orbit: new Node('Low Sun Orbit'),
+ sun: new Node('Sun')
};
this.edges = {
@@ -132,7 +140,13 @@ var SolarSystem = function() {
low_titan_orbit_titan_landing: newEdge({ deltav: 7600, name: 'low_titan_orbit-titan_landing' }),
earth_transfer_uranus_transfer: newEdge({ deltav: 5280, name: 'earth_transfer-uranus_transfer' }),
- uranus_transfer_low_uranus_orbit: newEdge({ deltav: 6120, name: 'uranus_transfer-low_uranus_orbit' })
+ uranus_transfer_low_uranus_orbit: newEdge({ deltav: 6120, name: 'uranus_transfer-low_uranus_orbit' }),
+
+ earth_transfer_neptune_transfer: newEdge({ deltav: 5390, name: 'earth_transfer-neptune_transfer' }),
+ neptune_transfer_low_neptune_orbit: newEdge({ deltav: 6750, name: 'neptune_transfer-low_neptune_orbit' }),
+
+ earth_transfer_sun_transfer: newEdge({ deltav: 196080, name: 'earth_transfer-sun_transfer' }),
+ sun_transfer_low_sun_orbit: newEdge({ deltav: 636080, name: 'sun_transfer-low_sun_orbit' })
};
};
@@ -210,6 +224,14 @@ SolarSystem.prototype = {
// uranus
graph.addEdge(edges.earth_transfer_uranus_transfer, nodes.earth_transfer, nodes.uranus_transfer);
graph.addEdge(edges.uranus_transfer_low_uranus_orbit, nodes.uranus_transfer, nodes.low_uranus_orbit);
+
+ // neptune
+ graph.addEdge(edges.earth_transfer_neptune_transfer, nodes.earth_transfer, nodes.neptune_transfer);
+ graph.addEdge(edges.neptune_transfer_low_neptune_orbit, nodes.neptune_transfer, nodes.low_neptune_orbit);
+
+ // sun
+ graph.addEdge(edges.earth_transfer_sun_transfer, nodes.earth_transfer, nodes.sun_transfer);
+ graph.addEdge(edges.sun_transfer_low_sun_orbit, nodes.sun_transfer, nodes.low_sun_orbit);
}
};
diff --git a/test/solar_system.js b/test/solar_system.js
index 55c1e0a..bd5057b 100644
--- a/test/solar_system.js
+++ b/test/solar_system.js
@@ -389,4 +389,46 @@ describe("one-way trips from earth", function() {
expect(total_value).to.equal(expected_value);
});
});
+
+ describe("to neptonian space", function() {
+ it("calculates the delta-v to neptune transfer orbit", function() {
+ var total_value = graph.walk(nodes.earth, nodes.neptune_transfer);
+ var expected_value = edges.low_earth_orbit.value +
+ edges.low_earth_orbit_earth_transfer.value +
+ edges.earth_transfer_neptune_transfer.value;
+
+ expect(total_value).to.equal(expected_value);
+ });
+
+ it("calculates the delta-v to low neptune orbit", function() {
+ var total_value = graph.walk(nodes.earth, nodes.low_neptune_orbit);
+ var expected_value = edges.low_earth_orbit.value +
+ edges.low_earth_orbit_earth_transfer.value +
+ edges.earth_transfer_neptune_transfer.value +
+ edges.neptune_transfer_low_neptune_orbit.value;
+
+ expect(total_value).to.equal(expected_value);
+ });
+ });
+
+ describe("to solar space", function() {
+ it("calculates the delta-v to sun transfer orbit", function() {
+ var total_value = graph.walk(nodes.earth, nodes.sun_transfer);
+ var expected_value = edges.low_earth_orbit.value +
+ edges.low_earth_orbit_earth_transfer.value +
+ edges.earth_transfer_sun_transfer.value;
+
+ expect(total_value).to.equal(expected_value);
+ });
+
+ it("calculates the delta-v to low sun orbit", function() {
+ var total_value = graph.walk(nodes.earth, nodes.low_sun_orbit);
+ var expected_value = edges.low_earth_orbit.value +
+ edges.low_earth_orbit_earth_transfer.value +
+ edges.earth_transfer_sun_transfer.value +
+ edges.sun_transfer_low_sun_orbit.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