53 lines
1.0 KiB
JavaScript
53 lines
1.0 KiB
JavaScript
|
|
/**
|
|
* Module dependencies.
|
|
*/
|
|
|
|
var should = require('../');
|
|
|
|
function test(name, fn){
|
|
try {
|
|
fn();
|
|
} catch (err) {
|
|
console.log(' \x1b[31m%s', name);
|
|
console.log(' %s\x1b[0m', err.stack);
|
|
return;
|
|
}
|
|
console.log(' √ \x1b[32m%s\x1b[0m', name);
|
|
}
|
|
|
|
function Point(x, y) {
|
|
this.x = x;
|
|
this.y = y;
|
|
this.sub = function(other){
|
|
return new Point(
|
|
this.x - other.x
|
|
, this.y - other.y);
|
|
}
|
|
}
|
|
|
|
console.log();
|
|
|
|
test('new Point(x, y)', function(){
|
|
var point = new Point(50, 100);
|
|
point.should.be.an.instanceof(Point);
|
|
point.should.have.property('x', 50);
|
|
point.should.have.property('y', 100);
|
|
});
|
|
|
|
test('Point#sub()', function(){
|
|
var a = new Point(50, 100)
|
|
, b = new Point(20, 50);
|
|
a.sub(b).should.be.an.instanceof(Point);
|
|
a.sub(b).should.not.equal(a);
|
|
a.sub(b).should.not.equal(b);
|
|
a.sub(b).should.have.property('x', 30);
|
|
a.sub(b).should.have.property('y', 50);
|
|
});
|
|
|
|
test('Point#add()', function(){
|
|
var point = new Point(50, 100);
|
|
point.should.respondTo('add');
|
|
});
|
|
|
|
console.log(); |