Пример #1
0
    def test_raise_warning(self):
        with warnings.catch_warnings(record=True) as w:
            xanes_test = XANES(self.test_row_x,
                               self.test_row_spect,
                               self.test_row_absorb_specie,
                               edge="K",
                               **self.test_row_add_paras)
            self.assertTrue("maximum derivative" in str(w[-1].message))
            self.assertEqual(xanes_test.composition, "NaB(CO2)4")
            self.assertEqual(len(xanes_test.x), 200)
            self.assertEqual(xanes_test.xas_id, "mp-559618-4-XANES-K")
            self.assertEqual(xanes_test.elemental_group, "Carbon")

        with warnings.catch_warnings(record=True) as w:
            xanes_test_2 = XANES(
                self.test_row_x,
                self.test_row_spect,
                self.test_row_absorb_specie,
                edge="K",
                e0=self.test_row_energy_e0,
                **self.test_row_add_paras,
            )
            self.assertEqual(len(w), 0)
            self.assertEqual(xanes_test_2.composition, "NaB(CO2)4")
            self.assertEqual(len(xanes_test_2.x), 200)
            self.assertEqual(xanes_test_2.e0, 274.98)
            self.assertEqual(xanes_test_2.xas_id, "mp-559618-4-XANES-K")
            self.assertEqual(xanes_test_2.elemental_group, "Carbon")
Пример #2
0
    def setUp(self):
        self.test_row = comp_test_df.iloc[0]
        self.test_row_formula = self.test_row["formula"]
        self.test_row_ele_group = self.test_row["ele_tm_alka_metalloid"]
        self.test_row_xas_id = self.test_row["xas_id"]
        self.test_row_absorb_specie = self.test_row["absorbing_species"]
        self.test_row_energy_e0 = self.test_row["energy_e0"]
        self.test_row_structure = self.test_row["structure"]
        self.test_row_x = self.test_row["x_axis_energy_55eV"]
        self.test_row_spect = self.test_row["interp_spectrum_55eV"]
        self.test_row_x_45 = self.test_row["x_axis_energy_45eV"]
        self.test_row_spect_45 = self.test_row["interp_spectrum_45eV"]

        self.test_row_add_paras = {
            "composition": self.test_row_formula,
            "elemental_group": self.test_row_ele_group,
            "xas_id": self.test_row_xas_id,
            "energy_45eV": self.test_row_x_45,
            "spectrum_45eV": self.test_row_spect_45,
        }
        self.xanes_obj = XANES(
            self.test_row_x,
            self.test_row_spect,
            self.test_row_absorb_specie,
            edge="K",
            e0=self.test_row_energy_e0,
            **self.test_row_add_paras,
        )
Пример #3
0
 def test_cenv_prediction_cnn(self):
     self.Al2O3_origin_obj = XANES(
         Al2O3_dataset["prev_interp_energy"],
         Al2O3_dataset["prev_interp_spectrum"],
         Al2O3_dataset["absorbing_species"],
         edge="K",
         e0=Al2O3_dataset["edge_energy"],
     )
     self.Al2O3_cenv_pred_origin = CenvPrediction(
         self.Al2O3_origin_obj,
         "E0",
         energy_range=Al2O3_dataset["energy_range"],
         edge_energy=Al2O3_dataset["edge_energy"],
         spectrum_interpolation=False,
         model_dir=model_dir,
         extra_model_dir=model_dir,
         model="cnn",
     )
     self.Al2O3_cenv_pred_origin.cenv_prediction()
     self.assertEqual(self.Al2O3_cenv_pred_origin.pred_cnum_ranklist,
                      "CN_4-CN_3-CN_6")
     self.assertEqual(
         self.Al2O3_cenv_pred_origin.pred_cenv[0],
         "CN_4-tetrahedral-trigonal pyramidal-see-saw-like-square co-planar",
     )
Пример #4
0
 def test_tsv_loading(self):
     self.Fe_xanes = XANES.from_K_XANES_MP_tsv(Fe_tsv, sep='\t', header=3)
     self.Fe_CenvPred = CenvPrediction(self.Fe_xanes, 'lowest', 45)
     self.Fe_CenvPred.cenv_prediction()
     self.assertEqual(self.Fe_CenvPred.pred_cnum_ranklist, 'CN_4')
     self.assertEqual(self.Fe_CenvPred.pred_cenv[0],
                      'CN_4-tetrahedral-trigonal pyramidal-see-saw-like-square co-planar')
Пример #5
0
 def test_cenv_prediction(self):
     self.Al2O3_origin_obj = XANES(Al2O3_dataset['prev_interp_energy'], Al2O3_dataset['prev_interp_spectrum'],
                                   Al2O3_dataset['absorbing_species'], edge='K', e0=Al2O3_dataset['edge_energy'])
     self.Al2O3_cenv_pred_origin = CenvPrediction(self.Al2O3_origin_obj, 'E0',
                                                  energy_range=Al2O3_dataset['energy_range'],
                                                  edge_energy=Al2O3_dataset['edge_energy'],
                                                  spectrum_interpolation=False,
                                                  model_dir=model_dir)
     self.Al2O3_cenv_pred_origin.cenv_prediction()
     self.assertEqual(self.Al2O3_cenv_pred_origin.pred_cnum_ranklist, 'CN_6')
     self.assertEqual(self.Al2O3_cenv_pred_origin.pred_cenv[0], 'CN_6 coord. motif undetermined')
Пример #6
0
 def test_cenv_prediction_cnn(self):
     self.Al2O3_origin_obj = XANES(Al2O3_dataset['prev_interp_energy'], Al2O3_dataset['prev_interp_spectrum'],
                                   Al2O3_dataset['absorbing_species'], edge='K', e0=Al2O3_dataset['edge_energy'])
     self.Al2O3_cenv_pred_origin = CenvPrediction(self.Al2O3_origin_obj, 'E0',
                                                  energy_range=Al2O3_dataset['energy_range'],
                                                  edge_energy=Al2O3_dataset['edge_energy'],
                                                  spectrum_interpolation=False,
                                                  model_dir=model_dir,
                                                  extra_model_dir=model_dir,
                                                  model='cnn')
     self.Al2O3_cenv_pred_origin.cenv_prediction()
     self.assertEqual(self.Al2O3_cenv_pred_origin.pred_cnum_ranklist, 'CN_4-CN_3-CN_6')
     self.assertEqual(self.Al2O3_cenv_pred_origin.pred_cenv[0],
                      'CN_4-tetrahedral-trigonal pyramidal-see-saw-like-square co-planar')
Пример #7
0
    def setUp(self):
        self.test_row = comp_test_df.iloc[0]
        self.test_row_formula = self.test_row['formula']
        self.test_row_ele_group = self.test_row['ele_tm_alka_metalloid']
        self.test_row_xas_id = self.test_row['xas_id']
        self.test_row_absorb_specie = self.test_row['absorbing_species']
        self.test_row_energy_e0 = self.test_row['energy_e0']
        self.test_row_structure = self.test_row['structure']
        self.test_row_x = self.test_row['x_axis_energy_55eV']
        self.test_row_spect = self.test_row['interp_spectrum_55eV']
        self.test_row_x_45 = self.test_row['x_axis_energy_45eV']
        self.test_row_spect_45 = self.test_row['interp_spectrum_45eV']

        self.test_row_add_paras = {
            'composition': self.test_row_formula, 'elemental_group': self.test_row_ele_group,
            'xas_id': self.test_row_xas_id, 'energy_45eV': self.test_row_x_45,
            'spectrum_45eV': self.test_row_spect_45
        }
        self.xanes_obj = XANES(self.test_row_x, self.test_row_spect, self.test_row_absorb_specie,
                               edge='K', e0=self.test_row_energy_e0, **self.test_row_add_paras)
Пример #8
0
 def test_cenv_prediction(self):
     self.Al2O3_origin_obj = XANES(
         Al2O3_dataset["prev_interp_energy"],
         Al2O3_dataset["prev_interp_spectrum"],
         Al2O3_dataset["absorbing_species"],
         edge="K",
         e0=Al2O3_dataset["edge_energy"],
     )
     self.Al2O3_cenv_pred_origin = CenvPrediction(
         self.Al2O3_origin_obj,
         "E0",
         energy_range=Al2O3_dataset["energy_range"],
         edge_energy=Al2O3_dataset["edge_energy"],
         spectrum_interpolation=False,
         model_dir=model_dir,
     )
     self.Al2O3_cenv_pred_origin.cenv_prediction()
     self.assertEqual(self.Al2O3_cenv_pred_origin.pred_cnum_ranklist,
                      "CN_6")
     self.assertEqual(self.Al2O3_cenv_pred_origin.pred_cenv[0],
                      "CN_6 coord. motif undetermined")