def test_expression_with_allowed_values(self): expression = create_filter("${decision} == 'SATISFIABLE' or 'UNSATISFIABLE' == ${decision}") self.assertMatches(self._data_1, expression) self.assertMatches(self._data_2, expression) self.assertMatches(self._data_3, expression) self.assertDoesNotMatch(self._data_4, expression) self.assertDoesNotMatch(self._data_5, expression)
def test_expression_with_forbidden_value_and_notin(self): expression = create_filter("2 notin ${values}") self.assertDoesNotMatch(self._data_1, expression) self.assertMatches(self._data_2, expression) self.assertDoesNotMatch(self._data_3, expression) self.assertMatches(self._data_4, expression) self.assertMatches(self._data_5, expression)
def test_expression_with_two_variables(self): expression = create_filter("${memory} < ${cpu_time}") self.assertDoesNotMatch(self._data_1, expression) self.assertDoesNotMatch(self._data_2, expression) self.assertDoesNotMatch(self._data_3, expression) self.assertMatches(self._data_4, expression) self.assertDoesNotMatch(self._data_5, expression)
def test_expression_with_mandatory_value(self): expression = create_filter("1 in ${values}") self.assertMatches(self._data_1, expression) self.assertMatches(self._data_2, expression) self.assertDoesNotMatch(self._data_3, expression) self.assertDoesNotMatch(self._data_4, expression) self.assertMatches(self._data_5, expression)
def test_expression_with_forbidden_value_and_neq(self): expression = create_filter("'UNKNOWN' != ${decision}") self.assertMatches(self._data_1, expression) self.assertMatches(self._data_2, expression) self.assertMatches(self._data_3, expression) self.assertDoesNotMatch(self._data_4, expression) self.assertDoesNotMatch(self._data_5, expression)
def test_expression_with_minimum_value(self): expression = create_filter("200 > ${memory}") self.assertMatches(self._data_1, expression) self.assertMatches(self._data_2, expression) self.assertMatches(self._data_3, expression) self.assertMatches(self._data_4, expression) self.assertDoesNotMatch(self._data_5, expression)
def test_expression_with_maximum_value(self): expression = create_filter("${cpu_time} <= 1000.0") self.assertMatches(self._data_1, expression) self.assertMatches(self._data_2, expression) self.assertMatches(self._data_3, expression) self.assertDoesNotMatch(self._data_4, expression) self.assertMatches(self._data_5, expression)
def test_conjunction(self): expression = create_filter([ "${success}", "${decision} in ['SATISFIABLE', 'UNSATISFIABLE']" ]) self.assertMatches(self._data_1, expression) self.assertMatches(self._data_2, expression) self.assertMatches(self._data_3, expression) self.assertDoesNotMatch(self._data_4, expression) self.assertDoesNotMatch(self._data_5, expression)
def test_conjunction3(self): expression = create_filter([ "${success}", "${cpu_time} <= 1000.0", "${decision} == 'SATISFIABLE' or 'UNSATISFIABLE' == ${decision}" ]) self.assertMatches(self._data_1, expression) self.assertMatches(self._data_2, expression) self.assertMatches(self._data_3, expression) self.assertDoesNotMatch(self._data_4, expression) self.assertDoesNotMatch(self._data_5, expression)
def test_expression_of_boolean_variable(self): expression = create_filter("${success}") self.assertMatches(self._data_1, expression) self.assertMatches(self._data_2, expression) self.assertMatches(self._data_3, expression) self.assertMatches(self._data_4, expression) self.assertDoesNotMatch(self._data_5, expression) expression = create_filter("${success} == true") self.assertMatches(self._data_1, expression) self.assertMatches(self._data_2, expression) self.assertMatches(self._data_3, expression) self.assertMatches(self._data_4, expression) self.assertDoesNotMatch(self._data_5, expression) expression = create_filter("${success} != false") self.assertMatches(self._data_1, expression) self.assertMatches(self._data_2, expression) self.assertMatches(self._data_3, expression) self.assertMatches(self._data_4, expression) self.assertDoesNotMatch(self._data_5, expression)
def test_incorrect_variable_format(self): self.assertRaises(ValueError, lambda: create_filter("{success}")) self.assertRaises(ValueError, lambda: create_filter("$cpu_time <= 1000.0")) self.assertRaises(ValueError, lambda: create_filter("'${cpu_time' <= 1000.0")) self.assertRaises(ValueError, lambda: create_filter("200 <= 1000.0"))
def test_no_variable(self): self.assertRaises(ValueError, lambda: create_filter("success")) self.assertRaises(ValueError, lambda: create_filter("cpu_time <= 1000.0")) self.assertRaises(ValueError, lambda: create_filter("'cpu_time' <= 1000.0")) self.assertRaises(ValueError, lambda: create_filter("200 <= 1000.0"))