class_docstr: A custom factor that makes assertions about the lookback windows that
  it gets passed.
  
  Parameters
  ----------
  input_ : Term
      The input term to the factor.
  window_length : int
      The length of the lookback window.
  expected_windows : dict[int, dict[pd.Timestamp, np.ndarray]]
      For each asset, for each day, what the expected lookback window is.
  
  Notes
  -----
  The output of this factor is the same as ``Latest``. Any assets or days
  not in ``expected_windows`` are not checked.
code: def __new__(cls, input_, window_length, expected_windows):
      return super(CheckWindowsFactor, cls).__new__(
          cls,
          inputs=[input_],
          dtype=input_.dtype,
          window_length=window_length,
          expected_windows=frozenset(
              (k, IDBox(v)) for k, v in expected_windows.items()
          ),
      )
  
file_path: zipline/zipline/testing/pipeline_terms.py
imports: import numpy
  from zipline.pipeline.factors.factor import CustomFactor
  from zipline.pipeline.classifiers.classifier import CustomClassifier
  from zipline.utils.idbox import IDBox
  from .predicates import assert_equal
label_desc: Use image node_id 1 for calling the CheckWindowsFactor obj's underlying member method code with example usage: obj.__new__(cls, input_, window_length, expected_windows) and returns: super