package analyzer import "testing" func TestMethodUniqueErr (test *testing.T) { testStringErr (test, "Bird.fly already declared at stream0.fspl:3:1", 4, 1, ` Bird: Int Bird.[fly] = { } Bird.[fly distance:Int] = { } `) } func TestMethodUnique (test *testing.T) { testString (test, ` Bird: Int Bird.[fly] = { } Bird.[land] = { } Bird.[walk distance:Int] = { } Bat: Int Bat.[fly] = { } [fly] = { } `) } func TestMethodArgumentUniqueErr (test *testing.T) { testStringErr (test, "x already listed as argument at stream0.fspl:3:12", 3, 18, ` Bird: Int Bird.[main x:Int x:U8 y:Int] = { } `) } func TestMethodArgumentUnique (test *testing.T) { testString (test, ` Bird: Int Bird.[main x:Int y:U8 z:Int] = { } `) } func TestMethodThis (test *testing.T) { testString (test, ` Number: Int Number.[add x:Number]:Number = [++[.this] x] StringHolder: (. string:String) StringHolder.[setString string:String] = { this.string = string } `) } func TestMethodChained (test *testing.T) { testString (test, ` Number: Int Number.[add x:Number]:Number = [+ [.this] x] Number.[sub x:Number]:Number = [- [.this] x] Number.[mul x:Number]:Number = [* [.this] x] Number.[div x:Number]:Number = [/ [.this] x] [main]: Number = [~Number 5].[add 8].[mul 3] `) }