code: def test_score(self):
      # score function returns the raw anomaly scores
      print("-" * 80)
      logger.info("test_score\n" + "-" * 80 + "\n")
      scores = self.model.get_anomaly_score(self.vals_test)
      logger.info(f"Scores look like:\n{scores[:5]}")
      scores = scores.to_pd().values.flatten()
      logger.info("max score = " + str(max(scores)))
      logger.info("min score = " + str(min(scores)) + "\n")
  
      self.assertEqual(
          len(scores), len(self.model.transform(self.vals_test))
      )
  
file_path: merlion/tests/anomaly/test_spectral_residual.py
imports: import logging
  import sys
  import unittest
  from os.path import join, dirname, abspath
  import numpy
  from merlion.models.anomaly.spectral_residual import SpectralResidual, SpectralResidualConfig
  from merlion.post_process.threshold import AggregateAlarms
  from merlion.utils.data_io import csv_to_time_series
label_desc: Use image node_id 2 for calling the TestSpectralResidual obj's underlying member method code with example usage: obj.test_score() without return types