|
1 | 1 | from distutils.version import LooseVersion |
2 | 2 | import json |
3 | 3 | import pickle |
| 4 | +import numpy as np |
| 5 | + |
4 | 6 |
|
5 | 7 | import event_model |
6 | 8 | import jsonschema |
7 | 9 | import numpy |
8 | 10 | import pytest |
9 | | - |
| 11 | +from event_model._numpy import infer_datakeys |
10 | 12 |
|
11 | 13 | JSONSCHEMA_2 = LooseVersion(jsonschema.__version__) < LooseVersion("3.0.0") |
12 | 14 |
|
@@ -46,39 +48,55 @@ def test_compose_run(): |
46 | 48 | assert bundle.compose_descriptor is compose_descriptor |
47 | 49 | assert bundle.compose_resource is compose_resource |
48 | 50 | assert bundle.compose_stop is compose_stop |
| 51 | + motor_data = 5.0 |
| 52 | + counter_data = 10 |
| 53 | + image_data = np.zeros((512, 512)) |
49 | 54 | bundle = compose_descriptor( |
50 | | - data_keys={'motor': {'shape': [], 'dtype': 'number', 'source': '...'}, |
51 | | - 'image': {'shape': [512, 512], 'dtype': 'array', |
52 | | - 'source': '...', 'external': 'FILESTORE:'}}, |
53 | | - name='primary') |
| 55 | + data_keys={ |
| 56 | + "motor": {"source": "...", **infer_datakeys(motor_data)}, |
| 57 | + "counter": {"source": "...", **infer_datakeys(counter_data)}, |
| 58 | + "image": { |
| 59 | + **infer_datakeys(image_data), |
| 60 | + "source": "...", |
| 61 | + "external": "FILESTORE:", |
| 62 | + }, |
| 63 | + }, |
| 64 | + name="primary", |
| 65 | + ) |
54 | 66 | descriptor_doc, compose_event, compose_event_page = bundle |
55 | 67 | assert bundle.descriptor_doc is descriptor_doc |
56 | 68 | assert bundle.compose_event is compose_event |
57 | 69 | assert bundle.compose_event_page is compose_event_page |
58 | 70 | bundle = compose_resource( |
59 | | - spec='TIFF', root='/tmp', resource_path='stack.tiff', |
60 | | - resource_kwargs={}) |
| 71 | + spec="TIFF", root="/tmp", resource_path="stack.tiff", resource_kwargs={} |
| 72 | + ) |
61 | 73 | resource_doc, compose_datum, compose_datum_page = bundle |
62 | 74 | assert bundle.resource_doc is resource_doc |
63 | 75 | assert bundle.compose_datum is compose_datum |
64 | 76 | assert bundle.compose_datum_page is compose_datum_page |
65 | | - datum_doc = compose_datum(datum_kwargs={'slice': 5}) |
| 77 | + datum_doc = compose_datum(datum_kwargs={"slice": 5}) |
66 | 78 | event_doc = compose_event( |
67 | | - data={'motor': 0, 'image': datum_doc['datum_id']}, |
68 | | - timestamps={'motor': 0, 'image': 0}, filled={'image': False}) |
69 | | - datum_page = compose_datum_page(datum_kwargs={'slice': [10, 15]}) |
70 | | - event_page = compose_event_page(data={'motor': [1, 2], 'image': |
71 | | - datum_page['datum_id']}, |
72 | | - timestamps={'motor': [0, 0], |
73 | | - 'image': [0, 0]}, |
74 | | - filled={'image': [False, False]}, |
75 | | - seq_num=[1, 2]) |
76 | | - assert 'descriptor' in event_doc |
77 | | - assert 'descriptor' in event_page |
78 | | - assert event_doc['seq_num'] == 1 |
| 79 | + data={"motor": 0.0, "counter": 1, "image": datum_doc["datum_id"]}, |
| 80 | + timestamps={"motor": 0, "counter": 0, "image": 0}, |
| 81 | + filled={"image": False}, |
| 82 | + ) |
| 83 | + datum_page = compose_datum_page(datum_kwargs={"slice": [10, 15]}) |
| 84 | + event_page = compose_event_page( |
| 85 | + data={ |
| 86 | + "motor": [1.0, 2.0], |
| 87 | + "image": datum_page["datum_id"], |
| 88 | + "counter": [10, 11], |
| 89 | + }, |
| 90 | + timestamps={"motor": [0, 0], "image": [0, 0], "counter": [0, 0]}, |
| 91 | + filled={"image": [False, False]}, |
| 92 | + seq_num=[1, 2], |
| 93 | + ) |
| 94 | + assert "descriptor" in event_doc |
| 95 | + assert "descriptor" in event_page |
| 96 | + assert event_doc["seq_num"] == 1 |
79 | 97 | stop_doc = compose_stop() |
80 | | - assert 'primary' in stop_doc['num_events'] |
81 | | - assert stop_doc['num_events']['primary'] == 3 |
| 98 | + assert "primary" in stop_doc["num_events"] |
| 99 | + assert stop_doc["num_events"]["primary"] == 3 |
82 | 100 |
|
83 | 101 |
|
84 | 102 | def test_round_trip_pagination(): |
|
0 commit comments