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