File: roi2dparam_unit_test.py

package info (click to toggle)
python-sigima 1.1.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 25,608 kB
  • sloc: python: 35,251; makefile: 3
file content (53 lines) | stat: -rw-r--r-- 1,558 bytes parent folder | download
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Copyright (c) DataLab Platform Developers, BSD 3-Clause license, see LICENSE file.

"""
ROI image parameters unit test.
"""

# pylint: disable=invalid-name  # Allows short reference names like x, y, ...

from __future__ import annotations

import guidata.dataset as gds
import numpy as np
import pytest

from sigima.objects import ROI2DParam
from sigima.tests import guiutils
from sigima.tests.env import execenv


def __create_roi_2d_parameters() -> gds.DataSetGroup:
    """Create a group of ROI parameters."""
    p_circ = ROI2DParam("Circular")
    p_circ.geometry = "circle"
    p_circ.xc, p_circ.yc, p_circ.r = 100, 200, 50
    p_rect = ROI2DParam("Rectangular")
    p_rect.geometry = "rectangle"
    p_rect.x0, p_rect.y0, p_rect.dx, p_rect.dy = 50, 150, 150, 250
    p_poly = ROI2DParam("Polygonal")
    p_poly.geometry = "polygon"
    p_poly.points = np.array([50.0, 150.0, 150.0, 150.0, 150.0, 250.0, 50.0, 250.0])
    params = [p_circ, p_rect, p_poly]
    return gds.DataSetGroup(params, title="ROI Parameters")


def test_roi_2d_param_unit():
    """ROI parameters unit test."""
    group = __create_roi_2d_parameters()
    for param in group.datasets:
        execenv.print(param)


@pytest.mark.gui
def test_roi_2d_param_interactive():
    """ROI parameters interactive test."""
    with guiutils.lazy_qt_app_context(force=True):
        group = __create_roi_2d_parameters()
        if group.edit():
            for param in group.datasets:
                execenv.print(param)


if __name__ == "__main__":
    test_roi_2d_param_interactive()