code: def test_serialize_half_opened_interval(self):
      # arrange
      # 18 < age
      scorecard = dataclasses.replace(
          self.empty_scorecard, characteristics=self.characteristics1
      )
  
      # when
      serialized = xmltodict.parse(
          TestNyokaSerializer.nyokaSerializer.serialize(scorecard)
      )
      interval_content = serialized["PMML"]["Scorecard"][
          "Characteristics"
      ]["Characteristic"]["Attribute"]
      interval_upper = interval_content["SimplePredicate"]
  
      # assert
      self.assertEqual(interval_upper["@field"], "age1")
      self.assertEqual(interval_upper["@operator"], "lessThan")
      self.assertEqual(interval_upper["@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 6 for calling the TestNyokaSerializer obj's underlying member method code with example usage: obj.test_serialize_half_opened_interval() without return types