package main

import (
	"fmt"

	. "swigtests/example"
)

func main() {
	// First create some objects using the pointer library.
	fmt.Println("Testing the pointer library")
	a := New_intp()
	b := New_intp()
	c := New_intp()
	Intp_assign(a, 37)
	Intp_assign(b, 42)

	fmt.Println("     a =", a)
	fmt.Println("     b =", b)
	fmt.Println("     c =", c)

	// Call the add() function with some pointers
	Add(a, b, c)

	// Now get the result
	res := Intp_value(c)
	fmt.Println("     37 + 42 =", res)

	// Clean up the pointers
	Delete_intp(a)
	Delete_intp(b)
	Delete_intp(c)

	// Now try the typemap library
	// Now it is no longer necessary to manufacture pointers.
	// Instead we use a single element slice which in Go is modifiable.

	fmt.Println("Trying the typemap library")
	r := []int{0}
	Sub(37, 42, r)
	fmt.Println("     37 - 42 = ", r[0])

	// Now try the version with return value

	fmt.Println("Testing return value")
	q := Divide(42, 37, r)
	fmt.Println("     42/37 = ", q, " remainder ", r[0])
}
