Skip to content

Instantly share code, notes, and snippets.

@GeoffCrittenden
Forked from dbc-challenges/zoo.js
Last active December 24, 2015 04:28
Show Gist options
  • Save GeoffCrittenden/6743646 to your computer and use it in GitHub Desktop.
Save GeoffCrittenden/6743646 to your computer and use it in GitHub Desktop.
//------------------------------------------------------------------------------------------------------------------
// YOUR CODE: Create your Zoo "object literal" and Animal "constructor" and "prototypes" here.
//------------------------------------------------------------------------------------------------------------------
function Animal() {
this.name = "Kangaroo";
};
Animal.prototype.identify = function() {
return "I am a Human with 2 legs.";
};
Zoo = {
init: function() {},
bipeds: function() {
return [0,0,0];
},
quadrupeds: function() {
return [0,0];
}
};
//------------------------------------------------------------------------------------------------------------------
// DRIVER CODE: Do **NOT** change anything below this point. Your task is to implement code above to make this work.
//------------------------------------------------------------------------------------------------------------------
function assert(test, message) {
if (!test) {
throw "ERROR: " + message;
}
return true;
}
var animals = [
new Animal("Human", 2),
new Animal("Monkey", 2),
new Animal("Kangaroo", 2),
new Animal("Horse", 4),
new Animal("Cow", 4),
new Animal("Centipede", 100)
];
Zoo.init(animals);
assert(
Zoo.bipeds().length === 3, "the Zoo should have 3 bipeds"
);
assert(
Zoo.quadrupeds().length === 2, "the Zoo should have 2 bipeds"
);
assert(
animals[0].identify() === "I am a Human with 2 legs.", "humans have 2 legs"
);
assert(
animals[2].name === "Kangaroo", "expected 'Kangaroo'"
);
assert(
animals[0].identify === animals[5].identify, "only one implementation of the identify() function should exist"
);
@GeoffCrittenden
Copy link
Author

I was trying to approach this from a test-driven standpoint, and I realized that the challenge can be completed by "cheating." As written, the entire driver code passes. I'm sure that it isn't what was intended, though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment