File: test_image_sources.py

package info (click to toggle)
python-pyvista 0.44.1-11
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 159,804 kB
  • sloc: python: 72,164; sh: 118; makefile: 68
file content (158 lines) | stat: -rw-r--r-- 5,050 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
from __future__ import annotations

import numpy as np

import pyvista as pv


def test_image_ellip_soid_source():
    whole_extent = (-10, 10, -10, 10, -10, 10)
    center = (0.0, 0.0, 0.0)
    radius = (5.0, 5.0, 5.0)
    source = pv.ImageEllipsoidSource(whole_extent=whole_extent, center=center, radius=radius)
    assert source.whole_extent == whole_extent
    assert source.center == center
    assert source.radius == radius
    whole_extent = (-5, 5, -5, 5, -5, 5)
    center = (1.0, 1.0, 1.0)
    radius = (3.0, 3.0, 3.0)
    source.whole_extent = whole_extent
    source.center = center
    source.radius = radius
    assert source.whole_extent == whole_extent
    assert source.center == center
    assert source.radius == radius
    assert isinstance(source.output, pv.ImageData)


def test_image_noise_source():
    whole_extent = (-10, 10, -10, 10, -10, 10)
    source = pv.ImageNoiseSource(whole_extent=whole_extent, minimum=0, maximum=255, seed=42)
    assert source.whole_extent == whole_extent
    assert source.minimum == 0
    assert source.maximum == 255
    whole_extent = (-5, 5, -5, 5, -5, 5)
    minimum = 100
    maximum = 200
    source.whole_extent = whole_extent
    source.minimum = minimum
    source.maximum = maximum
    assert source.whole_extent == whole_extent
    assert source.minimum == minimum
    assert source.maximum == maximum
    assert isinstance(source.output, pv.ImageData)

    output = pv.ImageNoiseSource().output
    assert output.bounds == (0.0, 255.0, 0.0, 255.0, 0.0, 0.0)
    assert output.dimensions == (256, 256, 1)
    assert np.allclose(output.get_data_range(), (0.0, 1.0), atol=1e-4)

    output_seed = pv.ImageNoiseSource(seed=0).output
    assert not np.array_equal(output_seed.active_scalars, output.active_scalars)

    output_same_seed = pv.ImageNoiseSource(seed=0).output
    assert np.array_equal(output_same_seed.active_scalars, output_seed.active_scalars)


def test_image_mandelbrot_source():
    whole_extent = (0, 20, 0, 20, 0, 0)
    maxiter = 10
    source = pv.ImageMandelbrotSource(
        whole_extent=whole_extent,
        maxiter=maxiter,
    )
    assert source.whole_extent == whole_extent
    assert source.maxiter == maxiter
    whole_extent = (0, 200, 0, 200, 0, 0)
    maxiter = 100
    source.whole_extent = whole_extent
    source.maxiter = maxiter
    assert source.whole_extent == whole_extent
    assert source.maxiter == maxiter
    assert isinstance(source.output, pv.ImageData)


def test_image_gradient_source():
    center = (0.0, 0.0, 0.0)
    whole_extent = (-10, 10, -10, 10, -10, 10)
    maximum = 255
    std = 10.0
    source = pv.ImageGaussianSource(
        center=center,
        whole_extent=whole_extent,
        maximum=maximum,
        std=std,
    )
    assert source.center == center
    assert source.whole_extent == whole_extent
    assert source.maximum == maximum
    assert source.std == std
    center = (5.0, 0.0, 0.0)
    whole_extent = (-20, 20, -20, 20, -20, 20)
    maximum = 100
    std = 20.0
    source.center = center
    source.whole_extent = whole_extent
    source.maximum = maximum
    source.std = std
    assert source.center == center
    assert source.whole_extent == whole_extent
    assert source.maximum == maximum
    assert source.std == std
    assert isinstance(source.output, pv.ImageData)


def test_image_sinusolid_source():
    whole_extent = (0, 20, 0, 20, 0, 0)
    period = 20.0
    phase = 0.0
    amplitude = 255
    direction = (1.0, 0.0, 0.0)
    source = pv.ImageSinusoidSource(
        whole_extent=whole_extent,
        period=period,
        phase=phase,
        amplitude=amplitude,
        direction=direction,
    )
    assert source.whole_extent == whole_extent
    assert source.period == period
    assert source.phase == phase
    assert source.amplitude == amplitude
    assert source.direction == direction
    whole_extent = (0, 200, 0, 200, 0, 0)
    period = 200.0
    phase = 0.0
    amplitude = 100
    direction = (0.0, 1.0, 0.0)
    source.whole_extent = whole_extent
    source.period = period
    source.phase = phase
    source.amplitude = amplitude
    source.direction = direction
    assert source.whole_extent == whole_extent
    assert source.period == period
    assert source.phase == phase
    assert source.amplitude == amplitude
    assert source.direction == direction
    assert isinstance(source.output, pv.ImageData)


def test_image_grid_source():
    origin = (-10, -10, -10)
    extent = (-10, 10, -10, 10, -10, 10)
    spacing = (1, 1, 1)
    source = pv.ImageGridSource(origin=origin, extent=extent, spacing=spacing)
    assert source.origin == origin
    assert source.extent == extent
    assert source.spacing == spacing
    origin = (-5, -5, -5)
    extent = (-5, 5, -5, 5, -5, 5)
    spacing = (0.5, 0.5, 0.5)
    source.origin = origin
    source.extent = extent
    source.spacing = spacing
    assert source.origin == origin
    assert source.extent == extent
    assert source.spacing == spacing
    assert isinstance(source.output, pv.ImageData)