Skip to content

Commit

Permalink
Added basic crystal test
Browse files Browse the repository at this point in the history
  • Loading branch information
rlb131 committed Jul 17, 2023
1 parent 601c09b commit f1ac33b
Showing 1 changed file with 101 additions and 9 deletions.
110 changes: 101 additions & 9 deletions sirepo_bluesky/tests/test_stateless_compute.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def test_stateless_compute_crl_characteristics_basic(srw_chx_simulation, RE):
}
expected_response = {
"absoluteFocusPosition": 71.3036529974982,
"attenuationLength": 0.007313,
"attenuationLength": "0.007313",
"focalDistance": 17.825023861765274,
"focalPlane": "2",
"horizontalApertureSize": "1",
Expand All @@ -66,7 +66,7 @@ def test_stateless_compute_crl_characteristics_basic(srw_chx_simulation, RE):

diff = list(dictdiffer.diff(browser_request, expected_response))
assert diff, "The browser request and expected response match, but are expected to be different."
print(diff)
pprint.pprint(diff)

classes, objects = create_classes(srw_chx_simulation.data, connection=srw_chx_simulation)

Expand All @@ -80,14 +80,106 @@ def test_stateless_compute_crl_characteristics_basic(srw_chx_simulation, RE):
actual_response = srw_chx_simulation.compute_crl_characteristics(crl1.id._sirepo_dict)

assert actual_response.pop("state") == "completed"
diff2 = list(dictdiffer.diff(actual_response, expected_response))
pprint.pprint(diff2)
assert not diff2, "Actual response doesn't match expected response."


pprint.pprint(actual_response)
newresponse1 = _remove_dict_strings(actual_response)
newresponse2 = _remove_dict_strings(expected_response)
pprint.pprint(newresponse1)
assert newresponse1.any(), "No response was returned."
def test_stateless_compute_crystal_orientation_basic(srw_tes_simulation, RE):
classes, objects = create_classes(srw_tes_simulation.data, connection=srw_tes_simulation)
globals().update(**objects)
mc1 = mono_crystal1 # noqa

assert np.allclose(newresponse1, newresponse2), "Actual response doesn't match expected response."
# changed energy from 2500 to 2000
browser_request = {
"asymmetryAngle": 0,
"crystalThickness": 0.003,
"dSpacing": 3.1355713563754857,
"diffractionAngle": "0",
"energy": 2000,
"grazingAngle": 912.3126255115334,
"h": "1",
"heightAmplification": 1,
"heightProfileFile": "",
"id": 4,
"k": "1",
"l": "1",
"material": "Si (SRW)",
"nvx": 0,
"nvy": 0.6119182833983884,
"nvz": -0.7909209912771121,
"orientation": "y",
"outframevx": 1,
"outframevy": 0,
"outoptvx": 0,
"outoptvy": 0.9679580305720843,
"outoptvz": -0.25111202888553913,
"position": 25,
"psi0i": 0.000028733167819721347,
"psi0r": -0.00015133473800612508,
"psiHBi": 0.00002006074060738366,
"psiHBr": -0.00007912710547916795,
"psiHi": 0.00002006074060738366,
"psiHr": -0.00007912710547916795,
"rotationAngle": 0,
"title": "Mono Crystal 1",
"transmissionImage": "1",
"tvx": 0,
"tvy": 0.7909209912771121,
"type": "crystal",
"useCase": "1",
}
expected_response = {
"asymmetryAngle": 0,
"crystalThickness": 0.003,
"dSpacing": 3.1355713563754857,
"diffractionAngle": "0",
"energy": 2000,
"grazingAngle": 1419.9107955732711,
"h": "1",
"heightAmplification": 1,
"heightProfileFile": "",
"id": 4,
"k": "1",
"l": "1",
"material": "Si (SRW)",
"nvx": 0,
"nvy": 0.15031366142760424,
"nvz": -0.9886383581412506,
"orientation": "y",
"outframevx": 1.0,
"outframevy": 0.0,
"outoptvx": 0.0,
"outoptvy": 0.29721170287997256,
"outoptvz": -0.9548116063764552,
"position": 25,
"psi0i": 6.530421915581681e-05,
"psi0r": -0.00020558072555357544,
"psiHBi": 4.559368494529194e-05,
"psiHBr": -0.00010207663788071082,
"psiHi": 4.559368494529194e-05,
"psiHr": -0.00010207663788071082,
"rotationAngle": 0,
"title": "Mono Crystal 1",
"transmissionImage": "1",
"tvx": 0,
"tvy": 0.9886383581412506,
"type": "crystal",
"useCase": "1",
}

diff = list(dictdiffer.diff(browser_request, expected_response))
assert diff, "The browser request and expected response match, but are expected to be different."
pprint.pprint(diff)

RE(bps.mv(mc1.energy, 2000))

actual_response = srw_tes_simulation.compute_crystal_orientation(mc1.id._sirepo_dict)

assert actual_response.pop("state") == "completed"
diff2 = list(dictdiffer.diff(actual_response, expected_response))
pprint.pprint(diff2)
assert not diff2, "Actual response doesn't match expected response."


@vcr.use_cassette(f"{cassette_location}/test_crl_characteristics.yml")
Expand All @@ -109,7 +201,7 @@ def test_stateless_compute_crl_characteristics_advanced(srw_chx_simulation, tmp_


@vcr.use_cassette(f"{cassette_location}/test_crystal_characteristics.yml")
def test_stateless_compute_crystal(srw_tes_simulation, tmp_path):
def test_stateless_compute_crystal_advanced(srw_tes_simulation, tmp_path):
classes, objects = create_classes(srw_tes_simulation.data, connection=srw_tes_simulation)

_generate_test_crystal_file(
Expand Down

0 comments on commit f1ac33b

Please sign in to comment.