code: def test_serialize_closed_interval(self):
      # arrange
      # 18 < age < 25
      scorecard = dataclasses.replace(
          self.empty_scorecard, characteristics=self.characteristics2
      )
  
      # when
      serialized = xmltodict.parse(
          TestNyokaSerializer.nyokaSerializer.serialize(scorecard)
      )
      interval_content = serialized["PMML"]["Scorecard"][
          "Characteristics"
      ]["Characteristic"]["Attribute"]["CompoundPredicate"]
      interval_lower = interval_content["SimplePredicate"][0]
      interval_upper = interval_content["SimplePredicate"][1]
  
      # assert
      self.assertEqual(interval_content["@booleanOperator"], "and")
      self.assertEqual(interval_upper["@field"], "age2")
      self.assertEqual(interval_upper["@operator"], "lessThan")
      self.assertEqual(interval_upper["@value"], "25")
      self.assertEqual(interval_lower["@field"], "age2")
      self.assertEqual(interval_lower["@operator"], "greaterThan")
      self.assertEqual(interval_lower["@value"], "18")
  
file_path: AIX360/tests/rule_induction/trxf/pmml_export/test_nyoka_serialize_scorecard.py
imports: import datetime
  import random
  import unittest
  import dataclasses
  import xmltodict
  import aix360.algorithms.rule_induction.trxf.pmml_export.models
  import aix360.algorithms.rule_induction.trxf.pmml_export.serializer
label_desc: Use image node_id 5 for calling the TestNyokaSerializer obj's underlying member method code with example usage: obj.test_serialize_closed_interval() without return types