diff core-javascript/javascript-exercises/class-exercises.js @ 191:74fc8108fef2 javascript-exercises

$ python py/remove_answers.py
author jf3243
date Mon, 21 Nov 2011 16:50:01 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core-javascript/javascript-exercises/class-exercises.js	Mon Nov 21 16:50:01 2011 +0000
@@ -0,0 +1,65 @@
+var something;
+
+TEST('class attributes', function()
+{
+    var point = {};
+    var Point = SimpleClass(point);
+
+    point.__init__ = function(x, y){
+        // Please write your answer here.
+    };
+
+    var pt = Point(3, 4);
+
+    assert( pt.x === 3 );
+    assert( pt.y === 4 );
+
+    // Please write your answer here.
+
+    assert( pt.__classname__ === 'Point' );
+
+});
+
+
+TEST('class methods', function()
+{
+    var actual;
+    var expect;
+
+    var person = {};
+    var Person = SimpleClass(person);
+
+    // Initialise a person to have a name and an age.
+    // Please write your answer here.
+
+
+    // Test that we can create a person.
+    var someone = Person('Bob', 26);
+    assert( someone.name === 'Bob' );
+    assert( someone.age === 26 );
+
+
+    // Add a greet method to the class prototype object.
+    person.greet = function(another){
+        // Please write your answer here.
+    };
+
+    // Test the greet method.
+    var tmp =  someone.greet('Alice');
+    assert( tmp = something );
+
+    // Add a goodbye method.
+    // Please write your answer here.
+
+    expect = "Goodbye, Alice. It was a pleasure to meet you.";
+    actual = someone.goodbye('Alice');
+    assert( actual === expect );
+
+    // A flaw in the design.
+    var someone_else = Person('Alice', 31);
+
+    // Figure out what we get.
+    expect = something;
+    actual = someone.greet(someone_else);
+    assert( actual === expect );
+});