| package main |
| |
| import "swigtests/virtual_poly" |
| |
| func main() { |
| d := virtual_poly.NewNDouble(3.5) |
| i := virtual_poly.NewNInt(2) |
| |
| // the copy methods return the right polymorphic types |
| dc := d.Copy() |
| ic := i.Copy() |
| |
| if d.Get() != dc.Get() { |
| panic(0) |
| } |
| |
| if i.Get() != ic.Get() { |
| panic(0) |
| } |
| |
| virtual_poly.Incr(ic) |
| |
| if (i.Get() + 1) != ic.Get() { |
| panic(0) |
| } |
| |
| dr := d.Ref_this() |
| if d.Get() != dr.Get() { |
| panic(0) |
| } |
| |
| // 'narrowing' also works |
| ddc := virtual_poly.NDoubleNarrow(d.Nnumber()) |
| if d.Get() != ddc.Get() { |
| panic(0) |
| } |
| |
| dic := virtual_poly.NIntNarrow(i.Nnumber()) |
| if i.Get() != dic.Get() { |
| panic(0) |
| } |
| } |