def test_smart_single_int(self): '''It is assumed that smart_validate could treat float-like objects as integers if they could be converted to integers without loss of precision. ''' single_int = '1' single_int_as_float = '1.0' single_float = '1.5' self.assertTrue(smart_validate(single_int, 'integer')) self.assertTrue(smart_validate(single_int_as_float, 'integer')) self.assertFalse(smart_validate(single_float, 'integer'))
def test_smart_1D_validate_ints(self): sample_ints = '1,2,3,4,5' # Just integer, nothing to check sample_floats = '1.0,2.0,3.0,4.0,5.0' # convertable floats should be converted... sample_right_ints1 = '1.0,2.0,3.0,4.0,5.5' # One non-convertable should be excluded sample_right_ints = '1,,2' # only one empty, this is not a mistake sample_empty = '' # empty array, thats might be... sample_bad_ints = 'one, two, 1' # This is bad, we could not decide what should be here: integers or strings? sample_many_floats = '1.2, 1.3, 3' # Many floats should cause error, because they could not be truncated to ints and the number of its is 2. self.assertTrue(smart_validate(sample_ints, 'integer')) self.assertTrue(smart_validate(sample_empty, 'integer')) self.assertTrue(smart_validate(sample_right_ints, 'integer')) self.assertFalse(smart_validate(sample_bad_ints, 'integer')) self.assertTrue(smart_validate(sample_right_ints1, 'integer')) self.assertTrue(smart_validate(sample_floats, 'integer')) self.assertFalse(smart_validate(sample_many_floats, 'integer'))
def test_smart_1D_validate_floats(self): sample_floats = '1.0,2.0,3.0,4.0,5.0' sample_ints = '1,2,3' sample_right_floats = '1.0,2.,,3.' sample_empty = '' sample_bad_floats = 'one, two, 1.0' sample_few_floats = 'one, 2.0, 1.0' self.assertTrue(smart_validate(sample_floats, 'float')) self.assertTrue(smart_validate(sample_ints, 'float')) self.assertTrue(smart_validate(sample_right_floats, 'float')) self.assertTrue(smart_validate(sample_empty, 'float')) # This should be treated as empty array... self.assertTrue(smart_validate(sample_few_floats, 'float')) self.assertFalse(smart_validate(sample_bad_floats, 'float'))
def test_smart_1D_validate_floats(self): sample_floats = '1.0,2.0,3.0,4.0,5.0' sample_ints = '1,2,3' sample_right_floats = '1.0,2.,,3.' sample_empty = '' sample_bad_floats = 'one, two, 1.0' sample_few_floats = 'one, 2.0, 1.0' self.assertTrue(smart_validate(sample_floats, 'float')) self.assertTrue(smart_validate(sample_ints, 'float')) self.assertTrue(smart_validate(sample_right_floats, 'float')) self.assertTrue(smart_validate( sample_empty, 'float')) # This should be treated as empty array... self.assertTrue(smart_validate(sample_few_floats, 'float')) self.assertFalse(smart_validate(sample_bad_floats, 'float'))
def test_smart_2D_validate_floats(self): sample_2D_floats = '1.0,2.0,3.4\n 4.4,5,6.0' sample_2D_bad_floats = '1.0,tor, cot\n 1,cot,3' self.assertTrue(smart_validate(sample_2D_floats, 'float')) self.assertFalse(smart_validate(sample_2D_bad_floats, 'float'))
def test_smart_2D_validate_ints(self): sample_2D_ints = '1,2,3\n 4,5,6' sample_2D_floats_like_ints = '1.0, 3.0\n 1, 2' self.assertTrue(smart_validate(sample_2D_ints, 'integer')) self.assertTrue(smart_validate(sample_2D_floats_like_ints, 'integer'))