def METHOD_NAME(self):
    """Testing Atomic applyMove popMove"""
    board = LBoard(variant=ATOMICCHESS)
    board.applyFen(FEN1)
    print(board)
    hist_exploding_around0 = [a[:] for a in board.hist_exploding_around]
    print_apply_pop = False
    for lmove1 in genAllMoves(board):
        board.applyMove(lmove1)
        if board.opIsChecked():
            if print_apply_pop:
                print("popMove1 (invalid)", Move(lmove1))
            board.popMove()
            continue
        hist_exploding_around1 = [a[:] for a in board.hist_exploding_around]
        for lmove2 in genAllMoves(board):
            board.applyMove(lmove2)
            if print_apply_pop:
                print("   applyMove2", Move(lmove2))
            if board.opIsChecked():
                if print_apply_pop:
                    print("   popMove2 (invalid)", Move(lmove2))
                board.popMove()
                continue
            hist_exploding_around2 = [a[:] for a in board.hist_exploding_around]
            for lmove3 in genAllMoves(board):
                board.applyMove(lmove3)
                if print_apply_pop:
                    print("      applyMove3", Move(lmove3))
                if board.opIsChecked():
                    if print_apply_pop:
                        print("      popMove3 (invalid)", Move(lmove3))
                    board.popMove()
                    continue
                board.popMove()
                if print_apply_pop:
                    print("      popMove3", Move(lmove3))
                self.assertEqual(
                    hist_exploding_around2, board.hist_exploding_around
                )
            board.popMove()
            if print_apply_pop:
                print("   popMove2", Move(lmove2))
            self.assertEqual(hist_exploding_around1, board.hist_exploding_around)
        board.popMove()
        if print_apply_pop:
            print("popMove1", Move(lmove1))
        self.assertEqual(hist_exploding_around0, board.hist_exploding_around)