code: def test_multifactor_scheduler():
      base_lr = 0.1
      steps = [15, 25]
      factor = 0.1
      sched = mx.lr_scheduler.MultiFactorScheduler(
          steps,
          factor,
          base_lr=base_lr,
          warmup_steps=10,
          warmup_begin_lr=0.05,
          warmup_mode="linear",
      )
  
      assert sched(0) == 0.05
      np.testing.assert_almost_equal(
          sched(5), 0.05 + (base_lr - 0.05) / 2
      )
      np.testing.assert_almost_equal(sched(15), base_lr)
      np.testing.assert_almost_equal(sched(16), base_lr * factor)
      np.testing.assert_almost_equal(sched(20), base_lr * factor)
      np.testing.assert_almost_equal(
          sched(26), base_lr * factor * factor
      )
      np.testing.assert_almost_equal(
          sched(100), base_lr * factor * factor
      )
  
imports: import itertools
  import numpy
  import itertools
  import mxnet
  import mxnet.lr_scheduler
  from mxnet import gluon
  import unittest
  import pytest
  import math
  from mxnet.test_utils import *
  from common import retry, xfail_when_nonstandard_decimal_separator
label_desc: Use image node_id 27 for calling a global function with example usage: test_multifactor_scheduler() without return types