from dataclasses import dataclass
@dataclass
class Stats:
filename: str = ""
total_scq_size: int = 0
smt_encoding_time: float = 0.0
smt_solver_time: float = 0.0
smt_solver_result: str = "none"
smt_num_calls: int = 0
eqsat_encoding_time: float = 0.0
eqsat_solver_time: float = 0.0
eqsat_equiv_result: str = "none"
eqsat_equiv_encoding_time: float = 0.0
eqsat_equiv_solver_time: float = 0.0
def reset_smt_stats(self) -> None:
self.smt_encoding_time = 0.0
self.smt_solver_time = 0.0
self.smt_solver_result = "none"
self.smt_num_calls = 0
def print(self, format_str: str) -> None:
format_str = format_str.replace("%F", str(self.filename))
format_str = format_str.replace("%S", str(self.total_scq_size))
format_str = format_str.replace("%se", str(self.smt_encoding_time))
format_str = format_str.replace("%st", str(self.smt_solver_time))
format_str = format_str.replace("%sr", self.smt_solver_result)
format_str = format_str.replace("%sn", str(self.smt_num_calls))
format_str = format_str.replace("%ee", str(self.eqsat_encoding_time))
format_str = format_str.replace("%et", str(self.eqsat_solver_time))
format_str = format_str.replace("%eq", self.eqsat_equiv_result)
format_str = format_str.replace("%es", str(self.eqsat_equiv_encoding_time))
format_str = format_str.replace("%ed", str(self.eqsat_equiv_solver_time))
print(format_str)