diff options
Diffstat (limited to 'Examples/test-suite/javascript/virtual_poly_runme.js')
-rw-r--r-- | Examples/test-suite/javascript/virtual_poly_runme.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Examples/test-suite/javascript/virtual_poly_runme.js b/Examples/test-suite/javascript/virtual_poly_runme.js new file mode 100644 index 000000000..7cdb03930 --- /dev/null +++ b/Examples/test-suite/javascript/virtual_poly_runme.js @@ -0,0 +1,44 @@ +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; +} |