Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions topics/about_arrays.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,34 @@ module("About Arrays (topics/about_arrays.js)");

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

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

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

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

test("stack methods", function() {
var stack = [];
stack.push("first");
stack.push("second");

equal(__, stack.pop(), 'what will be the first value popped off the stack?');
equal(__, stack.pop(), 'what will be the second value popped off the stack?');
equal("second", stack.pop(), 'what will be the first value popped off the stack?');
equal("first", stack.pop(), 'what will be the second value popped off the stack?');
});

test("queue methods", function() {
Expand All @@ -38,6 +38,6 @@ test("queue methods", function() {
queue.push("second");
queue.unshift("third");

equal(__, queue.shift(), 'what will be shifted out first?');
equal(__, queue.shift(), 'what will be shifted out second?');
equal("third", queue.shift(), 'what will be shifted out first?');
equal("first", queue.shift(), 'what will be shifted out second?');
});
6 changes: 3 additions & 3 deletions topics/about_asserts.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
module("About Asserts (topics/about_asserts.js)");

test("ok", function() {
ok(__ === true, 'what will satisfy the ok assertion?');
ok(true === true, 'what will satisfy the ok assertion?');
});

test("not ok", function() {
ok(__ === false, 'what is a false value?');
ok(false === false, 'what is a false value?');
});

test("equal", function() {
equal(__, 1 + 1, 'what will satisfy the equal assertion?');
equal(2, 1 + 1, 'what will satisfy the equal assertion?');
});
4 changes: 2 additions & 2 deletions topics/about_assignment.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
module("About Assignment (topics/about_assignment.js)");

test("local variables", function() {
var temp = __;
var temp = 1;
equal(temp, 1, "Assign a value to the variable temp");
});

test("global variables", function() {
temp = 1; // Not using var is an example. Always use var in practise.
equal(window.__, temp, 'global variables are assigned to the window object');
equal(window.temp, temp, 'global variables are assigned to the window object');
});
16 changes: 8 additions & 8 deletions topics/about_control_structures.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@ test("if", function() {
if (2 > 0) {
isPositive = true;
}
equal(__, isPositive, 'what is the value of isPositive?');
equal(true, isPositive, 'what is the value of isPositive?');
});

test("for", function() {
var counter = 10;
for (var i = 1; i <= 3; i++) {
counter = counter + i;
}
equal(__, counter, 'what is the value of counter?');
equal(16, counter, 'what is the value of counter?');
});

test("for in", function() {
Expand All @@ -27,15 +27,15 @@ test("for in", function() {
for (var property_name in person) {
result = result + property_name;
}
equal(__, result, 'what is the value of result?');
equal("nameage", result, 'what is the value of result?');
});

test("ternary operator", function() {
var fruit = true ? "apple" : "orange";
equal(__, fruit, 'what is the value of fruit?');
equal("apple", fruit, 'what is the value of fruit?');

fruit = false ? "apple" : "orange";
equal(__, fruit, 'now what is the value of fruit?');
equal("orange", fruit, 'now what is the value of fruit?');
});

test("switch", function() {
Expand All @@ -48,7 +48,7 @@ test("switch", function() {
result = 2;
break;
}
equal(__, result, 'what is the value of result?');
equal(2, result, 'what is the value of result?');
});

test("switch default case", function() {
Expand All @@ -64,10 +64,10 @@ test("switch default case", function() {
result = "Merry";
break;
}
equal(__, result, 'what is the value of result?');
equal("Merry", result, 'what is the value of result?');
});

test("null coalescing", function() {
var result = null || "a value";
equal(__, result, 'what is the value of result?');
equal("a value", result, 'what is the value of result?');
});
12 changes: 6 additions & 6 deletions topics/about_equality.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@
module("About Equality (topics/about_equality.js)");

test("numeric equality", function() {
equal(3 + __, 7, "");
equal(3 + 4, 7, "");
});

test("string equality", function() {
equal("3" + __, "37", "concatenate the strings");
equal("3" + 7, "37", "concatenate the strings");
});

test("equality without type coercion", function() {
ok(3 === __, 'what is exactly equal to 3?');
ok(3 === 3, 'what is exactly equal to 3?');
});

test("equality with type coercion", function() {
ok(3 == "__", 'what string is equal to 3, with type coercion?');
ok(3 == "3", 'what string is equal to 3, with type coercion?');
});

test("string literals", function() {
equal(__, "frankenstein", "quote types are interchangable, but must match.");
equal(__, 'frankenstein', "quote types can use both single and double quotes.");
equal("frankenstein", "frankenstein", "quote types are interchangable, but must match.");
equal('frankenstein', 'frankenstein', "quote types can use both single and double quotes.");
});
10 changes: 5 additions & 5 deletions topics/about_numbers.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ module("About Numbers (topics/about_numbers.js)");
test("types", function() {
var typeOfIntegers = typeof(6);
var typeOfFloats = typeof(3.14159);
equal(__, typeOfIntegers === typeOfFloats, 'are ints and floats the same type?');
equal(__, typeOfIntegers, 'what is the javascript numeric type?');
equal(__, 1.0, 'what is a integer number equivalent to 1.0?');
equal(true, typeOfIntegers === typeOfFloats, 'are ints and floats the same type?');
equal("number", typeOfIntegers, 'what is the javascript numeric type?');
equal(1, 1.0, 'what is a integer number equivalent to 1.0?');
});

test("NaN", function() {
var resultOfFailedOperations = 7/'apple';
equal(__, isNaN(resultOfFailedOperations), 'what will satisfy the equals assertion?');
equal(__, resultOfFailedOperations == NaN, 'is NaN == NaN?');
equal(true, isNaN(resultOfFailedOperations), 'what will satisfy the equals assertion?');
equal(false, resultOfFailedOperations == NaN, 'is NaN == NaN?');
});
18 changes: 9 additions & 9 deletions topics/about_objects.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,30 @@ module("About Objects (topics/about_objects.js)");

test("object type", function() {
var empty_object = {};
equal(__, typeof(empty_object), 'what is the type of an object?');
equal("object", typeof(empty_object), 'what is the type of an object?');
});

test("object literal notation", function() {
var person = {
__:__,
__:__
name:"Amory Blaine",
age:102
};
equal("Amory Blaine", person.name, "what is the person's name?");
equal(102, person.age, "what is the person's age?");
});

test("dynamically adding properties", function() {
var person = {};
person.__ = "Amory Blaine";
person.__ = 102;
person.name = "Amory Blaine";
person.age = 102;
equal("Amory Blaine", person.name, "what is the person's name?");
equal(102, person.age, "what is the person's age?");
});
});

test("adding properties from strings", function() {
var person = {};
person["__"] = "Amory Blaine";
person["__"] = 102;
person["name"] = "Amory Blaine";
person["age"] = 102;
equal("Amory Blaine", person.name, "what is the person's name?");
equal(102, person.age, "what is the person's age?");
});
Expand All @@ -36,7 +36,7 @@ test("adding functions", function() {
name: "Amory Blaine",
age: 102,
toString: function() {
return __; // HINT: use the 'this' keyword to refer to the person object.
return "I " + this.name + " am " + this.age + " years old." // HINT: use the 'this' keyword to refer to the person object.
}
};
equal("I Amory Blaine am 102 years old.", person.toString(), "what should the toString function be?");
Expand Down
10 changes: 5 additions & 5 deletions topics/about_operators.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ test("addition", function() {
for (var i = 0; i <= 5; i++) {
result = result + i;
}
equal(__, result, "What is the value of result?");
equal(15, result, "What is the value of result?");
});

test("assignment addition", function() {
Expand All @@ -16,23 +16,23 @@ test("assignment addition", function() {
//the code below is just like saying result = result + i; but is more concise
result += i;
}
equal(__, result, "What is the value of result?");
equal(15, result, "What is the value of result?");
});

test("subtraction", function() {
var result = 5;
for (var i = 0; i <= 2; i++) {
result = result - i;
}
equal(__, result, "What is the value of result?");
equal(2, result, "What is the value of result?");
});

test("assignment subtraction", function() {
var result = 5;
for (var i = 0; i <= 2; i++) {
result -= i;
}
equal(__, result, "What is the value of result?");
equal(2, result, "What is the value of result?");
});

//Assignment operators are available for multiplication and division as well
Expand All @@ -43,5 +43,5 @@ test("modulus", function() {
var x = 5;
//again this is exactly the same as result = result % x
result %= x;
equal(__, result, "What is the value of result?");
equal(0, result, "What is the value of result?");
});
12 changes: 6 additions & 6 deletions topics/about_strings.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,31 @@ module("About Strings (topics/about_strings.js)");
test("delimiters", function() {
var singleQuotedString = 'apple';
var doubleQuotedString = "apple";
equal(__, singleQuotedString === doubleQuotedString, 'are the two strings equal?');
equal(true, singleQuotedString === doubleQuotedString, 'are the two strings equal?');
});

test("concatenation", function() {
var fruit = "apple";
var dish = "pie";
equal(__, fruit + " " + dish, 'what is the value of fruit + " " + dish?');
equal("apple pie", fruit + " " + dish, 'what is the value of fruit + " " + dish?');
});

test("character Type", function() {
var characterType = typeof("Amory".charAt(1)); // typeof will be explained in about reflection
equal(__, characterType, 'Javascript has no character type');
equal("string", characterType, 'Javascript has no character type');
});

test("escape character", function() {
var stringWithAnEscapedCharacter = "\u0041pple";
equal(__, stringWithAnEscapedCharacter, 'what is the value of stringWithAnEscapedCharacter?');
equal("Apple", stringWithAnEscapedCharacter, 'what is the value of stringWithAnEscapedCharacter?');
});

test("string.length", function() {
var fruit = "apple";
equal(__, fruit.length, 'what is the value of fruit.length?');
equal(5, fruit.length, 'what is the value of fruit.length?');
});

test("slice", function() {
var fruit = "apple pie";
equal(__, fruit.slice(0,5), 'what is the value of fruit.slice(0,5)?');
equal("apple", fruit.slice(0,5), 'what is the value of fruit.slice(0,5)?');
});
8 changes: 4 additions & 4 deletions topics/about_truthyness.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@ module("About Truthyness (topics/about_truthyness.js)");

test("truthyness of positive numbers", function() {
var oneIsTruthy = 1 ? true : false;
equal(__, oneIsTruthy, 'is one truthy?');
equal(true, oneIsTruthy, 'is one truthy?');
});

test("truthyness of negative numbers", function() {
var negativeOneIsTruthy = -1 ? true : false;
equal(__, negativeOneIsTruthy, 'is -1 truthy?');
equal(true, negativeOneIsTruthy, 'is -1 truthy?');
});

test("truthyness of zero", function() {
var zeroIsTruthy = 0 ? true : false;
equal(__, zeroIsTruthy, 'is 0 truthy?');
equal(false, zeroIsTruthy, 'is 0 truthy?');
});

test("truthyness of null", function() {
var nullIsTruthy = null ? true : false;
equal(__, nullIsTruthy, 'is null truthy?');
equal(false, nullIsTruthy, 'is null truthy?');
});