Skip to content

Commit fef2bd5

Browse files
Merge pull request #119 from lambda-feedback/tr135-update-algorithm
Fixed bug in validity determination
2 parents 27f35b0 + 6888912 commit fef2bd5

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

app/evaluation.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,22 +89,24 @@ def determine_validity(reference_set, reference_symbols, candidate_set, candidat
8989
R = get_exponent_matrix(reference_set, symbols)
9090
C = get_exponent_matrix(candidate_set, symbols)
9191
D = R.col_join(C)
92-
valid = False
92+
valid = True
9393
feedback = []
94-
more_groups_than_reference_set = len(reference_set) >= len(candidate_set)
94+
more_groups_than_reference_set = len(reference_set) > len(candidate_set)
9595
candidate_groups_independent = C.rank() == len(candidate_set)
9696
rank_R_equal_to_rank_D = R.rank() == D.rank()
9797
rank_C_equal_to_rank_D = C.rank() == D.rank()
9898
if candidate_symbols.issubset(reference_symbols):
99-
if not more_groups_than_reference_set:
99+
valid = valid and not more_groups_than_reference_set
100+
if more_groups_than_reference_set:
100101
feedback.append(buckingham_pi_feedback_responses["MORE_GROUPS_THAN_REFERENCE_SET"])
102+
valid = valid and candidate_groups_independent
101103
if not candidate_groups_independent:
102104
feedback.append(buckingham_pi_feedback_responses["CANDIDATE_GROUPS_NOT_INDEPENDENT"](C.rank(), len(candidate_set)))
103105
if rank_R_equal_to_rank_D:
104106
if rank_C_equal_to_rank_D:
105-
valid = True
106107
feedback.append(buckingham_pi_feedback_responses["VALID_CANDIDATE_SET"])
107108
else:
109+
valid = False
108110
feedback.append(buckingham_pi_feedback_responses["TOO_FEW_INDEPENDENT_GROUPS"]("Response", C.rank(), D.rank()))
109111
else:
110112
dimensionless_groups = set()
@@ -117,8 +119,10 @@ def determine_validity(reference_set, reference_symbols, candidate_set, candidat
117119
dimensionless_groups.add(create_power_product(exponents, symbols))
118120
if len(dimensionless_groups) > 0:
119121
feedback.append(buckingham_pi_feedback_responses["NOT_DIMENSIONLESS"](dimensionless_groups))
122+
valid = False
120123
else:
121124
feedback.append(buckingham_pi_feedback_responses["UNKNOWN_SYMBOL"](candidate_symbols.difference(reference_symbols)))
125+
valid = False
122126
feedback = [elem.strip() for elem in feedback if len(elem.strip()) > 0]
123127
return valid, "<br>".join(feedback)
124128

0 commit comments

Comments
 (0)