code: def test_partitioned_min_max_scaler(self):
      ls = LinearScalarScaler(
          "score", "tenant", "new_score", 1, 2, use_pandas=False
      )
  
      df = self.create_sample_dataframe()
      model = ls.fit(df)
      new_df = model.transform(df)
  
      assert new_df.count() == df.count()
  
      t1_arr = (
          new_df.filter(f.col("tenant") == "t1")
          .orderBy("new_score")
          .collect()
      )
      assert len(t1_arr) == 2
      assert t1_arr[0]["new_score"] == 1.0
      assert t1_arr[1]["new_score"] == 2.0
  
      t2_arr = (
          new_df.filter(f.col("tenant") == "t2")
          .orderBy("new_score")
          .collect()
      )
      assert len(t2_arr) == 2
      assert t2_arr[0]["new_score"] == 1.0
      assert t2_arr[1]["new_score"] == 2.0
  
      t3_arr = (
          new_df.filter(f.col("tenant") == "t3")
          .orderBy("new_score")
          .collect()
      )
      assert len(t3_arr) == 1
      # this is the average between min and max
      assert t3_arr[0]["new_score"] == 1.5
  
file_path: SynapseML/core/src/test/python/synapsemltest/cyber/feature/test_scalers.py
imports: import unittest
  from typing import Type
  from pyspark.sql import functions, types
  from synapse.ml.cyber.feature import LinearScalarScaler, StandardScalarScaler
  from synapsemltest.cyber.explain_tester import ExplainTester
  from synapsemltest.spark import *
label_desc: Use image node_id 3 for calling the TestScalers obj's underlying member method code with example usage: obj.test_partitioned_min_max_scaler() without return types