File: main_test.go

package info (click to toggle)
golang-github-alecthomas-participle-v2 2.1.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 920 kB
  • sloc: javascript: 1,164; sh: 41; makefile: 7
file content (51 lines) | stat: -rw-r--r-- 910 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package main

import (
	"testing"

	require "github.com/alecthomas/assert/v2"
	"github.com/alecthomas/repr"
)

func TestExe(t *testing.T) {
	expr, err := parser.ParseString("", `1 + 2 / 3 * (1 + 2)`)
	repr.Println(expr)
	require.NoError(t, err)
}

func toPtr[T any](x T) *T {
	return &x
}

func TestExe_BoolFalse(t *testing.T) {
	got, err := parser.ParseString("", `1 + false`)

	expected := &Expression{
		Equality: &Equality{
			Comparison: &Comparison{
				Addition: &Addition{
					Multiplication: &Multiplication{
						Unary: &Unary{
							Primary: &Primary{
								Number: toPtr(float64(1)),
							},
						},
					},
					Op: "+",
					Next: &Addition{
						Multiplication: &Multiplication{
							Unary: &Unary{
								Primary: &Primary{
									Bool: toPtr(Boolean(false)),
								},
							},
						},
					},
				},
			},
		},
	}

	require.NoError(t, err)
	require.Equal(t, expected, got)
}