package main

import "swigtests/default_args"

func main() {
	if default_args.StaticsStaticmethod() != 60 {
		panic(0)
	}

	if default_args.Cfunc1(1) != 2 {
		panic(0)
	}

	if default_args.Cfunc2(1) != 3 {
		panic(0)
	}

	if default_args.Cfunc3(1) != 4 {
		panic(0)
	}

	f := default_args.NewFoo()

	f.Newname()
	f.Newname(1)
}
