def test_validation_evaluate_and_classification_report(self, *mocks):
        model = CharLoadTFModel(self.model_path, self.label_mapping)
        model._construct_model()  # must make model to do priv validate func

        # validation data
        val_gen = [[
            np.ones((2, 20)),  # x_data
            np.zeros((2, 20, model.num_labels)),  # y_data
        ]]
        val_gen[0][1][0, :11, self.label_mapping["ADDRESS"]] = 1

        f1, f1_report = model._validate_training(val_gen, 32, True, True)
        self.assertIsNotNone(f1)
        self.assertIsNotNone(f1_report)
        self.assertEqual(11, f1_report["ADDRESS"]["support"])
 def test_param_validation(self, *mocks):
     # Make sure all parameters can be altered. Make sure non-valid params
     # are caught
     parameters = {
         "default_label": "UNKNOWN",
     }
     invalid_parameters = {
         "fake_extra_param": "fails",
     }
     model = CharLoadTFModel(self.model_path,
                             label_mapping=self.label_mapping,
                             parameters=parameters)
     model._construct_model()
     self.assertDictEqual(parameters, model._parameters)
     with self.assertRaises(ValueError):
         CharLoadTFModel(
             self.model_path,
             label_mapping=self.label_mapping,
             parameters=invalid_parameters,
         )