def METHOD_NAME(self):
    """
    Test the FormatMetadata attributes.
    """
    mat = OCIO.MatrixTransform()
    fmd = mat.getFormatMetadata()
    fmd.addChildElement('C1','V1')
    fmdc1 = fmd.getChildElements()[0]
    fmdc1['att1'] = 'val1'
    fmdc1['att2'] = 'val2'
    fmdc1['att3'] = 'val3'
    # Verify attributes names.
    atts = list(fmdc1)
    self.assertEqual(len(atts), 3)
    self.assertEqual(atts[0], 'att1')
    self.assertEqual(atts[1], 'att2')
    self.assertEqual(atts[2], 'att3')
    # Get attributes.
    attsIt = fmdc1.getAttributes()
    att1 = next(attsIt)
    self.assertEqual(att1[0], 'att1')
    self.assertEqual(att1[1], 'val1')
    att2 = next(attsIt)
    self.assertEqual(att2[0], 'att2')
    self.assertEqual(att2[1], 'val2')
    att3 = next(attsIt)
    self.assertEqual(att3[0], 'att3')
    self.assertEqual(att3[1], 'val3')
    try:
        next(attsIt)
    except StopIteration:
        pass
    else:
        raise AssertionError("FormatMetadata should not have other attributes.")
    # Test representation.
    self.assertEqual(str(fmd), '<ROOT><C1 att1="val1" att2="val2" att3="val3">V1</C1></ROOT>')
    # Attribute names are unique. Setting a value to an existing attribute is replacing the
    # existing attribute value.
    fmdc1['att1'] = 'new val1'
    atts = list(fmdc1)
    self.assertEqual(len(atts), 3)
    attsIt = fmdc1.getAttributes()
    att1 = next(attsIt)
    self.assertEqual(att1[0], 'att1')
    self.assertEqual(att1[1], 'new val1')
    # Clear removes attributes.
    fmdc1.clear()
    atts = list(fmdc1)
    self.assertEqual(len(atts), 0)