|
1 |
| -# TODO TEST add tests |
| 1 | +# TODO TEST add more tests |
2 | 2 |
|
3 | 3 | from cdmtaskservice import models # @UnusedImport
|
4 | 4 |
|
5 | 5 |
|
6 |
| -def test_noop(): |
7 |
| - pass |
| 6 | +def test_files_per_container(): |
| 7 | + _files_per_container(1, 1, 1, [[1]]) |
| 8 | + _files_per_container(1, 2, 1, [[1, 2]]) |
| 9 | + _files_per_container(2, 1, 1, [[1]]) |
| 10 | + _files_per_container(2, 2, 2, [[1], [2]]) |
| 11 | + _files_per_container(3, 2, 2, [[1], [2]]) |
| 12 | + _files_per_container(3, 3, 3, [[1], [2], [3]]) |
| 13 | + _files_per_container(3, 4, 3, [[1, 2], [3], [4]]) |
| 14 | + _files_per_container(3, 5, 3, [[1, 2], [3, 4], [5]]) |
| 15 | + _files_per_container(3, 6, 3, [[1, 2], [3, 4], [5, 6]]) |
| 16 | + _files_per_container(3, 7, 3, [[1, 2, 3], [4, 5], [6, 7]]) |
| 17 | + |
| 18 | + |
| 19 | +def _files_per_container(containers: int, files: int, expcont: int, expfiles: list[list[int]]): |
| 20 | + ji = models.JobInput( |
| 21 | + cluster=models.Cluster.PERLMUTTER_JAWS, |
| 22 | + image="fakeimage", |
| 23 | + params=models.Parameters(), |
| 24 | + num_containers=containers, |
| 25 | + input_files=[f"foo/bar{i}" for i in range(1, files + 1)], |
| 26 | + output_dir="foo/bar" |
| 27 | + ) |
| 28 | + fpc = ji.get_files_per_container() |
| 29 | + exp = [] |
| 30 | + for lst in expfiles: |
| 31 | + exp.append([f"foo/bar{i}" for i in lst]) |
| 32 | + assert fpc == models.FilesPerContainer(expcont, exp) |
| 33 | + |
| 34 | + ji = models.JobInput( |
| 35 | + cluster=models.Cluster.PERLMUTTER_JAWS, |
| 36 | + image="fakeimage", |
| 37 | + params=models.Parameters(), |
| 38 | + num_containers=containers, |
| 39 | + input_files=[models.S3File(file=f"foo/bar{i}") for i in range(1, files + 1)], |
| 40 | + output_dir="foo/bar" |
| 41 | + ) |
| 42 | + fpc = ji.get_files_per_container() |
| 43 | + exp = [] |
| 44 | + for lst in expfiles: |
| 45 | + exp.append([models.S3File(file=f"foo/bar{i}") for i in lst]) |
| 46 | + assert fpc == models.FilesPerContainer(expcont, exp) |
0 commit comments