code: def test_standard_scaler():
      input_df_train = pd.DataFrame({"feat1_num": [1.0, 0.5, 100.0]})
  
      expected_output_train = pd.DataFrame(
          {"feat1_num": [-0.70175673, -0.71244338, 1.4142001]}
      )
  
      input_df_test = pd.DataFrame({"feat1_num": [2.0, 4.0, 8.0]})
  
      expected_output_test = pd.DataFrame(
          {"feat1_num": [-0.68038342, -0.63763682, -0.55214362]}
      )
  
      pred_fn1, data1, log = standard_scaler(
          input_df_train, ["feat1_num"]
      )
      pred_fn2, data2, log = standard_scaler(
          input_df_train, ["feat1_num"], suffix="_suffix"
      )
      pred_fn3, data3, log = standard_scaler(
          input_df_train, ["feat1_num"], prefix="prefix_"
      )
      pred_fn4, data4, log = standard_scaler(
          input_df_train,
          ["feat1_num"],
          columns_mapping={"feat1_num": "feat1_num_raw"},
      )
  
      assert_almost_equal(
          expected_output_train.values, data1.values, decimal=5
      )
      assert_almost_equal(
          expected_output_test.values,
          pred_fn1(input_df_test).values,
          decimal=5,
      )
  
      assert_almost_equal(
          pd.concat(
              [
                  expected_output_train,
                  input_df_train[["feat1_num"]]
                  .copy()
                  .add_suffix("_suffix"),
              ],
              axis=1,
          ).values,
          data2.values,
          decimal=5,
      )
      assert_almost_equal(
          pd.concat(
              [
                  expected_output_test,
                  input_df_test[["feat1_num"]]
                  .copy()
                  .add_suffix("_suffix"),
              ],
              axis=1,
          ).values,
          pred_fn2(input_df_test).values,
          decimal=5,
      )
  
      assert_almost_equal(
          pd.concat(
              [
                  expected_output_train,
                  input_df_train[["feat1_num"]]
                  .copy()
                  .add_prefix("prefix_"),
              ],
              axis=1,
          ).values,
          data3.values,
          decimal=5,
      )
      assert_almost_equal(
          pd.concat(
              [
                  expected_output_test,
                  input_df_test[["feat1_num"]]
                  .copy()
                  .add_prefix("prefix_"),
              ],
              axis=1,
          ).values,
          pred_fn3(input_df_test).values,
          decimal=5,
      )
  
      assert_almost_equal(
          pd.concat(
              [
                  expected_output_train,
                  input_df_train[["feat1_num"]]
                  .copy()
                  .add_suffix("_raw"),
              ],
              axis=1,
          ).values,
          data4.values,
          decimal=5,
      )
      assert_almost_equal(
          pd.concat(
              [
                  expected_output_test,
                  input_df_test[["feat1_num"]]
                  .copy()
                  .add_suffix("_raw"),
              ],
              axis=1,
          ).values,
          pred_fn4(input_df_test).values,
          decimal=5,
      )
  
imports: from collections import OrderedDict
  import math
  import pandas
  import pytest
  from numpy import nan, round, sqrt, floor, log
  from numpy.testing import assert_almost_equal
  from pandas.testing import assert_frame_equal
  from fklearn.training.transformation import selector, capper, floorer, prediction_ranger, count_categorizer, label_categorizer, quantile_biner, truncate_categorical, rank_categorical, onehot_categorizer, target_categorizer, standard_scaler, ecdfer, discrete_ecdfer, custom_transformer, value_mapper, null_injector, missing_warner
label_desc: Use image node_id 13 for calling a global function with example usage: test_standard_scaler() without return types