package compiler_test

import (
	"math/big"
	"testing"
)

func TestLT(t *testing.T) {
	src := `
		package foo
		func Main() int {
			x := 10
			if x < 100 {
				return 1
			}
			return 0
		}
	`
	eval(t, src, big.NewInt(1))
}

func TestGT(t *testing.T) {
	src := `
		package testcase
		func Main() int {
			x := 10
			if x > 100 {
				return 1
			}
			return 0
		}
	`
	eval(t, src, []byte{})
}

func TestGTE(t *testing.T) {
	src := `
		package testcase
		func Main() int {
			x := 10
			if x >= 100 {
				return 1
			}
			return 0
		}
	`
	eval(t, src, []byte{})
}

func TestLAND(t *testing.T) {
	src := `
		package testcase
		func Main() int {
			x := 10
			if x >= 10 && x <= 20 {
				return 1
			}
			return 0
		}
	`
	eval(t, src, big.NewInt(1))
}

func TestLOR(t *testing.T) {
	src := `
		package testcase
		func Main() int {
			x := 10
			if x >= 10 || x <= 20 {
				return 1
			}
			return 0
		}
	`
	eval(t, src, big.NewInt(1))
}

func TestNestedIF(t *testing.T) {
	src := `
		package testcase
		func Main() int {
			x := 10
			if x > 10 {
				if x < 20 {
					return 1
				}
				return 2
			}
			return 0
		}
	`
	eval(t, src, []byte{})
}