view 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 source

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 );
});