Skip to content

Instantly share code, notes, and snippets.

@hoorayimhelping
Created September 16, 2015 21:24
Show Gist options
  • Save hoorayimhelping/49872d4da46353266c91 to your computer and use it in GitHub Desktop.
Save hoorayimhelping/49872d4da46353266c91 to your computer and use it in GitHub Desktop.
diff --git a/js/maps/solar_system.js b/js/maps/solar_system.js
index ffed717..4f9e231 100644
--- a/js/maps/solar_system.js
+++ b/js/maps/solar_system.js
@@ -15,6 +15,7 @@ var SolarSystem = function() {
geostationary: 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'),
deimos_transfer: new Node('Deimos Transfer'),
@@ -28,11 +29,12 @@ var SolarSystem = function() {
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' }),
earth_transfer_mars_transfer: newEdge({ deltav: 1060, name: 'earth_transfer-mars_transfer' }),
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' }),
- low_deimos_orbit_deimos: newEdge({ deltav: 4, name: 'low_deimos_orbit_deimos' })
+ deimos_landing: newEdge({ deltav: 4, name: 'deimos_landing' })
};
};
@@ -41,6 +43,23 @@ SolarSystem.prototype = {
for (var node in this.nodes) {
this.nodes[node].visited = false;
}
+ },
+
+ buildGraph: function(graph, edges, nodes) {
+ graph.addEdge(edges.low_earth_orbit, nodes.earth, nodes.leo);
+
+ 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.leo_moon_transfer, nodes.leo, nodes.moon_transfer);
+ graph.addEdge(edges.moon_transfer_lmo, nodes.moon_transfer, nodes.low_moon_orbit);
+
+ graph.addEdge(edges.leo_earth_transfer, nodes.leo, nodes.earth_transfer);
+ graph.addEdge(edges.earth_transfer_mars_transfer, nodes.earth_transfer, nodes.mars_transfer);
+
+ 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);
}
};
diff --git a/js/test/graph.js b/js/test/graph.js
index 42c4da0..9d3e04b 100644
--- a/js/test/graph.js
+++ b/js/test/graph.js
@@ -6,23 +6,6 @@ var Edge = require('../graph/edge');
var solar_system = require('../maps/solar_system');
var kerbol_system = require('../maps/kerbol_system');
-var buildSolarSystemGraph = function(graph, edges, nodes) {
- graph.addEdge(edges.low_earth_orbit, nodes.earth, nodes.leo);
-
- 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.leo_moon_transfer, nodes.leo, nodes.moon_transfer);
- graph.addEdge(edges.moon_transfer_lmo, nodes.moon_transfer, nodes.low_moon_orbit);
-
- graph.addEdge(edges.leo_earth_transfer, nodes.leo, nodes.earth_transfer);
- graph.addEdge(edges.earth_transfer_mars_transfer, nodes.earth_transfer, nodes.mars_transfer);
-
- 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.low_deimos_orbit_deimos, nodes.low_deimos_orbit, nodes.deimos);
-};
-
describe("checking a graph for adjacency", function(t) {
t.plan(5);
@@ -49,7 +32,7 @@ describe("walking the graph", function(t) {
var nodes = solar_system.nodes;
var graph = new Graph();
- buildSolarSystemGraph(graph, edges, nodes);
+ solar_system.buildGraph(graph, edges, nodes);
describe("walking the solar system delta v graph from earth to mars transfer orbit", function(t) {
t.plan(1);
@@ -78,7 +61,7 @@ describe("walking the graph", function(t) {
edges.earth_transfer_mars_transfer.value +
edges.mars_transfer_deimos_transfer.value +
edges.deimos_transfer_low_deimos_orbit.value +
- edges.low_deimos_orbit_deimos.value;
+ edges.deimos_landing.value;
t.equals(
total_value,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment