Skip to content

Commit

Permalink
bench: add test_plots
Browse files Browse the repository at this point in the history
  • Loading branch information
pared committed May 25, 2022
1 parent 1fc9f45 commit 3498b07
Showing 1 changed file with 68 additions and 0 deletions.
68 changes: 68 additions & 0 deletions tests/benchmarks/cli/commands/test_plots.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
from textwrap import dedent

import pytest


@pytest.fixture
def repo_with_plots(tmp_dir, scm, dvc):
num_files = 20
CODE = dedent(
"""
from random import random
import sys
num_files = {num_files}
linspace_size = 1000
def load_params():
import yaml
with open('params.yaml') as fd:
return yaml.safe_load(fd)
params = load_params()
p = params['p']
def calc_metric(index):
metric = [(i/linspace_size)**p + (random()-0.5)/index
for i in range(1,linspace_size)]
result=[]
for elem in list(metric):
result.append({{f'val_{{index}}': elem}})
return result
import json
if __name__ == '__main__':
for i in range(1, num_files+1):
metric = calc_metric(i)
with open(f'metric_{{i}}.json', 'w') as fd:
json.dump(metric, fd)
"""
).format(num_files=num_files)

tmp_dir.gen("train.py", CODE)
tmp_dir.gen("params.yaml", "p: 1")
scm.add(["train.py", "params.yaml"])
scm.commit("initial")

dvc.run(
name="generate_plots",
deps=["train.py"],
plots=[f"metric_{i}.json" for i in range(1, num_files + 1)],
params=["p"],
cmd="python train.py",
)

scm.add(["dvc.lock", "dvc.yaml"])
scm.commit("initial run, p=1")

tmp_dir.gen("params.yaml", "p: 3")
dvc.reproduce()

yield


def test_plots_diff(tmp_dir, bench_dvc, repo_with_plots):
bench_dvc("plots", "diff")

assert (tmp_dir / "dvc_plots" / "index.html").is_file()

0 comments on commit 3498b07

Please sign in to comment.