--- /dev/null
+
+/**
+ * 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();
\ No newline at end of file