feat: 添加测试代码
This commit is contained in:
97
test/gvf_worst_rms_error.py
Normal file
97
test/gvf_worst_rms_error.py
Normal file
@@ -0,0 +1,97 @@
|
||||
from ovf.core.GVFManager import GVFManager
|
||||
import numpy as np
|
||||
import logging
|
||||
|
||||
def get_logger():
|
||||
logger = logging.getLogger("gvf_worst_rms_error")
|
||||
logger.setLevel(logging.INFO)
|
||||
if not logger.hasHandlers():
|
||||
ch = logging.StreamHandler()
|
||||
ch.setLevel(logging.INFO)
|
||||
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
||||
ch.setFormatter(formatter)
|
||||
logger.addHandler(ch)
|
||||
return logger
|
||||
|
||||
logger = get_logger()
|
||||
|
||||
gvf = GVFManager()
|
||||
gvf.load_from_datasets("examples/data/mlin.json",npoles_cplx=2,max_points=20,parameter_type="s",min_freqs=10e9,max_freqs=200e9)
|
||||
gvf.save("outputs/mlin_gvf_2pole_s.pkl")
|
||||
|
||||
# gvf = GVFManager.load("outputs/mlin_gvf_2pole_s.pkl")
|
||||
|
||||
max_rms_error_info = {
|
||||
"max_rms_error": 0.0,
|
||||
"max_rms_error_l1": 0.0,
|
||||
"max_rms_error_lmax": 0.0,
|
||||
"max_rms_error_geom": None,
|
||||
"max_rms_index": 0
|
||||
}
|
||||
|
||||
max_rms_error_l1_info = {
|
||||
"max_rms_error": 0.0,
|
||||
"max_rms_error_l1": 0.0,
|
||||
"max_rms_error_lmax": 0.0,
|
||||
"max_rms_error_geom": None,
|
||||
"max_rms_index": 0
|
||||
}
|
||||
|
||||
max_rms_error_lmax_info = {
|
||||
"max_rms_error": 0.0,
|
||||
"max_rms_error_l1": 0.0,
|
||||
"max_rms_error_lmax": 0.0,
|
||||
"max_rms_error_geom": None,
|
||||
"max_rms_index": 0
|
||||
}
|
||||
|
||||
|
||||
for ds in gvf.datasets:
|
||||
rmse = ds.vf_manager.eigenval_rms_error[-1]
|
||||
rmse_l1 = ds.vf_manager.eigenval_rms_error_l1[-1]
|
||||
rmse_lmax = ds.vf_manager.eigenval_rms_error_lmax[-1]
|
||||
# logger.info(f"Dataset: {ds.geometries}, RMS Error: {rmse}, RMS Error L1: {rmse_l1}, RMS Error Lmax: {rmse_lmax}")
|
||||
logger.info(
|
||||
f'W={ds.geometries["W"]},L={ds.geometries["L"]},rms={rmse},rms_l1={rmse_l1},rms_lmax={rmse_lmax},id={ds.id}',
|
||||
)
|
||||
|
||||
if rmse > max_rms_error_info["max_rms_error"]:
|
||||
max_rms_error_info["max_rms_error"] = rmse
|
||||
max_rms_error_info["max_rms_error_l1"] = rmse_l1
|
||||
max_rms_error_info["max_rms_error_lmax"] = rmse_lmax
|
||||
max_rms_error_info["max_rms_error_geom"] = ds.geometries
|
||||
max_rms_error_info["max_rms_index"] = ds.id
|
||||
|
||||
if rmse_l1 > max_rms_error_l1_info["max_rms_error_l1"]:
|
||||
max_rms_error_l1_info["max_rms_error"] = rmse
|
||||
max_rms_error_l1_info["max_rms_error_l1"] = rmse_l1
|
||||
max_rms_error_l1_info["max_rms_error_lmax"] = rmse_lmax
|
||||
max_rms_error_l1_info["max_rms_error_geom"] = ds.geometries
|
||||
max_rms_error_l1_info["max_rms_index"] = ds.id
|
||||
|
||||
if rmse_lmax > max_rms_error_lmax_info["max_rms_error_lmax"]:
|
||||
max_rms_error_lmax_info["max_rms_error"] = rmse
|
||||
max_rms_error_lmax_info["max_rms_error_l1"] = rmse_l1
|
||||
max_rms_error_lmax_info["max_rms_error_lmax"] = rmse_lmax
|
||||
max_rms_error_lmax_info["max_rms_error_geom"] = ds.geometries
|
||||
max_rms_error_lmax_info["max_rms_index"] = ds.id
|
||||
|
||||
print(f"Maximum RMS error across datasets: {max_rms_error_info}")
|
||||
print(f"Geometry with maximum RMS error: {max_rms_error_info['max_rms_error_geom']}")
|
||||
print(f"Index of dataset with maximum RMS error: {max_rms_error_info['max_rms_index']}")
|
||||
|
||||
print(f"Maximum RMS L1 error across datasets: {max_rms_error_l1_info}")
|
||||
print(f"Geometry with maximum RMS L1 error: {max_rms_error_l1_info['max_rms_error_geom']}")
|
||||
print(f"Index of dataset with maximum RMS L1 error: {max_rms_error_l1_info['max_rms_index']}")
|
||||
|
||||
print(f"Maximum RMS Lmax error across datasets: {max_rms_error_lmax_info}")
|
||||
print(f"Geometry with maximum RMS Lmax error: {max_rms_error_lmax_info['max_rms_error_geom']}")
|
||||
print(f"Index of dataset with maximum RMS Lmax error: {max_rms_error_lmax_info['max_rms_index']}")
|
||||
|
||||
gvf.plot_vf_responses_with_index("outputs/mlin_gvf_2pole_s_responses",int(max_rms_error_info['max_rms_index']))
|
||||
gvf.plot_vf_responses_with_index("outputs/mlin_gvf_2pole_s_responses_l1",int(max_rms_error_l1_info['max_rms_index']))
|
||||
gvf.plot_vf_responses_with_index("outputs/mlin_gvf_2pole_s_responses_lmax",int(max_rms_error_lmax_info['max_rms_index']))
|
||||
|
||||
gvf.plot_poles_in_2d("outputs/mlin_gvf_2pole_s_poles.html")
|
||||
gvf.plot_vf_responses_with_index("outputs/mlin_gvf_2pole_s_responses",1399)
|
||||
|
||||
Reference in New Issue
Block a user