add small and useless test

This commit is contained in:
Héctor Giménez
2023-03-12 19:42:13 +09:00
parent 66dd506ba7
commit 09886b92ac
4 changed files with 48 additions and 3 deletions

View File

@@ -0,0 +1,45 @@
package itemfilter
import (
"testing"
"github.com/hectorgimenez/d2go/pkg/data"
"github.com/hectorgimenez/d2go/pkg/data/item"
"github.com/hectorgimenez/d2go/pkg/nip"
"github.com/stretchr/testify/require"
)
func TestEvaluate(t *testing.T) {
type args struct {
i data.Item
nipRule string // not the best test but too lazy to write rules manually
}
tests := []struct {
name string
args args
want bool
}{
{
name: "",
args: args{
i: data.Item{
Name: item.Name("lightplatedboots"),
Quality: item.QualityUnique,
Ethereal: false,
},
nipRule: "[name] == lightplatedboots && [quality] == unique && [flag] != ethereal # [enhanceddefense] == 60 // goblin toe",
},
want: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
rule, err := nip.ParseLine(tt.args.nipRule)
require.NoError(t, err)
if got := Evaluate(tt.args.i, []nip.Rule{rule}); got != tt.want {
t.Errorf("Evaluate() = %v, want %v", got, tt.want)
}
})
}
}

View File

@@ -43,7 +43,7 @@ func ParseNIPFile(filePath string) ([]Rule, error) {
rules := make([]Rule, 0)
for fileScanner.Scan() {
rule, err := parseLine(fileScanner.Text())
rule, err := ParseLine(fileScanner.Text())
if errors.Is(err, errEmptyLine) {
continue
}

View File

@@ -14,7 +14,7 @@ var (
propertyNameRegex = regexp.MustCompile(`\[(.*)\]`)
)
func parseLine(line string) (Rule, error) {
func ParseLine(line string) (Rule, error) {
line = lineCleanup(line)
if line == "" {
return Rule{}, errEmptyLine

View File

@@ -10,7 +10,7 @@ import (
const nipLine = "[type] == boots && [quality] == rare # [frw] >= 10 && [fireresist] >= 10 && ([lightresist]+[coldresist] >= 10 && [dexterity] >= 1 && [fireresist]+[poisonresist] >= 10) // this is a comment"
func Test_parseLine(t *testing.T) {
rules, err := parseLine(nipLine)
rules, err := ParseLine(nipLine)
require.NoError(t, err)
expected := Rule{