code: def test_early_stop_properties(self) -> None:
      es1 = EarlyStopChecker("min", 3, 0.3, False, "rel", 2.2, 8.5)
      es2 = EarlyStopChecker("max", 5)
  
      self.assertEqual(es1.mode, "min")
      self.assertEqual(es1.patience, 3)
      self.assertEqual(es1.min_delta, -0.3)
      self.assertFalse(es1.check_finite)
      self.assertEqual(es1.threshold_mode, "rel")
      self.assertEqual(es1.stopping_threshold, 2.2)
      self.assertEqual(es1.divergence_threshold, 8.5)
      self.assertEqual(es1._mode_func, torch.lt)
      self.assertEqual(es1._mode_char, "<")
  
      self.assertEqual(es2.mode, "max")
      self.assertEqual(es2.patience, 5)
      self.assertEqual(es2.min_delta, 0.0)
      self.assertTrue(es2.check_finite)
      self.assertEqual(es2.threshold_mode, "abs")
      self.assertIsNone(es2.stopping_threshold)
      self.assertIsNone(es2.divergence_threshold)
      self.assertEqual(es2._mode_func, torch.gt)
      self.assertEqual(es2._mode_char, ">")
  
imports: import unittest
  import torch
  from torchtnt.utils.early_stop_checker import EarlyStopChecker
label_desc: Use image node_id 18 for calling the EarlyStopCheckerTest obj's underlying member method code with example usage: obj.test_early_stop_properties() without return types