chain evaluation returns true in case of nothing to eval, also fixed stat layer comparison
This commit is contained in:
@@ -19,6 +19,10 @@ func (ch *evaluationChain) Add(result bool, operand nip.Operand) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (ch *evaluationChain) Evaluate() bool {
|
func (ch *evaluationChain) Evaluate() bool {
|
||||||
|
if len(ch.links) == 0 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
if len(ch.links) == 1 {
|
if len(ch.links) == 1 {
|
||||||
return ch.links[0].Result
|
return ch.links[0].Result
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ func checkStat(i data.Item, cmp nip.Comparable) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
return st[2] == itemStat.Layer
|
return st[1] == itemStat.Layer
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkProperty(i data.Item, prop nip.Comparable) bool {
|
func checkProperty(i data.Item, prop nip.Comparable) bool {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ func ParseLine(line string) (Rule, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var stats []Group
|
var stats []Group
|
||||||
if len(lineSplit) > 1 {
|
if len(lineSplit) > 1 && strings.TrimSpace(lineSplit[1]) != "" {
|
||||||
stats, err = buildGroups(lineSplit[1])
|
stats, err = buildGroups(lineSplit[1])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Rule{}, err
|
return Rule{}, err
|
||||||
@@ -35,7 +35,7 @@ func ParseLine(line string) (Rule, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var maxQuantity []Group
|
var maxQuantity []Group
|
||||||
if len(lineSplit) > 2 {
|
if len(lineSplit) > 2 && strings.TrimSpace(lineSplit[2]) != "" {
|
||||||
maxQuantity, err = buildGroups(lineSplit[2])
|
maxQuantity, err = buildGroups(lineSplit[2])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Rule{}, err
|
return Rule{}, err
|
||||||
|
|||||||
Reference in New Issue
Block a user