Skip to content

Commit b03adbc

Browse files
author
beck410
committed
last Koan finished - about_reflections.js
1 parent 65ffae4 commit b03adbc

File tree

4 files changed

+42
-42
lines changed

4 files changed

+42
-42
lines changed

topics/about_arrays.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,34 @@ module("About Arrays (topics/about_arrays.js)");
22

33
test("array literal syntax and indexing", function() {
44
var favouriteThings = ["cellar door", 42, true]; // note that array elements do not have to be of the same type
5-
equal(__, favouriteThings[0], 'what is in the first position of the array?');
6-
equal(__, favouriteThings[1], 'what is in the second position of the array?');
7-
equal(__, favouriteThings[2], 'what is in the third position of the array?');
5+
equal("cellar door", favouriteThings[0], 'what is in the first position of the array?');
6+
equal(42, favouriteThings[1], 'what is in the second position of the array?');
7+
equal(true, favouriteThings[2], 'what is in the third position of the array?');
88
});
99

1010
test("array type", function() {
11-
equal(__, typeof([]), 'what is the type of an array?');
11+
equal("object", typeof([]), 'what is the type of an array?');
1212
});
1313

1414
test("length", function() {
1515
var collection = ['a','b','c'];
16-
equal(__, collection.length, 'what is the length of the collection array?');
16+
equal( 3, collection.length, 'what is the length of the collection array?');
1717
});
1818

1919
test("splice", function() {
2020
var daysOfWeek = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
21-
var workingWeek = daysOfWeek.splice(__, __);
22-
ok(workingWeek.equalTo([__]), 'what is the value of workingWeek?');
23-
ok(daysOfWeek.equalTo([__]), 'what is the value of daysOfWeek?');
21+
var workingWeek = daysOfWeek.splice(0, 5);
22+
ok(workingWeek.equalTo([ 'Monday','Tuesday', 'Wednesday', 'Thursday', 'Friday' ]), 'what is the value of workingWeek?');
23+
ok(daysOfWeek.equalTo(['Saturday','Sunday']), 'what is the value of daysOfWeek?');
2424
});
2525

2626
test("stack methods", function() {
2727
var stack = [];
2828
stack.push("first");
2929
stack.push("second");
3030

31-
equal(__, stack.pop(), 'what will be the first value popped off the stack?');
32-
equal(__, stack.pop(), 'what will be the second value popped off the stack?');
31+
equal("second", stack.pop(), 'what will be the first value popped off the stack?');
32+
equal("first", stack.pop(), 'what will be the second value popped off the stack?');
3333
});
3434

3535
test("queue methods", function() {
@@ -38,6 +38,6 @@ test("queue methods", function() {
3838
queue.push("second");
3939
queue.unshift("third");
4040

41-
equal(__, queue.shift(), 'what will be shifted out first?');
42-
equal(__, queue.shift(), 'what will be shifted out second?');
41+
equal("third", queue.shift(), 'what will be shifted out first?');
42+
equal("first", queue.shift(), 'what will be shifted out second?');
4343
});

topics/about_objects.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,30 @@ module("About Objects (topics/about_objects.js)");
33

44
test("object type", function() {
55
var empty_object = {};
6-
equal(__, typeof(empty_object), 'what is the type of an object?');
6+
equal("object", typeof(empty_object), 'what is the type of an object?');
77
});
88

99
test("object literal notation", function() {
1010
var person = {
11-
__:__,
12-
__:__
11+
name:"Amory Blaine",
12+
age:102
1313
};
1414
equal("Amory Blaine", person.name, "what is the person's name?");
1515
equal(102, person.age, "what is the person's age?");
1616
});
1717

1818
test("dynamically adding properties", function() {
1919
var person = {};
20-
person.__ = "Amory Blaine";
21-
person.__ = 102;
20+
person.name = "Amory Blaine";
21+
person.age = 102;
2222
equal("Amory Blaine", person.name, "what is the person's name?");
2323
equal(102, person.age, "what is the person's age?");
2424
});
2525

2626
test("adding properties from strings", function() {
2727
var person = {};
28-
person["__"] = "Amory Blaine";
29-
person["__"] = 102;
28+
person["name"] = "Amory Blaine";
29+
person["age"] = 102;
3030
equal("Amory Blaine", person.name, "what is the person's name?");
3131
equal(102, person.age, "what is the person's age?");
3232
});
@@ -36,7 +36,7 @@ test("adding functions", function() {
3636
name: "Amory Blaine",
3737
age: 102,
3838
toString: function() {
39-
return __; // HINT: use the 'this' keyword to refer to the person object.
39+
return "I " + this.name + " am " + this.age + " years old."; // HINT: use the 'this' keyword to refer to the person object.
4040
}
4141
};
4242
equal("I Amory Blaine am 102 years old.", person.toString(), "what should the toString function be?");

topics/about_prototype_chain.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,37 +27,37 @@ child.b = 2;
2727
* */
2828

2929
test("Is there an 'a' and 'b' own property on child?", function () {
30-
equal(__, child.hasOwnProperty('a'), 'child.hasOwnProperty(\'a\')?');
31-
equal(__, child.hasOwnProperty('b'), 'child.hasOwnProperty(\'b\')?');
30+
equal(true, child.hasOwnProperty('a'), 'child.hasOwnProperty(\'a\')?');
31+
equal(true, child.hasOwnProperty('b'), 'child.hasOwnProperty(\'b\')?');
3232
});
3333

3434
test("Is there an 'a' and 'b' property on child?", function () {
35-
equal(__, child.a, 'what is \'a\' value?');
36-
equal(__, child.b, 'what is \'b\' value?');
35+
equal(1, child.a, 'what is \'a\' value?');
36+
equal(2, child.b, 'what is \'b\' value?');
3737
});
3838

3939
test("If 'b' was removed, whats b value?", function () {
4040
delete child.b;
41-
equal(__, child.b, 'what is \'b\' value now?');
41+
equal(3, child.b, 'what is \'b\' value now?');
4242
});
4343

4444

4545
test("Is there a 'c' own property on child?", function () {
46-
equal(__, child.hasOwnProperty('c'), 'child.hasOwnProperty(\'c\')?');
46+
equal( false, child.hasOwnProperty('c'), 'child.hasOwnProperty(\'c\')?');
4747
});
4848

4949
// Is there a 'c' own property on child? No, check its prototype
5050
// Is there a 'c' own property on child.[[Prototype]]? Yes, its value is...
5151
test("Is there a 'c' property on child?", function () {
52-
equal(__, child.c, 'what is the value of child.c?');
52+
equal(4, child.c, 'what is the value of child.c?');
5353
});
5454

5555

5656
// Is there a 'd' own property on child? No, check its prototype
5757
// Is there a 'd' own property on child.[[Prototype]]? No, check it prototype
5858
// child.[[Prototype]].[[Prototype]] is null, stop searching, no property found, return...
5959
test("Is there an 'd' property on child?", function () {
60-
equal(__, child.d, 'what is the value of child.d?');
60+
equal(null, child.d, 'what is the value of child.d?');
6161
});
6262

6363

topics/about_reflection.js

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ var B = function() {
1111
B.prototype = new A();
1212

1313
test("typeof", function() {
14-
equal(__, typeof({}), 'what is the type of an empty object?');
15-
equal(__, typeof('apple'), 'what is the type of a string?');
16-
equal(__, typeof(-5), 'what is the type of -5?');
17-
equal(__, typeof(false), 'what is the type of false?');
14+
equal("object", typeof({}), 'what is the type of an empty object?');
15+
equal("string", typeof('apple'), 'what is the type of a string?');
16+
equal("number", typeof(-5), 'what is the type of -5?');
17+
equal("boolean", typeof(false), 'what is the type of false?');
1818
});
1919

2020
test("property enumeration", function() {
@@ -25,8 +25,8 @@ test("property enumeration", function() {
2525
keys.push(propertyName);
2626
values.push(person[propertyName]);
2727
}
28-
ok(keys.equalTo(['__','__','__']), 'what are the property names of the object?');
29-
ok(values.equalTo(['__',__,__]), 'what are the property values of the object?');
28+
ok(keys.equalTo(['name','age','unemployed']), 'what are the property names of the object?');
29+
ok(values.equalTo(['Amory Blaine',102,true]), 'what are the property values of the object?');
3030
});
3131

3232
test("hasOwnProperty", function() {
@@ -37,8 +37,8 @@ test("hasOwnProperty", function() {
3737
for (propertyName in b) {
3838
keys.push(propertyName);
3939
}
40-
equal(__, keys.length, 'how many elements are in the keys array?');
41-
deepEqual([__, __], keys, 'what are the properties of the array?');
40+
equal(2, keys.length, 'how many elements are in the keys array?');
41+
deepEqual(['bprop', 'aprop'], keys, 'what are the properties of the array?');
4242

4343
// hasOwnProperty returns true if the parameter is a property directly on the object,
4444
// but not if it is a property accessible via the prototype chain.
@@ -48,21 +48,21 @@ test("hasOwnProperty", function() {
4848
ownKeys.push(propertyName);
4949
}
5050
}
51-
equal(__, ownKeys.length, 'how many elements are in the ownKeys array?');
52-
deepEqual([__], ownKeys, 'what are the own properties of the array?');
51+
equal(1, ownKeys.length, 'how many elements are in the ownKeys array?');
52+
deepEqual(['bprop'], ownKeys, 'what are the own properties of the array?');
5353
});
5454

5555
test("constructor property", function () {
5656
var a = new A();
5757
var b = new B();
58-
equal(__, typeof(a.constructor), "what is the type of a's constructor?");
59-
equal(__, a.constructor.name, "what is the name of a's constructor?");
60-
equal(__, b.constructor.name, "what is the name of b's constructor?");
58+
equal("function", typeof(a.constructor), "what is the type of a's constructor?");
59+
equal("", a.constructor.name, "what is the name of a's constructor?");
60+
equal("", b.constructor.name, "what is the name of b's constructor?");
6161
});
6262

6363
test("eval", function() {
6464
// eval executes a string
6565
var result = "";
6666
eval("result = 'apple' + ' ' + 'pie'");
67-
equal(__, result, 'what is the value of result?');
67+
equal("apple pie", result, 'what is the value of result?');
6868
});

0 commit comments

Comments
 (0)