Created
September 14, 2015 20:39
-
-
Save hoorayimhelping/133fcaf0009167b68314 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/data/solar_system.js b/js/data/solar_system.js | |
index 91a18a6..ba9eb16 100644 | |
--- a/js/data/solar_system.js | |
+++ b/js/data/solar_system.js | |
@@ -1,53 +1,48 @@ | |
var Node = require('../src/node'); | |
var Edge = require('../src/edge'); | |
-var newNode = function(id) { | |
- var node = new Node(); | |
- node.id = id; | |
- | |
- return node; | |
-}; | |
- | |
var newEdge = function(options) { | |
return new Edge(options.deltav, options.name); | |
}; | |
// values taken from http://i.imgur.com/SqdzxzF.png | |
-var nodes = { | |
- earth: newNode('Earth'), | |
- leo: newNode('Low Earth Orbit'), | |
- geo_transfer: newNode('Geostationary Transfer'), | |
- geostationary: newNode('Geostationary Orbit'), | |
- moon_transfer: newNode('Moon Transfer'), | |
- low_moon_orbit: newNode('Low Moon Orbit'), | |
- earth_transfer: newNode('Earth Transfer'), | |
- mars_transfer: newNode('Mars Transfer'), | |
- deimos_transfer: newNode('Deimos Transfer'), | |
- low_deimos_orbit: newNode('Low Deimos Orbit'), | |
- deimos: newNode('Deimos') | |
-}; | |
+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'), | |
+ moon_transfer: new Node('Moon Transfer'), | |
+ low_moon_orbit: new Node('Low Moon Orbit'), | |
+ earth_transfer: new Node('Earth Transfer'), | |
+ mars_transfer: new Node('Mars Transfer'), | |
+ deimos_transfer: new Node('Deimos Transfer'), | |
+ low_deimos_orbit: new Node('Low Deimos Orbit'), | |
+ deimos: new Node('Deimos') | |
+ }; | |
-var 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' }), | |
- 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' }) | |
+ 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' }), | |
+ 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' }) | |
+ }; | |
}; | |
-var reset = function() { | |
- return { | |
- nodes, | |
- edges | |
+ | |
+SolarSystem.prototype = { | |
+ resetNodes: function() { | |
+ for (var node in this.nodes) { | |
+ this.nodes[node].visited = false; | |
+ } | |
} | |
}; | |
// es6 !! | |
-module.exports = { | |
- nodes, edges, reset | |
-}; | |
\ No newline at end of file | |
+module.exports = new SolarSystem(); | |
\ No newline at end of file | |
diff --git a/js/src/node.js b/js/src/node.js | |
index 9964b57..9c03707 100644 | |
--- a/js/src/node.js | |
+++ b/js/src/node.js | |
@@ -1,7 +1,5 @@ | |
-var Node = function(options) { | |
- this.props = options || {}; | |
- | |
- this.id = new Date().getTime(); | |
+var Node = function(id) { | |
+ this.id = id; | |
this.edges = []; | |
this.visited = false; | |
}; | |
diff --git a/js/test/graph.js b/js/test/graph.js | |
index 5b3e2e1..6675cb2 100644 | |
--- a/js/test/graph.js | |
+++ b/js/test/graph.js | |
@@ -54,6 +54,7 @@ describe("walking the graph", function(t) { | |
describe("walking the solar system delta v graph from earth to mars transfer orbit", function(t) { | |
t.plan(1); | |
+ solar_system.resetNodes(); | |
var total_value = graph.walk(nodes.earth, nodes.mars_transfer); | |
var expected_value = edges.low_earth_orbit.value + | |
edges.leo_earth_transfer.value + | |
@@ -63,14 +64,13 @@ describe("walking the graph", function(t) { | |
total_value, | |
expected_value | |
); | |
- | |
- graph.resetNodes(); | |
t.end(); | |
}); | |
describe("walking the solar system delta v graph from earth to deimos", function(t) { | |
t.plan(1); | |
+ solar_system.resetNodes(); | |
var total_value = graph.walk(nodes.earth, nodes.deimos); | |
var expected_value = edges.low_earth_orbit.value + | |
@@ -84,8 +84,6 @@ describe("walking the graph", function(t) { | |
total_value, | |
expected_value | |
); | |
- | |
- graph.resetNodes(); | |
t.end(); | |
}); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment