From 1716c9bf9d1912727f772f23f223b69c91556496 Mon Sep 17 00:00:00 2001 From: koki-develop Date: Thu, 7 Mar 2024 09:17:34 +0900 Subject: [PATCH] Put testcases to testdata/ --- internal/mingo/mingo_test.go | 424 +-------------------- internal/mingo/testdata/const/expected | 1 + internal/mingo/testdata/const/main.go | 28 ++ internal/mingo/testdata/for/expected | 1 + internal/mingo/testdata/for/main.go | 37 ++ internal/mingo/testdata/func/expected | 1 + internal/mingo/testdata/func/main.go | 23 ++ internal/mingo/testdata/generic/expected | 1 + internal/mingo/testdata/generic/main.go | 19 + internal/mingo/testdata/go/expected | 1 + internal/mingo/testdata/go/main.go | 20 + internal/mingo/testdata/goto/expected | 1 + internal/mingo/testdata/goto/main.go | 11 + internal/mingo/testdata/if/expected | 1 + internal/mingo/testdata/if/main.go | 40 ++ internal/mingo/testdata/incdec/expected | 1 + internal/mingo/testdata/incdec/main.go | 11 + internal/mingo/testdata/interface/expected | 1 + internal/mingo/testdata/interface/main.go | 18 + internal/mingo/testdata/range/expected | 1 + internal/mingo/testdata/range/main.go | 23 ++ internal/mingo/testdata/slice/expected | 1 + internal/mingo/testdata/slice/main.go | 13 + internal/mingo/testdata/struct/expected | 1 + internal/mingo/testdata/struct/main.go | 40 ++ internal/mingo/testdata/switch/expected | 1 + internal/mingo/testdata/switch/main.go | 22 ++ internal/mingo/testdata/var/expected | 1 + internal/mingo/testdata/var/main.go | 21 + 29 files changed, 360 insertions(+), 404 deletions(-) create mode 100644 internal/mingo/testdata/const/expected create mode 100644 internal/mingo/testdata/const/main.go create mode 100644 internal/mingo/testdata/for/expected create mode 100644 internal/mingo/testdata/for/main.go create mode 100644 internal/mingo/testdata/func/expected create mode 100644 internal/mingo/testdata/func/main.go create mode 100644 internal/mingo/testdata/generic/expected create mode 100644 internal/mingo/testdata/generic/main.go create mode 100644 internal/mingo/testdata/go/expected create mode 100644 internal/mingo/testdata/go/main.go create mode 100644 internal/mingo/testdata/goto/expected create mode 100644 internal/mingo/testdata/goto/main.go create mode 100644 internal/mingo/testdata/if/expected create mode 100644 internal/mingo/testdata/if/main.go create mode 100644 internal/mingo/testdata/incdec/expected create mode 100644 internal/mingo/testdata/incdec/main.go create mode 100644 internal/mingo/testdata/interface/expected create mode 100644 internal/mingo/testdata/interface/main.go create mode 100644 internal/mingo/testdata/range/expected create mode 100644 internal/mingo/testdata/range/main.go create mode 100644 internal/mingo/testdata/slice/expected create mode 100644 internal/mingo/testdata/slice/main.go create mode 100644 internal/mingo/testdata/struct/expected create mode 100644 internal/mingo/testdata/struct/main.go create mode 100644 internal/mingo/testdata/switch/expected create mode 100644 internal/mingo/testdata/switch/main.go create mode 100644 internal/mingo/testdata/var/expected create mode 100644 internal/mingo/testdata/var/main.go diff --git a/internal/mingo/mingo_test.go b/internal/mingo/mingo_test.go index 2bbc588..05cd9ee 100644 --- a/internal/mingo/mingo_test.go +++ b/internal/mingo/mingo_test.go @@ -1,422 +1,38 @@ package mingo import ( + "embed" + "fmt" "go/format" "testing" "github.com/stretchr/testify/assert" ) -func Test_Minify(t *testing.T) { - testcases := []struct { - name string - src string - want string - }{ - { - name: "if", - src: `package main - -import "fmt" - -func main() { - if true { - fmt.Println("TRUE") - if true { - fmt.Println("TRUE") - } - } - - if false { - fmt.Println("TRUE") - } else { - fmt.Println("FALSE") - } - - if false { - fmt.Println("TRUE") - } else if true { - fmt.Println("TRUE") - } - - if err := run1(); err != nil { - fmt.Println(err) - } - - if _, err := run2(); err != nil { - fmt.Println(err) - } -} - -func run1() error { - return nil -} - -func run2() (string, error) { - return "", nil -} -`, - want: `package main;import "fmt";func main(){if true{fmt.Println("TRUE");if true{fmt.Println("TRUE")}};if false{fmt.Println("TRUE")}else{fmt.Println("FALSE")};if false{fmt.Println("TRUE")}else if true{fmt.Println("TRUE")};if err:=run1();err!=nil{fmt.Println(err)};if _,err:=run2();err!=nil{fmt.Println(err)}};func run1()error{return nil};func run2()(string,error){return "",nil};`, - }, - { - name: "inc dec", - src: `package main - -import "fmt" - -func main() { - i := 1 - i++ - i-- - i++ - fmt.Println(i) -} -`, - want: `package main;import "fmt";func main(){i:=1;i++;i--;i++;fmt.Println(i)};`, - }, - { - name: "switch", - src: `package main - -import "fmt" - -func main() { - i := 0 - - switch i { - case 0: - fmt.Println("1") - fmt.Println("2") - fmt.Println("3") - case 1, 2: - fmt.Println("4") - fmt.Println("5") - fmt.Println("6") - default: - fmt.Println("7") - fmt.Println("8") - fmt.Println("9") - } -} -`, - want: `package main;import "fmt";func main(){i:=0;switch i{case 0:fmt.Println("1");fmt.Println("2");fmt.Println("3");case 1,2:fmt.Println("4");fmt.Println("5");fmt.Println("6");default:fmt.Println("7");fmt.Println("8");fmt.Println("9")}};`, - }, - { - name: "struct", - src: `package main - -type S1 struct { - S struct { - A string - B int - C bool - } - - F1 func() string - F2 func() (string, error) - F3 func() (s string, err error) -} - -type S2 struct { - S1 - - A string - B int - C bool - - a string - b int - c bool - - F4 func(s string) - F5 func(string) - F6 func(s1, s2 string) - F7 func(f1 func() string) -} - -func main() { - type S3 struct { - S1 - - A string - B int - C bool - } -} -`, - want: `package main;type S1 struct{S struct{A string;B int;C bool};F1 func()string;F2 func()(string,error);F3 func()(s string,err error)};type S2 struct{S1;A string;B int;C bool;a string;b int;c bool;F4 func(s string);F5 func(string);F6 func(s1,s2 string);F7 func(f1 func()string)};func main(){type S3 struct{S1;A string;B int;C bool};};`, - }, - { - name: "interface", - src: `package main - -type I1 interface { - F1() string - F2() (string, error) - F3() (s string, err error) -} - -type I2 interface { - I1 - - F4(s string) - F5(string) - F6(s1, s2 string) - F7(s1 string, s2 string) - F8(s1, s2 string, i int) - F9(f func() string) -} -`, - want: `package main;type I1 interface{F1()string;F2()(string,error);F3()(s string,err error)};type I2 interface{I1;F4(s string);F5(string);F6(s1,s2 string);F7(s1 string,s2 string);F8(s1,s2 string,i int);F9(f func()string)};`, - }, - { - name: "go", - src: `package main - -import ( - "fmt" - "time" -) - -func hello() { - fmt.Println("Hello, 世界") - time.Sleep(1 * time.Second) -} - -func main() { - go func() { - fmt.Println("Hello, 世界") - time.Sleep(1 * time.Second) - }() - - go hello() -} -`, - want: `package main;import("fmt";"time");func hello(){fmt.Println("Hello, 世界");time.Sleep(1*time.Second)};func main(){go func(){fmt.Println("Hello, 世界");time.Sleep(1*time.Second)}();go hello()};`, - }, - { - name: "func", - src: `package main - -import "fmt" - -func hello() { - func() { - fmt.Println("Hello") - }() - - func(s string) { - fmt.Printf("Hello, %s\n", s) - }("world") - - if err := func() error { - return nil - }(); err != nil { - fmt.Println(err) - } -} - -func main() { - go hello() -} -`, - want: `package main;import "fmt";func hello(){func(){fmt.Println("Hello")}();func(s string){fmt.Printf("Hello, %s\n",s)}("world");if err:=func()error{return nil}();err!=nil{fmt.Println(err)}};func main(){go hello()};`, - }, - { - name: "goto", - src: `package main - -import "fmt" - -func main() { - fmt.Println("A") - goto label - fmt.Println("B") -label: - fmt.Println("C") -} -`, - want: `package main;import "fmt";func main(){fmt.Println("A");goto label;fmt.Println("B");label:fmt.Println("C")};`, - }, - { - name: "generic", - src: `package main - -import "fmt" - -func Ptr[T any](p T) *T { - return &p -} - -func Equals[T, U comparable](t T, u U) bool { - return t == u -} - -func Hoge[T comparable, U fmt.Stringer](s []T, e U) bool { - return true -} - -func main() { - fmt.Println(Ptr(1)) -} -`, - want: `package main;import "fmt";func Ptr[T any](p T)*T{return &p};func Equals[T,U comparable](t T,u U)bool{return t==u};func Hoge[T comparable,U fmt.Stringer](s []T,e U)bool{return true};func main(){fmt.Println(Ptr(1))};`, - }, - { - name: "const", - src: `package main - -const ( - A = 1 - B int = 2 - C, D int = 3, 4 - E, F, G = 3, 4, 5 -) - -const ( - _ = iota - a - b - c -) - -const w = 1 -const x int = 2 -const y, z = 3, 4 - -func main() { - const a = 1 - const b, c = 2, 3 - const ( - d = 4 - e = 5 - ) -} -`, - want: `package main;const(A=1;B int=2;C,D int=3,4;E,F,G=3,4,5);const(_=iota;a;b;c);const w=1;const x int=2;const y,z=3,4;func main(){const a=1;const b,c=2,3;const(d=4;e=5);};`, - }, - { - name: "var", - src: `package main - -var ( - A = 1 - B int = 2 - C, D int = 3, 4 - E, F, G = 3, 4, 5 -) - -var w = 1 -var x int = 2 -var y, z = 3, 4 +//go:embed testdata +var testdata embed.FS -func main() { - var a int = 1 - var b, c int = 2, 3 - var ( - d = 4 - e = 5 - ) -} -`, - want: `package main;var(A=1;B int=2;C,D int=3,4;E,F,G=3,4,5);var w=1;var x int=2;var y,z=3,4;func main(){var a int=1;var b,c int=2,3;var(d=4;e=5);};`, - }, - { - name: "for", - src: `package main - -func main() { - for { - break - } - - for i := 0; i < 10; i++ { - println(i) - } - - for i := 0; i < 10; { - println(i) - i++ - } - - for i := 0; ; i++ { - if i >= 10 { - break - } - println(i) - } - - i := 0 - for ; i < 10; i++ { - println(i) - } - - for ; i < 20; { - println(i) - i++ - } - - for true { - break - } -} -`, - want: `package main;func main(){for {break};for i:=0;i<10;i++{println(i)};for i:=0;i<10;{println(i);i++};for i:=0;;i++{if i>=10{break};println(i)};i:=0;for ;i<10;i++{println(i)};for i<20{println(i);i++};for true{break}};`, - }, - { - name: "range", - src: `package main - -func main() { - for range 10 { - break - } - - for i := range 10 { - println(i) - } - - for _, s := range []string{"a", "b", "c"} { - println(s) - } - - for i, s := range []string{"a", "b", "c"} { - println(i, s) - } - - for i := range []string{"a", "b", "c"} { - println(i) +func Test_Minify(t *testing.T) { + dirs, err := testdata.ReadDir("testdata") + if err != nil { + t.Fatal(err) } -} -`, - want: `package main;func main(){for range 10{break};for i:=range 10{println(i)};for _,s:=range []string{"a","b","c"}{println(s)};for i,s:=range []string{"a","b","c"}{println(i,s)};for i:=range []string{"a","b","c"}{println(i)}};`, - }, - { - name: "slice", - src: `package main - -import "fmt" -func main() { - s := []string{"A", "B", "C"} - - fmt.Println(s[0]) - fmt.Println(s[0:1]) - fmt.Println(s[0:]) - fmt.Println(s[:1]) - fmt.Println(s[:]) -} -`, - want: `package main;import "fmt";func main(){s:=[]string{"A","B","C"};fmt.Println(s[0]);fmt.Println(s[0:1]);fmt.Println(s[0:]);fmt.Println(s[:1]);fmt.Println(s[:])};`, - }, - } + for _, dir := range dirs { + t.Run(dir.Name(), func(t *testing.T) { + src, err := testdata.ReadFile(fmt.Sprintf("testdata/%s/main.go", dir.Name())) + if err != nil { + t.Fatal(err) + } - for _, tc := range testcases { - t.Run(tc.name, func(t *testing.T) { - got, err := Minify("main.go", []byte(tc.src)) + want, err := testdata.ReadFile(fmt.Sprintf("testdata/%s/expected", dir.Name())) + if err != nil { + t.Fatal(err) + } + got, err := Minify("main.go", src) assert.NoError(t, err) - assert.Equal(t, tc.want, got) + assert.Equal(t, string(want), got) // check syntax _, err = format.Source([]byte(got)) diff --git a/internal/mingo/testdata/const/expected b/internal/mingo/testdata/const/expected new file mode 100644 index 0000000..a42004f --- /dev/null +++ b/internal/mingo/testdata/const/expected @@ -0,0 +1 @@ +package main;const(A=1;B int=2;C,D int=3,4;E,F,G=3,4,5);const(_=iota;a;b;c);const w=1;const x int=2;const y,z=3,4;func main(){const a=1;const b,c=2,3;const(d=4;e=5);}; \ No newline at end of file diff --git a/internal/mingo/testdata/const/main.go b/internal/mingo/testdata/const/main.go new file mode 100644 index 0000000..2138885 --- /dev/null +++ b/internal/mingo/testdata/const/main.go @@ -0,0 +1,28 @@ +package main + +const ( + A = 1 + B int = 2 + C, D int = 3, 4 + E, F, G = 3, 4, 5 +) + +const ( + _ = iota + a + b + c +) + +const w = 1 +const x int = 2 +const y, z = 3, 4 + +func main() { + const a = 1 + const b, c = 2, 3 + const ( + d = 4 + e = 5 + ) +} diff --git a/internal/mingo/testdata/for/expected b/internal/mingo/testdata/for/expected new file mode 100644 index 0000000..71be8c9 --- /dev/null +++ b/internal/mingo/testdata/for/expected @@ -0,0 +1 @@ +package main;func main(){for {break};for i:=0;i<10;i++{println(i)};for i:=0;i<10;{println(i);i++};for i:=0;;i++{if i>=10{break};println(i)};i:=0;for ;i<10;i++{println(i)};for i<20{println(i);i++};for true{break}}; \ No newline at end of file diff --git a/internal/mingo/testdata/for/main.go b/internal/mingo/testdata/for/main.go new file mode 100644 index 0000000..56749a2 --- /dev/null +++ b/internal/mingo/testdata/for/main.go @@ -0,0 +1,37 @@ +package main + +func main() { + for { + break + } + + for i := 0; i < 10; i++ { + println(i) + } + + for i := 0; i < 10; { + println(i) + i++ + } + + for i := 0; ; i++ { + if i >= 10 { + break + } + println(i) + } + + i := 0 + for ; i < 10; i++ { + println(i) + } + + for i < 20 { + println(i) + i++ + } + + for true { + break + } +} diff --git a/internal/mingo/testdata/func/expected b/internal/mingo/testdata/func/expected new file mode 100644 index 0000000..ddb8d8e --- /dev/null +++ b/internal/mingo/testdata/func/expected @@ -0,0 +1 @@ +package main;import "fmt";func hello(){func(){fmt.Println("Hello")}();func(s string){fmt.Printf("Hello, %s\n",s)}("world");if err:=func()error{return nil}();err!=nil{fmt.Println(err)}};func main(){go hello()}; \ No newline at end of file diff --git a/internal/mingo/testdata/func/main.go b/internal/mingo/testdata/func/main.go new file mode 100644 index 0000000..4cb9619 --- /dev/null +++ b/internal/mingo/testdata/func/main.go @@ -0,0 +1,23 @@ +package main + +import "fmt" + +func hello() { + func() { + fmt.Println("Hello") + }() + + func(s string) { + fmt.Printf("Hello, %s\n", s) + }("world") + + if err := func() error { + return nil + }(); err != nil { + fmt.Println(err) + } +} + +func main() { + go hello() +} diff --git a/internal/mingo/testdata/generic/expected b/internal/mingo/testdata/generic/expected new file mode 100644 index 0000000..f00c4cf --- /dev/null +++ b/internal/mingo/testdata/generic/expected @@ -0,0 +1 @@ +package main;import "fmt";func Ptr[T any](p T)*T{return &p};func Equals[T,U comparable](t T,u U)bool{return t==u};func Hoge[T comparable,U fmt.Stringer](s []T,e U)bool{return true};func main(){fmt.Println(Ptr(1))}; \ No newline at end of file diff --git a/internal/mingo/testdata/generic/main.go b/internal/mingo/testdata/generic/main.go new file mode 100644 index 0000000..a7c7c76 --- /dev/null +++ b/internal/mingo/testdata/generic/main.go @@ -0,0 +1,19 @@ +package main + +import "fmt" + +func Ptr[T any](p T) *T { + return &p +} + +func Equals[T, U comparable](t T, u U) bool { + return t == u +} + +func Hoge[T comparable, U fmt.Stringer](s []T, e U) bool { + return true +} + +func main() { + fmt.Println(Ptr(1)) +} diff --git a/internal/mingo/testdata/go/expected b/internal/mingo/testdata/go/expected new file mode 100644 index 0000000..bb9757c --- /dev/null +++ b/internal/mingo/testdata/go/expected @@ -0,0 +1 @@ +package main;import("fmt";"time");func hello(){fmt.Println("Hello, 世界");time.Sleep(1*time.Second)};func main(){go func(){fmt.Println("Hello, 世界");time.Sleep(1*time.Second)}();go hello()}; \ No newline at end of file diff --git a/internal/mingo/testdata/go/main.go b/internal/mingo/testdata/go/main.go new file mode 100644 index 0000000..63b1e2f --- /dev/null +++ b/internal/mingo/testdata/go/main.go @@ -0,0 +1,20 @@ +package main + +import ( + "fmt" + "time" +) + +func hello() { + fmt.Println("Hello, 世界") + time.Sleep(1 * time.Second) +} + +func main() { + go func() { + fmt.Println("Hello, 世界") + time.Sleep(1 * time.Second) + }() + + go hello() +} diff --git a/internal/mingo/testdata/goto/expected b/internal/mingo/testdata/goto/expected new file mode 100644 index 0000000..584cbb7 --- /dev/null +++ b/internal/mingo/testdata/goto/expected @@ -0,0 +1 @@ +package main;import "fmt";func main(){fmt.Println("A");goto label;fmt.Println("B");label:fmt.Println("C")}; \ No newline at end of file diff --git a/internal/mingo/testdata/goto/main.go b/internal/mingo/testdata/goto/main.go new file mode 100644 index 0000000..ced3701 --- /dev/null +++ b/internal/mingo/testdata/goto/main.go @@ -0,0 +1,11 @@ +package main + +import "fmt" + +func main() { + fmt.Println("A") + goto label + fmt.Println("B") +label: + fmt.Println("C") +} diff --git a/internal/mingo/testdata/if/expected b/internal/mingo/testdata/if/expected new file mode 100644 index 0000000..6fe6d84 --- /dev/null +++ b/internal/mingo/testdata/if/expected @@ -0,0 +1 @@ +package main;import "fmt";func main(){if true{fmt.Println("TRUE");if true{fmt.Println("TRUE")}};if false{fmt.Println("TRUE")}else{fmt.Println("FALSE")};if false{fmt.Println("TRUE")}else if true{fmt.Println("TRUE")};if err:=run1();err!=nil{fmt.Println(err)};if _,err:=run2();err!=nil{fmt.Println(err)}};func run1()error{return nil};func run2()(string,error){return "",nil}; \ No newline at end of file diff --git a/internal/mingo/testdata/if/main.go b/internal/mingo/testdata/if/main.go new file mode 100644 index 0000000..281a0cc --- /dev/null +++ b/internal/mingo/testdata/if/main.go @@ -0,0 +1,40 @@ +package main + +import "fmt" + +func main() { + if true { + fmt.Println("TRUE") + if true { + fmt.Println("TRUE") + } + } + + if false { + fmt.Println("TRUE") + } else { + fmt.Println("FALSE") + } + + if false { + fmt.Println("TRUE") + } else if true { + fmt.Println("TRUE") + } + + if err := run1(); err != nil { + fmt.Println(err) + } + + if _, err := run2(); err != nil { + fmt.Println(err) + } +} + +func run1() error { + return nil +} + +func run2() (string, error) { + return "", nil +} diff --git a/internal/mingo/testdata/incdec/expected b/internal/mingo/testdata/incdec/expected new file mode 100644 index 0000000..020d9df --- /dev/null +++ b/internal/mingo/testdata/incdec/expected @@ -0,0 +1 @@ +package main;import "fmt";func main(){i:=1;i++;i--;i++;fmt.Println(i)}; \ No newline at end of file diff --git a/internal/mingo/testdata/incdec/main.go b/internal/mingo/testdata/incdec/main.go new file mode 100644 index 0000000..7809fdd --- /dev/null +++ b/internal/mingo/testdata/incdec/main.go @@ -0,0 +1,11 @@ +package main + +import "fmt" + +func main() { + i := 1 + i++ + i-- + i++ + fmt.Println(i) +} diff --git a/internal/mingo/testdata/interface/expected b/internal/mingo/testdata/interface/expected new file mode 100644 index 0000000..ca4c0f3 --- /dev/null +++ b/internal/mingo/testdata/interface/expected @@ -0,0 +1 @@ +package main;type I1 interface{F1()string;F2()(string,error);F3()(s string,err error)};type I2 interface{I1;F4(s string);F5(string);F6(s1,s2 string);F7(s1 string,s2 string);F8(s1,s2 string,i int);F9(f func()string)}; \ No newline at end of file diff --git a/internal/mingo/testdata/interface/main.go b/internal/mingo/testdata/interface/main.go new file mode 100644 index 0000000..86bc4b3 --- /dev/null +++ b/internal/mingo/testdata/interface/main.go @@ -0,0 +1,18 @@ +package main + +type I1 interface { + F1() string + F2() (string, error) + F3() (s string, err error) +} + +type I2 interface { + I1 + + F4(s string) + F5(string) + F6(s1, s2 string) + F7(s1 string, s2 string) + F8(s1, s2 string, i int) + F9(f func() string) +} diff --git a/internal/mingo/testdata/range/expected b/internal/mingo/testdata/range/expected new file mode 100644 index 0000000..d0954f5 --- /dev/null +++ b/internal/mingo/testdata/range/expected @@ -0,0 +1 @@ +package main;func main(){for range 10{break};for i:=range 10{println(i)};for _,s:=range []string{"a","b","c"}{println(s)};for i,s:=range []string{"a","b","c"}{println(i,s)};for i:=range []string{"a","b","c"}{println(i)}}; \ No newline at end of file diff --git a/internal/mingo/testdata/range/main.go b/internal/mingo/testdata/range/main.go new file mode 100644 index 0000000..a6e2b4a --- /dev/null +++ b/internal/mingo/testdata/range/main.go @@ -0,0 +1,23 @@ +package main + +func main() { + for range 10 { + break + } + + for i := range 10 { + println(i) + } + + for _, s := range []string{"a", "b", "c"} { + println(s) + } + + for i, s := range []string{"a", "b", "c"} { + println(i, s) + } + + for i := range []string{"a", "b", "c"} { + println(i) + } +} diff --git a/internal/mingo/testdata/slice/expected b/internal/mingo/testdata/slice/expected new file mode 100644 index 0000000..bb71076 --- /dev/null +++ b/internal/mingo/testdata/slice/expected @@ -0,0 +1 @@ +package main;import "fmt";func main(){s:=[]string{"A","B","C"};fmt.Println(s[0]);fmt.Println(s[0:1]);fmt.Println(s[0:]);fmt.Println(s[:1]);fmt.Println(s[:])}; \ No newline at end of file diff --git a/internal/mingo/testdata/slice/main.go b/internal/mingo/testdata/slice/main.go new file mode 100644 index 0000000..1b88d7b --- /dev/null +++ b/internal/mingo/testdata/slice/main.go @@ -0,0 +1,13 @@ +package main + +import "fmt" + +func main() { + s := []string{"A", "B", "C"} + + fmt.Println(s[0]) + fmt.Println(s[0:1]) + fmt.Println(s[0:]) + fmt.Println(s[:1]) + fmt.Println(s[:]) +} diff --git a/internal/mingo/testdata/struct/expected b/internal/mingo/testdata/struct/expected new file mode 100644 index 0000000..77c45b9 --- /dev/null +++ b/internal/mingo/testdata/struct/expected @@ -0,0 +1 @@ +package main;type S1 struct{S struct{A string;B int;C bool};F1 func()string;F2 func()(string,error);F3 func()(s string,err error)};type S2 struct{S1;A string;B int;C bool;a string;b int;c bool;F4 func(s string);F5 func(string);F6 func(s1,s2 string);F7 func(f1 func()string)};func main(){type S3 struct{S1;A string;B int;C bool};}; \ No newline at end of file diff --git a/internal/mingo/testdata/struct/main.go b/internal/mingo/testdata/struct/main.go new file mode 100644 index 0000000..81db5ca --- /dev/null +++ b/internal/mingo/testdata/struct/main.go @@ -0,0 +1,40 @@ +package main + +type S1 struct { + S struct { + A string + B int + C bool + } + + F1 func() string + F2 func() (string, error) + F3 func() (s string, err error) +} + +type S2 struct { + S1 + + A string + B int + C bool + + a string + b int + c bool + + F4 func(s string) + F5 func(string) + F6 func(s1, s2 string) + F7 func(f1 func() string) +} + +func main() { + type S3 struct { + S1 + + A string + B int + C bool + } +} diff --git a/internal/mingo/testdata/switch/expected b/internal/mingo/testdata/switch/expected new file mode 100644 index 0000000..4b1abf4 --- /dev/null +++ b/internal/mingo/testdata/switch/expected @@ -0,0 +1 @@ +package main;import "fmt";func main(){i:=0;switch i{case 0:fmt.Println("1");fmt.Println("2");fmt.Println("3");case 1,2:fmt.Println("4");fmt.Println("5");fmt.Println("6");default:fmt.Println("7");fmt.Println("8");fmt.Println("9")}}; \ No newline at end of file diff --git a/internal/mingo/testdata/switch/main.go b/internal/mingo/testdata/switch/main.go new file mode 100644 index 0000000..605d8ca --- /dev/null +++ b/internal/mingo/testdata/switch/main.go @@ -0,0 +1,22 @@ +package main + +import "fmt" + +func main() { + i := 0 + + switch i { + case 0: + fmt.Println("1") + fmt.Println("2") + fmt.Println("3") + case 1, 2: + fmt.Println("4") + fmt.Println("5") + fmt.Println("6") + default: + fmt.Println("7") + fmt.Println("8") + fmt.Println("9") + } +} diff --git a/internal/mingo/testdata/var/expected b/internal/mingo/testdata/var/expected new file mode 100644 index 0000000..a2678c6 --- /dev/null +++ b/internal/mingo/testdata/var/expected @@ -0,0 +1 @@ +package main;var(A=1;B int=2;C,D int=3,4;E,F,G=3,4,5);var w=1;var x int=2;var y,z=3,4;func main(){var a int=1;var b,c int=2,3;var(d=4;e=5);}; \ No newline at end of file diff --git a/internal/mingo/testdata/var/main.go b/internal/mingo/testdata/var/main.go new file mode 100644 index 0000000..ec5467d --- /dev/null +++ b/internal/mingo/testdata/var/main.go @@ -0,0 +1,21 @@ +package main + +var ( + A = 1 + B int = 2 + C, D int = 3, 4 + E, F, G = 3, 4, 5 +) + +var w = 1 +var x int = 2 +var y, z = 3, 4 + +func main() { + var a int = 1 + var b, c int = 2, 3 + var ( + d = 4 + e = 5 + ) +}