def test_beam(self): beam = rlfl.project_beam(self.map, ORIGOS[1], ORIGOS[4]) self.assertEqual(17, len(beam)) beam = rlfl.project_beam(self.map, ORIGOS[1], ORIGOS[1]) self.assertEqual(1, len(beam)) beam = rlfl.project_beam(self.map, ORIGOS[1], ORIGOS[4], -5) self.assertEqual(17, len(beam))
def test_beam(self): test = [0, 0, 29, 7, 10, 29, 6, 10, 0] for i in range(2, 8): beam = rlfl.project_beam(self.map, ORIGOS[1], ORIGOS[i], rlfl.MAX_RANGE, rlfl.PROJECT_REFL) self.assertEqual(test[i], len(beam), i) # print_map(MAP, beam, ORIGOS[1], ORIGOS[i]) # Diagonals create random fun beam = rlfl.project_beam(self.map, ORIGOS[1], ORIGOS[8], rlfl.MAX_RANGE, rlfl.PROJECT_REFL) self.assertIn(len(beam), [8, 15])
def test_input(self): test = ( { 'p': (10, 10), 'p1': (10, 10), 'm': -1, 's': 'Map not initialized', 'r': 2, 'l': 10, }, { 'p': (-1, -1), 'p1': (10, 10), 'm': self.map, 's': 'Projection failed: origin invalid', 'r': 2, 'l': 10, }, { 'p1': (-1, -1), 'p': (10, 10), 'm': self.map, 's': 'Projection failed: destination invalid', 'r': 2, 'l': 10, }, { 'p1': (-1, -1), 'p': (-1, -1), 'm': self.map, 's': 'Projection failed: origin invalid', 'r': 2, 'l': 10, }, ) for i in test: try: rlfl.project_beam(i['m'], i['p'], i['p1'], i['l']) except Exception as e: self.assertEqual(str(e), i['s']) self.assertEqual(str(e.__class__), "<class 'rlfl.Error'>") else: self.fail('Expected Exception: %s in project_beam' % (i['s'])) for f in ['project_ball', 'project_cone']: for i in test: try: getattr(rlfl, f)(i['m'], i['p'], i['p1'], i['r'], i['l']) except Exception as e: self.assertEqual(str(e), i['s']) self.assertEqual(str(e.__class__), "<class 'rlfl.Error'>") else: self.fail('Expected Exception: %s in %s' % (i['s'], f))
def show_beam(self, source, target, rng=-1, flags=0): beam = rlfl.project_beam(self.mapnum, self.origos[source], self.origos[target], rng, flags) self.print_map(beam, self.origos[source], self.origos[target])