def test_round_function(self): self.assertEqual(3, e.eval(self.row, 'round(3.4)')) self.assertEqual( 66.7, e.eval( self.row, 'round(#affected+m+children / #affected+f+adults * 1000) / 10') )
def test_order_of_operations(self): self.assertEqual(7, e.eval(self.row, '1 + 2 * 3')) self.assertEqual( 20100, e.eval(self.row, '#affected+f+children + #affected+m+children * 100')) self.assertEqual( 30000, e.eval(self.row, '(#affected+f+children + #affected+m+children) * 100'))
def test_datedif_function(self): columns = [ hxl.model.Column.parse(tag) for tag in ['#date+start', '#date+end'] ] row = hxl.model.Row(columns=columns, values=['2018-01-01', '2018-02-03']) self.assertEqual(5, e.eval(row, 'datedif(#date+start, #date+end, "W")'))
def test_simple(self): self.assertEqual(2, e.eval(self.row, '1 + 1'))
def test_tolower_function(self): self.assertEqual("coast region", e.eval(self.row, 'tolower(#adm1)'))
def test_max_function(self): self.assertEqual(400, e.eval(self.row, 'max(#affected)'))
def test_tagpatterns(self): self.assertEqual( 300, e.eval(self.row, '#affected+f+children + #affected+m+children'))
def test_string_in_calc(self): self.assertEqual(100, e.eval(self.row, "#org + #affected+f+children")) self.assertEqual(0, e.eval(self.row, "#org * #affected+f+children"))
def test_min_function(self): self.assertEqual(100, e.eval(self.row, 'min(#affected)'))
def test_tagpatterns(self): self.assertEqual(300, e.eval(self.row, '#affected+f+children + #affected+m+children'))
def test_complex_results(self): self.assertEqual(50, e.eval(self.row, '#affected+m+children / #affected+m+adults * 100'))
def test_order_of_operations(self): self.assertEqual(7, e.eval(self.row, '1 + 2 * 3')) self.assertEqual(20100, e.eval(self.row, '#affected+f+children + #affected+m+children * 100')) self.assertEqual(30000, e.eval(self.row, '(#affected+f+children + #affected+m+children) * 100'))
def test_div0(self): self.assertEqual('NaN', e.eval(self.row, '#affected+m+children / 0')) self.assertEqual('NaN', e.eval(self.row, '#affected+m+children / #org'))
def test_non_existant_tag(self): # non-existant should be zero in numeric calculations self.assertEqual(0, e.eval(self.row, "#xxx * 100"))
def test_round_function(self): self.assertEqual(3, e.eval(self.row, 'round(3.4)')) self.assertEqual(66.7, e.eval(self.row, 'round(#affected+m+children / #affected+f+adults * 1000) / 10'))
def test_complex_results(self): self.assertEqual( 50, e.eval(self.row, '#affected+m+children / #affected+m+adults * 100'))
def test_datedif_function(self): columns = [hxl.model.Column.parse(tag) for tag in ['#date+start', '#date+end']] row = hxl.model.Row(columns=columns, values=['2018-01-01', '2018-02-03']) self.assertEqual(5, e.eval(row, 'datedif(#date+start, #date+end, "W")'))
def test_nested_functions(self): self.assertEqual(5, e.eval(self.row, 'round(round(3.4) + round(1.9))'))
def test_order_of_operations(self): self.assertEqual(7, e.eval(self.row, '1 + 2 * 3'))
def test_round_function(self): self.assertEqual(3, e.eval(self.row, 'round(3.4)'))
def test_toupper_function(self): self.assertEqual("COAST REGION", e.eval(self.row, 'toupper(#adm1)'))
def test_constant(self): self.assertEqual(10, e.eval(self.row, '10'))