mirror of
https://github.com/Doctorado-ML/benchmark.git
synced 2025-08-16 07:55:54 +00:00
Update version info and tests
This commit is contained in:
@@ -1 +0,0 @@
|
|||||||
__version__ = "0.7.1"
|
|
@@ -1 +1 @@
|
|||||||
__version__ = "0.2.0"
|
__version__ = "0.3.0"
|
||||||
|
@@ -5,6 +5,7 @@ from openpyxl import load_workbook
|
|||||||
from .TestBase import TestBase
|
from .TestBase import TestBase
|
||||||
from ..Utils import Folders, Files, NO_RESULTS
|
from ..Utils import Folders, Files, NO_RESULTS
|
||||||
from ..Results import Benchmark
|
from ..Results import Benchmark
|
||||||
|
from .._version import __version__
|
||||||
|
|
||||||
|
|
||||||
class BenchmarkTest(TestBase):
|
class BenchmarkTest(TestBase):
|
||||||
@@ -107,6 +108,16 @@ class BenchmarkTest(TestBase):
|
|||||||
benchmark.excel()
|
benchmark.excel()
|
||||||
file_name = benchmark.get_excel_file_name()
|
file_name = benchmark.get_excel_file_name()
|
||||||
book = load_workbook(file_name)
|
book = load_workbook(file_name)
|
||||||
|
replace = None
|
||||||
|
with_this = None
|
||||||
for sheet_name in book.sheetnames:
|
for sheet_name in book.sheetnames:
|
||||||
sheet = book[sheet_name]
|
sheet = book[sheet_name]
|
||||||
self.check_excel_sheet(sheet, f"exreport_excel_{sheet_name}")
|
if sheet_name == "Datasets":
|
||||||
|
replace = self.benchmark_version
|
||||||
|
with_this = __version__
|
||||||
|
self.check_excel_sheet(
|
||||||
|
sheet,
|
||||||
|
f"exreport_excel_{sheet_name}",
|
||||||
|
replace=replace,
|
||||||
|
with_this=with_this,
|
||||||
|
)
|
||||||
|
@@ -4,6 +4,7 @@ from unittest.mock import patch
|
|||||||
from .TestBase import TestBase
|
from .TestBase import TestBase
|
||||||
from ..Results import Report, BaseReport, ReportBest, ReportDatasets
|
from ..Results import Report, BaseReport, ReportBest, ReportDatasets
|
||||||
from ..Utils import Symbols
|
from ..Utils import Symbols
|
||||||
|
from .._version import __version__
|
||||||
|
|
||||||
|
|
||||||
class ReportTest(TestBase):
|
class ReportTest(TestBase):
|
||||||
@@ -81,7 +82,7 @@ class ReportTest(TestBase):
|
|||||||
output_text = stdout.getvalue().splitlines()
|
output_text = stdout.getvalue().splitlines()
|
||||||
# Compare replacing STree version
|
# Compare replacing STree version
|
||||||
for line, index in zip(expected, range(len(expected))):
|
for line, index in zip(expected, range(len(expected))):
|
||||||
if "1.2.4" in line:
|
if self.stree_version in line:
|
||||||
# replace STree version
|
# replace STree version
|
||||||
line = self.replace_STree_version(line, output_text, index)
|
line = self.replace_STree_version(line, output_text, index)
|
||||||
|
|
||||||
@@ -97,4 +98,12 @@ class ReportTest(TestBase):
|
|||||||
def test_report_datasets(self, mock_output):
|
def test_report_datasets(self, mock_output):
|
||||||
report = ReportDatasets()
|
report = ReportDatasets()
|
||||||
report.report()
|
report.report()
|
||||||
self.check_output_file(mock_output, "report_datasets")
|
file_name = f"report_datasets{self.ext}"
|
||||||
|
with open(os.path.join(self.test_files, file_name)) as f:
|
||||||
|
expected = f.read()
|
||||||
|
output_text = mock_output.getvalue().splitlines()
|
||||||
|
for line, index in zip(expected.splitlines(), range(len(expected))):
|
||||||
|
if self.benchmark_version in line:
|
||||||
|
# replace benchmark version
|
||||||
|
line = self.replace_benchmark_version(line, output_text, index)
|
||||||
|
self.assertEqual(line, output_text[index])
|
||||||
|
@@ -15,6 +15,8 @@ class TestBase(unittest.TestCase):
|
|||||||
self.test_files = "test_files"
|
self.test_files = "test_files"
|
||||||
self.output = "sys.stdout"
|
self.output = "sys.stdout"
|
||||||
self.ext = ".test"
|
self.ext = ".test"
|
||||||
|
self.benchmark_version = "0.2.0"
|
||||||
|
self.stree_version = "1.2.4"
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
def remove_files(self, files, folder):
|
def remove_files(self, files, folder):
|
||||||
@@ -31,7 +33,9 @@ class TestBase(unittest.TestCase):
|
|||||||
if value is not None:
|
if value is not None:
|
||||||
print(f'{row};{col};"{value}"', file=f)
|
print(f'{row};{col};"{value}"', file=f)
|
||||||
|
|
||||||
def check_excel_sheet(self, sheet, file_name):
|
def check_excel_sheet(
|
||||||
|
self, sheet, file_name, replace=None, with_this=None
|
||||||
|
):
|
||||||
file_name += self.ext
|
file_name += self.ext
|
||||||
with open(os.path.join(self.test_files, file_name), "r") as f:
|
with open(os.path.join(self.test_files, file_name), "r") as f:
|
||||||
expected = csv.reader(f, delimiter=";")
|
expected = csv.reader(f, delimiter=";")
|
||||||
@@ -43,6 +47,9 @@ class TestBase(unittest.TestCase):
|
|||||||
value = float(value)
|
value = float(value)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
if replace is not None and isinstance(value, str):
|
||||||
|
if replace in value:
|
||||||
|
value = value.replace(replace, with_this)
|
||||||
self.assertEqual(sheet.cell(int(row), int(col)).value, value)
|
self.assertEqual(sheet.cell(int(row), int(col)).value, value)
|
||||||
|
|
||||||
def check_output_file(self, output, file_name):
|
def check_output_file(self, output, file_name):
|
||||||
@@ -51,10 +58,15 @@ class TestBase(unittest.TestCase):
|
|||||||
expected = f.read()
|
expected = f.read()
|
||||||
self.assertEqual(output.getvalue(), expected)
|
self.assertEqual(output.getvalue(), expected)
|
||||||
|
|
||||||
@staticmethod
|
def replace_STree_version(self, line, output, index):
|
||||||
def replace_STree_version(line, output, index):
|
idx = line.find(self.stree_version)
|
||||||
idx = line.find("1.2.4")
|
return line.replace(self.stree_version, output[index][idx : idx + 5])
|
||||||
return line.replace("1.2.4", output[index][idx : idx + 5])
|
|
||||||
|
def replace_benchmark_version(self, line, output, index):
|
||||||
|
idx = line.find(self.benchmark_version)
|
||||||
|
return line.replace(
|
||||||
|
self.benchmark_version, output[index][idx : idx + 5]
|
||||||
|
)
|
||||||
|
|
||||||
def check_file_file(self, computed_file, expected_file):
|
def check_file_file(self, computed_file, expected_file):
|
||||||
with open(computed_file) as f:
|
with open(computed_file) as f:
|
||||||
|
@@ -2,6 +2,7 @@ import os
|
|||||||
from openpyxl import load_workbook
|
from openpyxl import load_workbook
|
||||||
from ...Utils import NO_RESULTS, Folders, Files
|
from ...Utils import NO_RESULTS, Folders, Files
|
||||||
from ..TestBase import TestBase
|
from ..TestBase import TestBase
|
||||||
|
from ..._version import __version__
|
||||||
|
|
||||||
|
|
||||||
class BeBenchmarkTest(TestBase):
|
class BeBenchmarkTest(TestBase):
|
||||||
@@ -43,9 +44,19 @@ class BeBenchmarkTest(TestBase):
|
|||||||
Folders.exreport, Files.exreport_excel(self.score)
|
Folders.exreport, Files.exreport_excel(self.score)
|
||||||
)
|
)
|
||||||
book = load_workbook(file_name)
|
book = load_workbook(file_name)
|
||||||
|
replace = None
|
||||||
|
with_this = None
|
||||||
for sheet_name in book.sheetnames:
|
for sheet_name in book.sheetnames:
|
||||||
sheet = book[sheet_name]
|
sheet = book[sheet_name]
|
||||||
self.check_excel_sheet(sheet, f"exreport_excel_{sheet_name}")
|
if sheet_name == "Datasets":
|
||||||
|
replace = self.benchmark_version
|
||||||
|
with_this = __version__
|
||||||
|
self.check_excel_sheet(
|
||||||
|
sheet,
|
||||||
|
f"exreport_excel_{sheet_name}",
|
||||||
|
replace=replace,
|
||||||
|
with_this=with_this,
|
||||||
|
)
|
||||||
|
|
||||||
def test_be_benchmark_single(self):
|
def test_be_benchmark_single(self):
|
||||||
stdout, stderr = self.execute_script(
|
stdout, stderr = self.execute_script(
|
||||||
|
@@ -2,6 +2,7 @@ import os
|
|||||||
from openpyxl import load_workbook
|
from openpyxl import load_workbook
|
||||||
from ...Utils import Folders, Files
|
from ...Utils import Folders, Files
|
||||||
from ..TestBase import TestBase
|
from ..TestBase import TestBase
|
||||||
|
from ..._version import __version__
|
||||||
|
|
||||||
|
|
||||||
class BeReportTest(TestBase):
|
class BeReportTest(TestBase):
|
||||||
@@ -14,6 +15,7 @@ class BeReportTest(TestBase):
|
|||||||
"results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.xlsx",
|
"results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.xlsx",
|
||||||
]
|
]
|
||||||
self.remove_files(files, Folders.results)
|
self.remove_files(files, Folders.results)
|
||||||
|
self.remove_files([Files.datasets_report_excel], os.getcwd())
|
||||||
return super().tearDown()
|
return super().tearDown()
|
||||||
|
|
||||||
def test_be_report(self):
|
def test_be_report(self):
|
||||||
@@ -41,16 +43,37 @@ class BeReportTest(TestBase):
|
|||||||
def test_be_report_datatsets(self):
|
def test_be_report_datatsets(self):
|
||||||
stdout, stderr = self.execute_script("be_report", [])
|
stdout, stderr = self.execute_script("be_report", [])
|
||||||
self.assertEqual(stderr.getvalue(), "")
|
self.assertEqual(stderr.getvalue(), "")
|
||||||
self.check_output_file(stdout, "report_datasets")
|
file_name = f"report_datasets{self.ext}"
|
||||||
|
with open(os.path.join(self.test_files, file_name)) as f:
|
||||||
|
expected = f.read()
|
||||||
|
output_text = stdout.getvalue().splitlines()
|
||||||
|
for line, index in zip(expected.splitlines(), range(len(expected))):
|
||||||
|
if self.benchmark_version in line:
|
||||||
|
# replace benchmark version
|
||||||
|
line = self.replace_benchmark_version(line, output_text, index)
|
||||||
|
self.assertEqual(line, output_text[index])
|
||||||
|
|
||||||
def test_be_report_datasets_excel(self):
|
def test_be_report_datasets_excel(self):
|
||||||
stdout, stderr = self.execute_script("be_report", ["-x", "1"])
|
stdout, stderr = self.execute_script("be_report", ["-x", "1"])
|
||||||
self.assertEqual(stderr.getvalue(), "")
|
self.assertEqual(stderr.getvalue(), "")
|
||||||
self.check_output_file(stdout, "report_datasets")
|
file_name = f"report_datasets{self.ext}"
|
||||||
|
with open(os.path.join(self.test_files, file_name)) as f:
|
||||||
|
expected = f.read()
|
||||||
|
output_text = stdout.getvalue().splitlines()
|
||||||
|
for line, index in zip(expected.splitlines(), range(len(expected))):
|
||||||
|
if self.benchmark_version in line:
|
||||||
|
# replace benchmark version
|
||||||
|
line = self.replace_benchmark_version(line, output_text, index)
|
||||||
|
self.assertEqual(line, output_text[index])
|
||||||
file_name = os.path.join(os.getcwd(), Files.datasets_report_excel)
|
file_name = os.path.join(os.getcwd(), Files.datasets_report_excel)
|
||||||
book = load_workbook(file_name)
|
book = load_workbook(file_name)
|
||||||
sheet = book["Datasets"]
|
sheet = book["Datasets"]
|
||||||
self.check_excel_sheet(sheet, "exreport_excel_Datasets")
|
self.check_excel_sheet(
|
||||||
|
sheet,
|
||||||
|
"exreport_excel_Datasets",
|
||||||
|
replace=self.benchmark_version,
|
||||||
|
with_this=__version__,
|
||||||
|
)
|
||||||
|
|
||||||
def test_be_report_best(self):
|
def test_be_report_best(self):
|
||||||
stdout, stderr = self.execute_script(
|
stdout, stderr = self.execute_script(
|
||||||
|
5
setup.py
5
setup.py
@@ -49,15 +49,14 @@ setuptools.setup(
|
|||||||
name="benchmark",
|
name="benchmark",
|
||||||
version=get_data("version", "_version.py"),
|
version=get_data("version", "_version.py"),
|
||||||
license=get_data("license"),
|
license=get_data("license"),
|
||||||
description="Oblique decision tree with svm nodes",
|
description="Benchmark of models with different datasets",
|
||||||
long_description=readme(),
|
long_description=readme(),
|
||||||
long_description_content_type="text/markdown",
|
long_description_content_type="text/markdown",
|
||||||
packages=setuptools.find_packages(),
|
packages=setuptools.find_packages(),
|
||||||
url="https://github.com/Doctorado-ML/benchmark",
|
url="https://github.com/Doctorado-ML/benchmark",
|
||||||
author=get_data("author"),
|
author=get_data("author"),
|
||||||
author_email=get_data("author_email"),
|
author_email=get_data("author_email"),
|
||||||
keywords="scikit-learn oblique-classifier oblique-decision-tree decision-\
|
keywords="scikit-learn benchmark",
|
||||||
tree svm svc",
|
|
||||||
classifiers=[
|
classifiers=[
|
||||||
"Development Status :: 4 - Beta",
|
"Development Status :: 4 - Beta",
|
||||||
"License :: OSI Approved :: " + get_data("license"),
|
"License :: OSI Approved :: " + get_data("license"),
|
||||||
|
Reference in New Issue
Block a user