|
| 1 | + |
| 2 | +import pathlib |
| 3 | +import unittest |
| 4 | + |
| 5 | +from dm_job_utilities.misc import ( |
| 6 | + calc_geometric_mean, |
| 7 | + is_type, |
| 8 | + read_delimiter, |
| 9 | + update_charge_flag_in_atom_block, |
| 10 | +) |
| 11 | + |
| 12 | +class TestMiscMethods(unittest.TestCase): |
| 13 | + |
| 14 | + def test_update_charge_flag_in_atom_block(self): |
| 15 | + atom_block_a_in = pathlib.Path('test-data/atom-block-a-in.sdf').read_text() |
| 16 | + atom_block_a_out = pathlib.Path('test-data/atom-block-a-out.sdf').read_text() |
| 17 | + output = update_charge_flag_in_atom_block(atom_block_a_in) |
| 18 | + self.assertEqual(output, atom_block_a_out) |
| 19 | + |
| 20 | + def test_read_delimiter(self): |
| 21 | + self.assertEqual(read_delimiter("comma"), ",") |
| 22 | + self.assertEqual(read_delimiter("pipe"), "|") |
| 23 | + self.assertEqual(read_delimiter("space"), None) |
| 24 | + self.assertEqual(read_delimiter("tab"), "\t") |
| 25 | + self.assertEqual(read_delimiter("unknown"), "unknown") |
| 26 | + |
| 27 | + def test_calc_geometric_mean(self): |
| 28 | + data = [1.0, 2.0, 3.0, 4.0, 5.0] |
| 29 | + mean = calc_geometric_mean(data) |
| 30 | + self.assertAlmostEqual(mean, 2.605, 3) |
| 31 | + |
| 32 | + def test_is_type(self): |
| 33 | + self.assertEqual(is_type(None, int), (0, None)) |
| 34 | + self.assertEqual(is_type(1, int), (1, 1)) |
| 35 | + self.assertEqual(is_type("1", str), (1, '1')) |
| 36 | + self.assertEqual(is_type(1.0, float), (1, 1)) |
| 37 | + self.assertEqual(is_type(1, str), (1, '1')) |
| 38 | + self.assertEqual(is_type("1", float), (1, 1.0)) |
| 39 | + self.assertEqual(is_type(1.0, int), (1, 1)) |
0 commit comments