| var virtual_poly = require("virtual_poly"); | |
| d = new virtual_poly.NDouble(3.5); | |
| i = new virtual_poly.NInt(2); | |
| // | |
| // the copy methods return the right polymorphic types | |
| // | |
| dc = d.copy(); | |
| ic = i.copy(); | |
| if (d.get() != dc.get()) { | |
| throw new Error; | |
| } | |
| if (i.get() != ic.get()) { | |
| throw new Error; | |
| } | |
| virtual_poly.incr(ic); | |
| if ((i.get() + 1) != ic.get()) { | |
| throw new Error; | |
| } | |
| dr = d.ref_this(); | |
| if (d.get() != dr.get()) { | |
| throw new Error; | |
| } | |
| // | |
| // 'narrowing' also works | |
| // | |
| ddc = virtual_poly.NDouble.narrow(d.nnumber()); | |
| if (d.get() != ddc.get()) { | |
| throw new Error; | |
| } | |
| dic = virtual_poly.NInt.narrow(i.nnumber()); | |
| if (i.get() != dic.get()) { | |
| throw new Error; | |
| } |