Init
This commit is contained in:
commit
c394677d07
59 files changed
+5149
No files matched your search
@@ -0,0 +1,53 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Автотесты лабораторной 1 (последовательное вычисление)."""
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
|
||||
|
||||
from conftest import close, load_solution # noqa: E402
|
||||
from common.tasks import TASKS, run_sequential, smoke_params # noqa: E402
|
||||
|
||||
|
||||
def test_variant_number_set():
|
||||
mod = load_solution("lab01_sequential")
|
||||
assert 1 <= getattr(mod, "VARIANT_NUMBER", 0) <= 20, (
|
||||
"Укажите свой VARIANT_NUMBER (1..20) в solution.py")
|
||||
|
||||
|
||||
def test_cpu_sequential_correct():
|
||||
mod = load_solution("lab01_sequential")
|
||||
# имя задачи берём из варианта студента
|
||||
from common.tasks import get_variant
|
||||
name = get_variant(mod.VARIANT_NUMBER)["task_name"]
|
||||
sp = smoke_params(name)
|
||||
|
||||
# эталон: последовательный запуск из common
|
||||
expected, _ = run_sequential(name, sp, parts=1)
|
||||
# последовательный запуск из 3 кусков тоже обязан совпасть
|
||||
expected3, _ = run_sequential(name, sp, parts=3)
|
||||
|
||||
got1 = mod.run_cpu_sequential(name, sp, parts=1)
|
||||
got3 = mod.run_cpu_sequential(name, sp, parts=3)
|
||||
|
||||
assert close(got1, expected), f"checksum(parts=1)={got1}, ожидалось {expected}"
|
||||
assert close(got3, expected3), (
|
||||
f"checksum зависит от разбиения: parts=3 -> {got3}, parts=1 -> {expected}")
|
||||
|
||||
|
||||
def test_cpu_sequential_returns_time():
|
||||
mod = load_solution("lab01_sequential")
|
||||
from common.tasks import get_variant
|
||||
name = get_variant(mod.VARIANT_NUMBER)["task_name"]
|
||||
res = mod.run_cpu_sequential(name, smoke_params(name), parts=2)
|
||||
assert isinstance(res, tuple) and len(res) == 2, (
|
||||
"run_cpu_sequential должна возвращать (checksum, секунды)")
|
||||
checksum, seconds = res
|
||||
assert isinstance(seconds, (int, float)) and seconds >= 0
|
||||
|
||||
|
||||
def test_io_sequential_correct():
|
||||
mod = load_solution("lab01_sequential")
|
||||
results, seconds = mod.run_io_sequential(6, 0.0)
|
||||
assert results == [(i, i * i) for i in range(6)]
|
||||
assert seconds >= 0
|
||||
Reference in new issue
Block a user