code: def get_dummy_dfs(self, target_type=None):
      feat_types_1 = self.shuffle_array(self.FEATURE_TYPES)
      feat_types_2 = self.shuffle_array(self.FEATURE_TYPES)
  
      for t1, t2 in product(feat_types_1, feat_types_2):
          df = {}
          features = []
          for i, t in enumerate((t1, t2), start=1):
              if t == "onehot":
                  for j in range(self.DUMMY_ONEHOT_LENGTH):
                      df[f"feature_{i}_{j}"] = self.dummy_features[t][
                          :, j
                      ]
                  features.append(
                      [
                          f"feature_{i}_{j}"
                          for j in range(self.DUMMY_ONEHOT_LENGTH)
                      ]
                  )
              else:
                  df[f"feature_{i}"] = self.dummy_features[t]
                  features.append(f"feature_{i}")
          df = pd.DataFrame(df)
          if target_type == "regression":
              df["target"] = np.random.randn(self.DUMMY_DF_LENGTH)
          elif target_type == "binary":
              df["target"] = np.random.randint(
                  0, 2, self.DUMMY_DF_LENGTH
              )
          elif target_type == "multi-class":
              for i in range(self.DUMMY_MULTI_CLASSES):
                  df[f"target_{i}"] = np.random.randint(
                      0, 2, self.DUMMY_DF_LENGTH
                  )
  
          yield df, features, (t1, t2)
  
imports: import pytest
  import joblib
  import os
  import json
  import numpy
  import pandas
  from itertools import product
  import matplotlib
  from abc import ABC, abstractmethod
  import warnings
label_desc: Use image node_id 4 for calling the DummyDataGenerator obj's underlying member method code with example usage: obj.get_dummy_dfs(target_type) without return types