code: def test_basic_usage(self):
      fs = feature_space.FeatureSpace(
          features={
              "float_1": "float",
              "float_2": "float_normalized",
              "float_3": "float_discretized",
              "string_1": "string_categorical",
              "string_2": "string_hashed",
              "int_1": "integer_categorical",
              "int_2": "integer_hashed",
              "int_3": "integer_categorical",
          },
          crosses=[("float_3", "string_1"), ("string_2", "int_2")],
          output_mode="concat",
      )
      # Test unbatched adapt
      fs.adapt(self._get_train_data_dict(as_dataset=True))
      # Test batched adapt
      fs.adapt(self._get_train_data_dict(as_dataset=True).batch(4))
  
      # Test unbatched call on raw data
      data = {
          key: value[0]
          for key, value in self._get_train_data_dict().items()
      }
      out = fs(data)
      out_dim = 195
      self.assertEqual(out.shape, (out_dim,))
  
      # Test unbatched call on tensors
      if backend.backend() == "tensorflow":
          data = self._get_train_data_dict(as_tensors=True)
          data = {key: value[0] for key, value in data.items()}
          out = fs(data)
          self.assertEqual(out.shape, (out_dim,))
  
      # Test batched call on raw data
      out = fs(self._get_train_data_dict())
      self.assertEqual(out.shape, (10, out_dim))
  
      # Test batched call on tensors
      if backend.backend() == "tensorflow":
          out = fs(self._get_train_data_dict(as_tensors=True))
          self.assertEqual(out.shape, (10, out_dim))
  
imports: import os
  import pytest
  from tensorflow import data
  from keras import backend
  from keras import layers
  from keras import models
  from keras import ops
  from keras import testing
  from keras.layers.preprocessing import feature_space
  from keras.saving import saving_api
label_desc: Use image node_id 5 for calling the FeatureSpaceTest obj's underlying member method code with example usage: obj.test_basic_usage() without return types