def METHOD_NAME(self):
    base_params = LevenbergMarquardtParams()
    # Test base params
    for base_max_iters in (50, 100):
        base_params.setMaxIterations(base_max_iters)
        params = GncLMParams(base_params)
        self.assertEqual(params.baseOptimizerParams.getMaxIterations(), base_max_iters)
    # Test printing
    params_str = str(params)
    for s in (
        "lossType",
        "maxIterations",
        "muStep",
        "relativeCostTol",
        "weightsTol",
        "verbosity",
    ):
        self.assertTrue(s in params_str)
    # Test each parameter
    for loss_type in (GncLossType.TLS, GncLossType.GM):
        params.setLossType(loss_type)  # Default is TLS
        self.assertEqual(params.lossType, loss_type)
    for max_iter in (1, 10, 100):
        params.setMaxIterations(max_iter)
        self.assertEqual(params.maxIterations, max_iter)
    for mu_step in (1.1, 1.2, 1.5):
        params.setMuStep(mu_step)
        self.assertEqual(params.muStep, mu_step)
    for rel_cost_tol in (1e-5, 1e-6, 1e-7):
        params.setRelativeCostTol(rel_cost_tol)
        self.assertEqual(params.relativeCostTol, rel_cost_tol)
    for weights_tol in (1e-4, 1e-3, 1e-2):
        params.setWeightsTol(weights_tol)
        self.assertEqual(params.weightsTol, weights_tol)
    for i in (0, 1, 2):
        verb = GncLMParams.Verbosity(i)
        params.setVerbosityGNC(verb)
        self.assertEqual(params.verbosity, verb)
    for inl in ([], [10], [0, 100]):
        params.setKnownInliers(inl)
        self.assertEqual(params.knownInliers, inl)
        params.knownInliers = []
    for out in ([], [1], [0, 10]):
        params.setKnownInliers(out)
        self.assertEqual(params.knownInliers, out)
        params.knownInliers = []
    # Test optimizer params
    optimizer = GncLMOptimizer(self.fg, self.initial_values, params)
    for ict_factor in (0.9, 1.1):
        new_ict = ict_factor * optimizer.getInlierCostThresholds()
        optimizer.setInlierCostThresholds(new_ict)
        self.assertAlmostEqual(optimizer.getInlierCostThresholds(), new_ict)
    for w_factor in (0.8, 0.9):
        new_weights = w_factor * optimizer.getWeights()
        optimizer.setWeights(new_weights)
        self.assertAlmostEqual(optimizer.getWeights(), new_weights)
    optimizer.setInlierCostThresholdsAtProbability(0.9)
    w1 = optimizer.getInlierCostThresholds()
    optimizer.setInlierCostThresholdsAtProbability(0.8)
    w2 = optimizer.getInlierCostThresholds()
    self.assertLess(w2, w1)