input: Write a function to generate a Python program that performs matrix multiplication on two given matrices. If the matrices are not compatible for multiplication (i.e., the number of columns in the first matrix is not equal to the number of rows in the second matrix), then the function should raise a ValueError with the message "Matrices are not compatible for multiplication".
  def matrix_multiplication(A, B):  
      rows_A = len(A)  
      cols_A = len(A[0])  
      rows_B = len(B)  
      cols_B = len(B[0])  
      if cols_A != rows_B:
          raise ValueError("Matrices are not compatible for multiplication")
      result = [[0 for i in range(cols_B)] for j in range(rows_A)]  
      for i in range(rows_A): 
          for j in range(cols_B): 
              for k in range(cols_A): 
                  result[i][j] += A[i][k] * B[k][j] 
      return result
  
  assert matrix_multiplication([[1, 2], [3, 4]], [[5, 6], [7, 8]]) == [[19, 22], [43, 50]]
  assert matrix_multiplication([[1, 2]], [[3], [4]]) == [[11]]
  assert matrix_multiplication([[1], [2]], [[3, 4]]) == [[3, 4], [6, 8]]
  try:
      matrix_multiplication([[1, 2]], [[3, 4], [5, 6]])
  except ValueError as e:
      assert str(e) == "Matrices are not compatible for multiplication"
  assert matrix_multiplication([], []) == []
output: def matrix_multiplication(A, B):  
      rows_A = len(A)  
      cols_A = len(A[0]) if A else 0
      rows_B = len(B)  
      cols_B = len(B[0]) if B else 0
      if cols_A != rows_B:
          raise ValueError("Matrices are not compatible for multiplication")
      result = [[0 for i in range(cols_B)] for j in range(rows_A)]  
      for i in range(rows_A): 
          for j in range(cols_B): 
              for k in range(cols_A): 
                  result[i][j] += A[i][k] * B[k][j] 
      return result