def test_changers(self): # setLocation self.assertEqual(self.r.getTopLeft(), lackey.Location(0, 0)) self.assertEqual( self.r.setLocation(lackey.Location(10, 10)).getTopLeft(), lackey.Location(10, 10)) with self.assertRaises(ValueError): self.r.setLocation(None) # setROI self.r.setROI((5, 5, 10, 10)) new_region = lackey.Screen(0) new_region.morphTo(self.r) with self.assertRaises(TypeError): new_region.morphTo("werdz") self.assertEqual(self.r.getTopLeft(), new_region.getTopLeft()) self.assertEqual(self.r.getTopRight(), new_region.getTopRight()) self.assertEqual(self.r.getBottomLeft(), new_region.getBottomLeft()) self.assertEqual(self.r.getBottomRight(), new_region.getBottomRight()) with self.assertRaises(TypeError): new_region.setROI("hammersauce") with self.assertRaises(TypeError): new_region.setROI() new_region.add(5, 5, 5, 5) self.assertEqual(new_region.getTopLeft(), lackey.Location(0, 0)) # copyTo - only guaranteed one screen, so just make sure it doesn't crash new_region.copyTo(0) new_region.copyTo(lackey.Screen(0))
def main(): lackey.Settings.InfoLogs = False lackey.Settings.ActionLogs = False r = start_game() board = r.offset(lackey.Location(336, 80)) board.setW(660) board.setH(660) cell_size = board.getW() / 8 while True: grid = find_gems(board) #print("\n".join([str(r) for r in grid])) moves = calculate_move(grid) if moves is None: print("No matches found, waiting...") continue square1, square2 = moves print(square1, square2) square1_click = lackey.Location( board.getX() + (square1[1] * cell_size + (cell_size / 2)), board.getY() + (square1[0] * cell_size + (cell_size / 2))) square2_click = lackey.Location( board.getX() + (square2[1] * cell_size + (cell_size / 2)), board.getY() + (square2[0] * cell_size + (cell_size / 2))) board.click(square1_click) lackey.sleep(0.3) board.click(square2_click)
def test_movement(self): self.mouse.move(lackey.Location(10, 10)) lackey.sleep(0.01) self.assertEqual(self.mouse.getPos().getTuple(), (10, 10)) self.mouse.moveSpeed(lackey.Location(100, 200), 0.5) self.assertEqual(self.mouse.getPos().getTuple(), (100, 200)) lackey.wheel(self.mouse.getPos(), 0, 3) # Mostly just verifying it doesn't crash
def test_around_methods(self): center_region = self.r.get(lackey.Region.MID_BIG) below_region = center_region.below() self.assertTrue(below_region.isRegionValid()) below_region = center_region.below(10) self.assertTrue(below_region.isRegionValid()) above_region = center_region.above() self.assertTrue(above_region.isRegionValid()) above_region = center_region.above(10) self.assertTrue(above_region.isRegionValid()) right_region = center_region.right() self.assertTrue(right_region.isRegionValid()) right_region = center_region.right(10) self.assertTrue(right_region.isRegionValid()) left_region = center_region.left() self.assertTrue(left_region.isRegionValid()) left_region = center_region.left(10) self.assertTrue(left_region.isRegionValid()) nearby_region = center_region.nearby(10) self.assertTrue(nearby_region.isRegionValid()) grow_region = center_region.grow(10, 5) self.assertTrue(grow_region.isRegionValid()) grow_region = center_region.grow(10) self.assertTrue(grow_region.isRegionValid()) inside_region = center_region.inside() self.assertTrue(inside_region.isRegionValid()) offset_region = center_region.offset(lackey.Location(10, 10)) self.assertTrue(offset_region.isRegionValid()) with self.assertRaises(ValueError): offset_region = left_region.offset(-1000, -1000)
def test_info(self): self.assertFalse(self.r.contains(lackey.Location(-5, -5))) new_region = lackey.Region(-10, -10, 5, 5) self.assertFalse(self.r.contains(new_region)) with self.assertRaises(TypeError): self.r.contains("werdz") self.r.hover() self.assertTrue(self.r.containsMouse())
def test_screen_methods(self): outside_loc = lackey.Location(-10, -10) self.assertIsNone(outside_loc.getScreen()) # Should be outside all screens and return None self.assertEqual(self.test_loc.getScreen().getID(), 0) # Test location should be on screen 0 self.assertEqual(outside_loc.getMonitor().getID(), 0) # Outside all screens, should return default monitor (0) self.assertEqual(self.test_loc.getMonitor().getID(), 0) # Outside all screens, should return default monitor (0) self.assertIsNone(outside_loc.getColor()) # No color outside all screens, should return None self.assertIsInstance(self.test_loc.getColor(), numpy.ndarray) # No color outside all screens, should return None
def test_constructor(self): self.assertIsInstance(lackey.Region(self.r), lackey.Region) self.assertIsInstance(lackey.Region((0, 0, 5, 5)), lackey.Region) self.assertIsInstance(lackey.Region(0, 0), lackey.Region) self.assertIsInstance(lackey.Region(0, 0, 10, 10, 3), lackey.Region) with self.assertRaises(TypeError): lackey.Region("foobar") with self.assertRaises(TypeError): lackey.Region() self.assertIsInstance( lackey.Region.create(lackey.Location(0, 0), 5, 5), lackey.Region) self.assertIsInstance( lackey.Region.create(lackey.Location(0, 0), lackey.Region.CREATE_X_DIRECTION_RIGHT, lackey.Region.CREATE_Y_DIRECTION_BOTTOM, 10, 10), lackey.Region) self.assertIsInstance( lackey.Region.create(lackey.Location(10, 10), lackey.Region.CREATE_X_DIRECTION_LEFT, lackey.Region.CREATE_Y_DIRECTION_TOP, 10, 10), lackey.Region)
def setUp(self): self.test_loc = lackey.Location(10, 11)
def test_movement(self): self.mouse.move(lackey.Location(10, 10)) self.assertEqual(self.mouse.getPos().getTuple(), (10, 10)) self.mouse.moveSpeed(lackey.Location(100, 200), 0.5) self.assertEqual(self.mouse.getPos().getTuple(), (100, 200))