| var friends = require("friends"); | |
| a = new friends.A(2); | |
| if (friends.get_val1(a) != 2) { | |
| throw new Error; | |
| } | |
| if (friends.get_val2(a) != 4) { | |
| throw new Error; | |
| } | |
| if (friends.get_val3(a) != 6) { | |
| throw new Error; | |
| } | |
| // nice overload working fine | |
| if (friends.get_val1(1, 2, 3) != 1) { | |
| throw new Error; | |
| } | |
| b = new friends.B(3); | |
| // David's case | |
| if (friends.mix(a, b) != 5) { | |
| throw new Error; | |
| } | |
| di = new friends.D_i(2); | |
| dd = new friends.D_d(3.3); | |
| // incredible template overloading working just fine | |
| if (friends.get_val1(di) != 2) { | |
| throw new Error; | |
| } | |
| if (friends.get_val1(dd) != 3.3) { | |
| throw new Error; | |
| } | |
| friends.set(di, 4); | |
| friends.set(dd, 1.3); | |
| if (friends.get_val1(di) != 4) { | |
| throw new Error; | |
| } | |
| if (friends.get_val1(dd) != 1.3) { | |
| throw new Error; | |
| } | |
| if (friends.chum_blah() != 1234) { | |
| throw new Error("failed"); | |
| } | |
| if (friends.mate_blah() != 4321) { | |
| throw new Error("failed"); | |
| } |