code: def test__plot_feature_interaction_detailed(
      features, targets, sort, top_k, exp_interaction
  ):
      axes = _plot_feature_interaction(
          exp=exp_interaction,
          features=features,
          targets=targets,
          summarise=False,
          sort=sort,
          top_k=top_k,
      ).ravel()
  
      expected_interaction = np.array(
          [
              exp_interaction.data["feature_interaction"][targets[0]][
                  ft
              ]
              for ft in features
          ]
      )
      expected_cond_import0 = np.array(
          [
              exp_interaction.data["conditional_importance"][ft][0][
                  targets[0]
              ]
              for ft in features
          ]
      )
      expected_cond_import1 = np.array(
          [
              exp_interaction.data["conditional_importance"][ft][1][
                  targets[0]
              ]
              for ft in features
          ]
      )
  
      if sort:
          sorted_idx = np.argsort(expected_interaction)[::-1]
          expected_interaction = expected_interaction[sorted_idx][
              :top_k
          ]
          expected_cond_import0 = expected_cond_import0[sorted_idx][
              :top_k
          ]
          expected_cond_import1 = expected_cond_import1[sorted_idx][
              :top_k
          ]
  
      interaction = [
          extract_number(axes[i].get_title())
          for i in range(0, len(axes), 3)
          if axes[i] is not None
      ]
      cond_import0 = [
          extract_number(axes[i].get_title())
          for i in range(1, len(axes), 3)
          if axes[i] is not None
      ]
      cond_import1 = [
          extract_number(axes[i].get_title())
          for i in range(2, len(axes), 3)
          if axes[i] is not None
      ]
  
      assert np.allclose(interaction, expected_interaction)
      assert np.allclose(cond_import0, expected_cond_import0)
      assert np.allclose(cond_import1, expected_cond_import1)
  
imports: import re
  from copy import deepcopy
  import matplotlib.pyplot
  import numpy
  import pandas
  import pytest
  from pytest_lazyfixture import lazy_fixture
  from sklearn.ensemble import GradientBoostingRegressor
  from sklearn.linear_model import LinearRegression
  from alibi.api.defaults import DEFAULT_DATA_PDVARIANCE, DEFAULT_META_PDVARIANCE
  from alibi.api.interfaces import Explanation
  from alibi.explainers import PartialDependence, PartialDependenceVariance, TreePartialDependence
  from alibi.explainers.pd_variance import _plot_feature_importance, _plot_feature_interaction, _plot_hbar, plot_pd_variance
label_desc: Use image node_id 23 for calling a global function with example usage: test__plot_feature_interaction_detailed(features, targets, sort, top_k, exp_interaction) without return types