public Healthiness(ActivationBinaryTree tree) { if (tree is null) { ActivationSparsity = 0; FulfillmentRation = 0; ViolationRation = 0; ConflictRation = 0; return; } ConformanceEvaluator evaluator = new(); var violations = evaluator.GetViolation(tree).Count; var fulfilments = evaluator.GetFulfillment(tree).Count; var conflicts = evaluator.GetConflict(tree).Count; var na = violations + fulfilments + conflicts; var n = tree.Leaves .SelectMany(x => x.Subtrace) .Distinct(new EventEqualityComparer()) .Count(); ActivationSparsity = 1 - na / (double)n; FulfillmentRation = fulfilments / (double)na; ViolationRation = violations / (double)na; ConflictRation = conflicts / (double)na; }
public Healthiness(ActivationBinaryTree tree, int violations, int fulfillments, int conflicts) { if (tree is null) { ActivationSparsity = 0; FulfillmentRation = 0; ViolationRation = 0; ConflictRation = 0; return; } var na = violations + fulfillments + conflicts; var n = tree.Leaves .SelectMany(x => x.Subtrace) .Distinct(new EventEqualityComparer()) .Count(); ActivationSparsity = 1 - na / n; FulfillmentRation = fulfillments / (double)na; ViolationRation = violations / (double)na; ConflictRation = conflicts / (double)na; }