            codes = set()
            for fw in fws:
              codes |= get_platform_codes([fw])
  
            # Either no dates should be parsed or all dates should be parsed
            self.assertEqual(len({b'-' in code for code in codes}), 1)
  
    def test_platform_codes_all_parsable(self):
      # Assert every supported ECU FW version returns one platform code
      for fw_by_addr in FW_VERSIONS.values():
        for addr, fws in fw_by_addr.items():
 
</s> remove   def test_platform_codes_all_parsable(self):
    # Assert every supported ECU FW version returns one platform code
    for fw_by_addr in FW_VERSIONS.values():
      for addr, fws in fw_by_addr.items():
        if addr[0] in PLATFORM_CODE_ECUS:
          for f in fws:
            self.assertEqual(1, len(get_platform_codes([f])), f"Unable to parse FW: {f}")
 </s> add           # Hyundai places the ECU part number in their FW versions, assert all parsable
          # Some examples of valid formats: b"56310-L0010", b"56310L0010", b"56310/M6300"
          for fw in fws:
            match = PART_NUMBER_FW_PATTERN.search(fw)
            self.assertIsNotNone(match, fw) </s> remove             codes |= get_platform_codes([fw])
 </s> add             result = get_platform_codes([fw])
            self.assertEqual(1, len(result), f"Unable to parse FW: {fw}")
            codes |= result

          # Some newer platforms have date codes in a different format we don't yet parse,
          # for now assert we can parse all FW or none
          self.assertEqual(len({b"-" in code for code in codes}), 1,
                           "Not all FW dates are parsable") </s> remove   def test_fw_part_numbers(self):
    # Hyundai places the ECU part number in their FW versions, assert all parsable
    # Some examples of valid formats: '56310-L0010', '56310L0010', '56310/M6300'
    for car_model, ecus in FW_VERSIONS.items():
      with self.subTest(car_model=car_model):
        if car_model == CAR.HYUNDAI_GENESIS:
          raise unittest.SkipTest("No part numbers for car model")

        for ecu, fws in ecus.items():
          if ecu[0] not in PLATFORM_CODE_ECUS:
            continue

          for fw in fws:
            match = PART_NUMBER_FW_PATTERN.search(fw)
            self.assertIsNotNone(match, fw)
 </s> add   def test_fw_format(self):
    # Asserts:
    # - every supported ECU FW version returns one platform code
    # - every supported ECU FW version has a part number
    # - expected parsing of ECU FW dates </s> remove     codes = get_platform_codes([b'\xf1\x00DH LKAS 1.1 -150210'])
 </s> add     codes = get_platform_codes([b"\xf1\x00DH LKAS 1.1 -150210"]) </s> remove   def test_fw_dates(self):
    # Some newer platforms have date codes in a different format we don't yet parse,
    # for now assert date format is consistent for all FW across each platform
 </s> add 
          if car_model == CAR.HYUNDAI_GENESIS:
            raise unittest.SkipTest("No part numbers for car model")
            codes = set()
            for fw in fws:
              codes |= get_platform_codes([fw])
  
          if car_model == CAR.HYUNDAI_GENESIS:
            raise unittest.SkipTest("No part numbers for car model")
          if car_model == CAR.HYUNDAI_GENESIS:
            raise unittest.SkipTest("No part numbers for car model")
  
    def test_platform_codes_all_parsable(self):
      # Assert every supported ECU FW version returns one platform code
      for fw_by_addr in FW_VERSIONS.values():
        for addr, fws in fw_by_addr.items():
keep keep keep keep replace replace keep keep keep keep keep
 Hyundai FPv2 unit tests: clean up (#28542)

* be consistent with quotes

* combine tests

* cmt 
selfdrive/car/hyundai/tests/test_hyundai.py