File size: 1,254 Bytes
80a72c3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | from pathlib import Path
import io
from model.models.results import PredictionResult
from scripts.get_predictions import get_csv_writer, write_csv_results
def test_write_csv_results():
mock_pdb_path = Path("mock.pdb")
chain_id = 'mock_id'
expected_sequence_md5 = 'mock_md5'
expected_chopping_str = '189-237,238-353,381-505,524-658,687-826'
expected_ndom = len(expected_chopping_str.split(','))
expected_nres = 1234
expected_confidence = 0.8910
expected_time_sec = 0.1234
result = PredictionResult(
pdb_path=mock_pdb_path,
chain_id=chain_id,
sequence_md5=expected_sequence_md5,
ndom=expected_ndom,
nres=expected_nres,
chopping=expected_chopping_str,
confidence=expected_confidence,
time_sec=expected_time_sec,
)
fp = io.StringIO()
csv_writer = get_csv_writer(fp)
write_csv_results(csv_writer, [result])
fp.flush()
fp.seek(0)
expected_cols = [chain_id, expected_sequence_md5, expected_nres, expected_ndom,
expected_chopping_str, expected_confidence, expected_time_sec]
actual_text = fp.read().replace('\r\n', '\n')
assert actual_text == '\t'.join([str(col) for col in expected_cols]) + '\n'
|