code: def test_ui_feat_preparation_and_fill_nan(self):
      config_dict = {
          "model": "BPR",
          "dataset": "ui_feat_preparation_and_fill_nan",
          "data_path": current_path,
          "load_col": None,
          "filter_inter_by_user_or_item": False,
          "normalize_field": None,
          "normalize_all": None,
      }
      dataset = new_dataset(config_dict=config_dict)
      user_token_list = dataset.id2token(
          "user_id", dataset.user_feat["user_id"]
      )
      item_token_list = dataset.id2token(
          "item_id", dataset.item_feat["item_id"]
      )
      assert (
          user_token_list == ["[PAD]", "ua", "ub", "uc", "ud", "ue"]
      ).all()
      assert (
          item_token_list == ["[PAD]", "ia", "ib", "ic", "id", "ie"]
      ).all()
      assert dataset.inter_feat["rating"][3] == 1.0
      assert dataset.user_feat["age"][4] == 1.5
      assert dataset.item_feat["price"][4] == 1.5
      assert (
          dataset.inter_feat["time_list"][0] == [1.0, 2.0, 3.0]
      ).all()
      assert (dataset.inter_feat["time_list"][1] == [2.0]).all()
      assert (dataset.inter_feat["time_list"][2] == []).all()
      assert (dataset.inter_feat["time_list"][3] == [5, 4]).all()
      assert (dataset.user_feat["profile"][0] == []).all()
      assert (dataset.user_feat["profile"][1] == [1, 2, 3]).all()
      assert (dataset.user_feat["profile"][2] == []).all()
      assert (dataset.user_feat["profile"][3] == [3]).all()
      assert (dataset.user_feat["profile"][4] == []).all()
      assert (dataset.user_feat["profile"][5] == [3, 2]).all()
  
imports: import logging
  import os
  import pytest
  from recbole.config import Config
  from recbole.data import create_dataset
  from recbole.utils import init_seed
label_desc: Use image node_id 26 for calling the TestDataset obj's underlying member method code with example usage: obj.test_ui_feat_preparation_and_fill_nan() without return types