def METHOD_NAME(self):
    """
    Test applying transform with dynamic properties.
    """
    gpt1 = OCIO.GradingPrimaryTransform(OCIO.GRADING_LOG)
    gpt1.makeDynamic()
    gpt2 = OCIO.GradingPrimaryTransform(OCIO.GRADING_LOG)
    val2 = OCIO.GradingPrimary(OCIO.GRADING_LOG)
    val2.gamma = OCIO.GradingRGBM(1.2, 1.4, 1.1, 1.0)
    val2.saturation = 1.5
    gpt2.setValue(val2)
    group = OCIO.GroupTransform()
    group.appendTransform(gpt1)
    group.appendTransform(gpt2)
    cfg = OCIO.Config().CreateRaw()
    proc = cfg.getProcessor(group)
    cpu = proc.getDefaultCPUProcessor()
    self.assertTrue(cpu.isDynamic())
    self.assertTrue(cpu.hasDynamicProperty(OCIO.DYNAMIC_PROPERTY_GRADING_PRIMARY))
    dp = cpu.getDynamicProperty(OCIO.DYNAMIC_PROPERTY_GRADING_PRIMARY)
    self.assertEqual(dp.getType(), OCIO.DYNAMIC_PROPERTY_GRADING_PRIMARY)
    # Apply the transform and keep the result.
    pixel = [0.48, 0.18, 0.18]
    rgb1 = cpu.applyRGB(pixel)
    # Change the transform through the dynamic property.
    val1 = OCIO.GradingPrimary(OCIO.GRADING_LOG)
    val1.gamma = OCIO.GradingRGBM(1.1, 1.2, 1.3, 1.0)
    dp.setGradingPrimary(val1)
    # Apply the transform to the same pixel and verify result is different.
    rgb2 = cpu.applyRGB(pixel)
    self.assertNotEqual(rgb1[0], rgb2[0])
    self.assertNotEqual(rgb1[1], rgb2[1])
    self.assertNotEqual(rgb1[2], rgb2[2])