Exemplo n.º 1
0
 def test_good_inputs(self):
     """Test base_curve for good inputs"""
     model = FairModel('model')
     meta = FairMetaModel('meta', models=[model, model])
     good_list = [model, meta, model]
     for input_item in [model, meta, good_list]:
         self._fbc._input_check(input_item)
Exemplo n.º 2
0
 def setUp(self):
     self._fbr = FairBaseReport()
     self._model_1 = FairModel('model1', n_simulations=5)
     self._model_1.input_data('Risk', mean=100, stdev=5)
     self._model_2 = FairModel('model2', n_simulations=5)
     self._model_2.input_data('Risk', mean=1000, stdev=50)
     self._metamodel = FairMetaModel(
         name='meta', 
         models=[self._model_1, self._model_2],
     )
Exemplo n.º 3
0
 def test_calculation(self):
     """Run a calulate all."""
     # Test regular instantiation
     m1 = FairModel.read_json(self._MODEL_JSON)
     m2 = FairModel.read_json(self._MODEL_JSON)
     self._meta = FairMetaModel('New Model', [m1, m2])
     # Test before
     self.assertFalse(self._meta.calculation_completed())
     # Calculate
     self._meta.calculate_all()
     # Test after
     self.assertTrue(self._meta.calculation_completed())
Exemplo n.º 4
0
 def test_tree_graph_creation(self):
     """Test violin plot creation"""
     # There is little to test here other than simple creation
     # Whether it comes out OK or not ... ¯\_(ツ)_/¯
     model = FairModel(name='Test')
     model.input_data('Loss Magnitude', mean=50, stdev=5)
     model.input_data('Loss Event Frequency', low=10, mode=20, high=30)
     metamodel = FairMetaModel(name='Test Meta', models=[model, model])
     with warnings.catch_warnings(record=False):
         warnings.simplefilter("ignore")
         fvp = FairViolinPlot(metamodel)
         _, _ = fvp.generate_image()
Exemplo n.º 5
0
 def test_creation(self):
     """Test basic instantiation"""
     # Ensure existence of appropriate attributes
     self.assertTrue(self._meta._model_uuid)
     self.assertTrue(self._meta._creation_date)
     # Check that the table is of proper-ish
     self.assertEqual(len(self._meta._risk_table.columns),
                      self._RISK_TABLE_COLUMN_COUNT)
     # Test regular instantiation
     m1 = FairModel.read_json(self._MODEL_JSON)
     m2 = FairModel.read_json(self._MODEL_JSON)
     self._meta = FairMetaModel('New Model', [m1, m2])
     # Throw garbage in metamodel
     self.assertRaises(FairException, FairMetaModel, 'Garnage Name',
                       ['Garbage Input'])
Exemplo n.º 6
0
 def test_generate_image(self):
     """Check HTML content can be generated"""
     model_1 = FairModel(name='Model', n_simulations=10)
     model_1.input_data('Loss Event Frequency', mean=10, stdev=1)
     model_1.input_data('Loss Magnitude', low=0, mode=10, high=100)
     model_1.calculate_all()
     meta_model_1 = FairMetaModel(
         name='Meta', 
         models=[model_1, model_1]
     ).calculate_all()
     # Suppress warnings for number of figures generated
     with warnings.catch_warnings(record=False):
         warnings.simplefilter("ignore")
         fsr = FairSimpleReport([model_1, meta_model_1])
         _ = fsr._construct_output()
Exemplo n.º 7
0
 def test_input_check(self):
     """Test the validity of the input check"""
     # Create inputs
     bad_model = 'Not a model'
     model = FairModel(name='model')
     bad_meta = 0
     meta = FairMetaModel(name='metamodel', models=[model, model])
     model_list = [model, meta]
     bad_model_list_1 = []
     bad_model_list_2 = [model, bad_model]
     # Test good items
     for good_item in [model, meta, model_list]:
         self._fbr._input_check(good_item)
     # Test bad items
     for bad_item in [bad_model, bad_meta, bad_model_list_1, bad_model_list_2]: 
         self.assertRaises(
             FairException,
             self._fbr._input_check,
             bad_item
         )