Files
cristallina_analysis_package/tests/test_utils.py
2023-04-21 08:05:19 +00:00

45 lines
1.3 KiB
Python

import pytest
import os
import numpy as np
from cristallina.utils import ROI, print_run_info, heuristic_extract_pgroup, gauss, find_nearest, xray_transmission
def test_print(capsys):
# this currently works only if the heuristic p-group extraction works
# TODO: fix this shortcoming and use base_path throughout
print_run_info(185, base_path="tests/data/p20841/raw/")
captured = capsys.readouterr()
assert "17259343145" in captured.out
assert "scan_parameters" in captured.out
def test_ROI():
"""API Tests"""
r = ROI(left=1, right=2, top=4, bottom=2)
assert r.width == 1
assert r.height == 2
def test_extract_pgroup():
os.chdir("tests/data/p20841/raw/")
assert heuristic_extract_pgroup() == '20841'
def test_gauss():
# Test a random Gauss value and check whether the value didn't change in time
assert gauss(1.5,2.7,7,4.33,3) == 7.186044070987355
def test_find_nearest():
# Make an array of 1 to 100 and check that the nearest index is the value
a = np.linspace(0,99,100)
assert find_nearest(a,10.1) == 10
# TODO: repair with newer xraydb 4.5.0 when available in conda-forge
# def test_xray_transmission():
# T = xray_transmission(9000, 100e-6, material = 'Si')
# assert T == 0.342385039732607