class_docstr: we test data loading, model instantiation, forecasting consistency, in particular
  (1) load a testing data
  (2) transform data
  (3) instantiate the VectorAR model and train
  (4) forecast, and the forecasting result agrees with the reference
class_docstr_tok: ["we","test","data","loading",",","model","instantiation",",","forecasting","consistency",",","in","particular","(","1",")","load","a","testing","data","(","2",")","transform","data","(","3",")","instantiate","the","VectorAR","model","and","train","(","4",")","forecast",",","and","the","forecasting","result","agrees","with","the","reference"]
code: def test_forecast_univariate_exog(self):
      print("-" * 80)
      logger.info("test_forecast_univariate_exog\n" + "-" * 80)
      self.run_test(True, True)
  
imports: import logging
  from os.path import abspath, dirname, join
  import sys
  import unittest
  from ts_datasets.forecast import SeattleTrail
  from merlion.evaluate.forecast import ForecastMetric
  from merlion.transform.normalize import MinMaxNormalize
  from merlion.transform.sequence import TransformSequence
  from merlion.transform.resample import TemporalResample
  from merlion.transform.bound import LowerUpperClip
  from merlion.models.factory import instantiate_or_copy_model, ModelFactory
  from merlion.models.utils.rolling_window_dataset import RollingWindowDataset
  from merlion.utils import TimeSeries
label_desc: Use image node_id 5 for calling the TestVectorAR obj's underlying member method code with example usage: obj.test_forecast_univariate_exog() without return types