func otag(t *testing.T, classifier *fuz.Classifier, tag string, inputs string) { for _, input := range strings.Split(inputs, "\n") { input = strings.TrimSpace(input) if input == "" { continue } if strings.HasPrefix(input, "#") { continue } r := classifier.Process(input) actual, _ := r.GetTagMatchString(tag, fuz.Raw) inputAdjusted := fuz.CanonicalString(input) if actual != inputAdjusted { if actual != "" { t.Errorf("In %#v only matched %#v", input, actual) } else { t.Errorf("In %#v no match", input) } t.Logf("Result =\n%v", r.Description()) } } }
matcher := rp.NewMatcher() incorrect := new(UniqueStringList) matched := new(UniqueStringList) partial := new(UniqueStringList) unmatched := new(UniqueStringList) problematic := new(UniqueStringList) problematicDirections := new(UniqueStringList) for _, recipe := range recipes { totalIngredients := 0 matchedIngredients := 0 var problematicHere []string for _, ingred := range recipe.Ingredients { s := fuz.CanonicalString(ingred.Text) subheadm := matcher.MatchIngredientSubhead(s) im := matcher.MatchIngredient(s) dm := matcher.MatchDirection(s) if subheadm.Confidence >= rp.Likely { continue } switch im.Confidence { case rp.Negative: incorrect.Add(s) case rp.Perfect: matchedIngredients++ matched.Add(s + "\n")