def test_io(self): tempfilename = self.tempfilename tempfile = masterslave.open(tempfilename, mode='w') tempfile.write(str(masterslave.rank()) + '\n') tempfile.flush() contents = '' with open(tempfilename) as stillopen: contents = stillopen.read() assert_in(str(masterslave.rank()) + '\n', contents) tempfile.close() with open(tempfilename) as nowclosed: ranks = [int(s.strip()) for s in nowclosed] assert_equal(set(ranks), set(range(masterslave.size()))) tempfile = masterslave.open(tempfilename, 'a') tempfile.write(str(masterslave.rank()) + '\n') tempfile.close() with open(tempfilename) as nowclosed: ranks = [int(s.strip()) for s in nowclosed] assert_equal(len(ranks), masterslave.size() * 2) assert_equal(set(ranks), set(range(masterslave.size()))) if masterslave.size() != 1: masterslave._comm.Barrier()
def test_MPIFileHandler(self): tempfilename = self.tempfilename handler = masterslave.MPIFileHandler(tempfilename, 'w') host = gethostname() formatter = logging.Formatter(host + ':%(message)s') handler.setFormatter(formatter) logging.root.addHandler(handler) logging.warn('TEST') logging.getLogger().removeHandler(handler) handler.flush() handler.close() lines = {} with open(tempfilename) as tempfile: lines = set(tempfile.readlines()) assert_equal(lines, set([host + ':TEST\n'])) if masterslave.size() != 1: masterslave._comm.Barrier()
def test_map(): size = masterslave.size() def func(dummy): return dummy, masterslave.rank() def test_n(n): array = range(n) result = masterslave.map(func, array) if result: result = list(result) if result: output, ranks = zip(*result) assert_equal(list(output), array) proper_ranks = set(range(min(size - 1, 1), min(n + 1, size))) assert_equal(set(ranks), proper_ranks) for n in [size // 2, size - 1, size, size * 2]: test_n(n)
def test_farm(): size = masterslave.size() def func(dummy): return dummy, masterslave.rank() def test_n(n): array = range(n) result = masterslave.farm(func, array) if result: result = list(result) if result: array, ranks = zip(*result) assert_equal(len(array), n) assert_equal(set(array), set(range(n))) proper_ranks = set(range(min(size - 1, 1), min(n + 1, size))) assert_equal(set(ranks), proper_ranks) for n in [size // 2, size - 1, size, size * 2]: test_n(n)