code: def test_seed_per_observation_plus_product_of_seeding_variables(
      df_na,
  ):
      # test case 3: observation seed, 2 variables as seed, product of seed variables
      # need to fill variables used as seed
      df_na = df_na.copy()
      df_na[["Marks", "Age"]] = df_na[["Marks", "Age"]].fillna(1)
  
      imputer = RandomSampleImputer(
          variables=["City", "Studies"],
          random_state=["Marks", "Age"],
          seed="observation",
          seeding_method="multiply",
      )
  
      X_transformed = imputer.fit_transform(df_na)
  
      # expected output
      ref = {
          "Name": [
              "tom",
              "nick",
              "krish",
              np.nan,
              "peter",
              np.nan,
              "fred",
              "sam",
          ],
          "City": [
              "London",
              "Manchester",
              "London",
              "Manchester",
              "London",
              "London",
              "Bristol",
              "Manchester",
          ],
          "Studies": [
              "Bachelor",
              "Bachelor",
              "Bachelor",
              "Masters",
              "Bachelor",
              "PhD",
              "None",
              "Masters",
          ],
          "Age": [20, 21, 19, np.nan, 23, 40, 41, 37],
          "Marks": [0.9, 0.8, 0.7, np.nan, 0.3, np.nan, 0.8, 0.6],
          "dob": pd.date_range("2020-02-24", periods=8, freq="T"),
      }
      ref = pd.DataFrame(ref)
  
      assert imputer.variables == ["City", "Studies"]
      assert imputer.random_state == ["Marks", "Age"]
      assert imputer.seed == "observation"
  
      pd.testing.assert_frame_equal(
          imputer.X_[["City", "Studies"]], df_na[["City", "Studies"]]
      )
  
      pd.testing.assert_frame_equal(
          X_transformed[["City", "Studies"]],
          ref[["City", "Studies"]],
          check_dtype=False,
      )
  
file_path: feature_engine/tests/test_imputation/test_random_sample_imputer.py
imports: import numpy
  import pandas
  import pytest
  from feature_engine.imputation import RandomSampleImputer
  from feature_engine.imputation.random_sample import _define_seed
label_desc: Use image node_id 4 for calling a global function with example usage: test_seed_per_observation_plus_product_of_seeding_variables(df_na) without return types