mirror of
https://github.com/slsdetectorgroup/aare.git
synced 2025-04-23 07:10:03 +02:00
64 lines
1.8 KiB
Python
64 lines
1.8 KiB
Python
|
|
import pytest
|
|
import numpy as np
|
|
import boost_histogram as bh
|
|
import time
|
|
from pathlib import Path
|
|
import pickle
|
|
|
|
from aare import ClusterFile
|
|
from conftest import test_data_path
|
|
|
|
@pytest.mark.files
|
|
def test_cluster_file(test_data_path):
|
|
"""Test ClusterFile"""
|
|
f = ClusterFile(test_data_path / "clust/single_frame_97_clustrers.clust")
|
|
cv = f.read_clusters(10) #conversion does not work
|
|
|
|
|
|
assert cv.frame_number == 135
|
|
assert cv.size == 10
|
|
|
|
#Known data
|
|
#frame_number, num_clusters [135] 97
|
|
#[ 1 200] [0 1 2 3 4 5 6 7 8]
|
|
#[ 2 201] [ 9 10 11 12 13 14 15 16 17]
|
|
#[ 3 202] [18 19 20 21 22 23 24 25 26]
|
|
#[ 4 203] [27 28 29 30 31 32 33 34 35]
|
|
#[ 5 204] [36 37 38 39 40 41 42 43 44]
|
|
#[ 6 205] [45 46 47 48 49 50 51 52 53]
|
|
#[ 7 206] [54 55 56 57 58 59 60 61 62]
|
|
#[ 8 207] [63 64 65 66 67 68 69 70 71]
|
|
#[ 9 208] [72 73 74 75 76 77 78 79 80]
|
|
#[ 10 209] [81 82 83 84 85 86 87 88 89]
|
|
|
|
#conversion to numpy array
|
|
arr = np.array(cv, copy = False)
|
|
|
|
assert arr.size == 10
|
|
for i in range(10):
|
|
assert arr[i]['x'] == i+1
|
|
|
|
@pytest.mark.files
|
|
def test_read_clusters_and_fill_histogram(test_data_path):
|
|
# Create the histogram
|
|
n_bins = 100
|
|
xmin = -100
|
|
xmax = 1e4
|
|
hist_aare = bh.Histogram(bh.axis.Regular(n_bins, xmin, xmax))
|
|
|
|
fname = test_data_path / "clust/beam_En700eV_-40deg_300V_10us_d0_f0_100.clust"
|
|
|
|
#Read clusters and fill the histogram with pixel values
|
|
with ClusterFile(fname, chunk_size = 10000) as f:
|
|
for clusters in f:
|
|
arr = np.array(clusters, copy = False)
|
|
hist_aare.fill(arr['data'].flat)
|
|
|
|
|
|
#Load the histogram from the pickle file
|
|
with open(fname.with_suffix('.pkl'), 'rb') as f:
|
|
hist_py = pickle.load(f)
|
|
|
|
#Compare the two histograms
|
|
assert hist_aare == hist_py |