Salome HOME
Fix ZJFilter to deal with int64 family array
[tools/paravisaddons_common.git] / src / SerafinReader / Test / test_SerafinReader.py
1 from paraview.simple import *
2 from vtk.util import numpy_support
3 import numpy as np
4
5 paraview.simple._DisableFirstRenderCameraReset()
6
7 # Normal single precision file
8 reader = SerafinReader(FileName='geo_sp.slf')
9 reader.UpdatePipeline()
10 reader_ds = servermanager.Fetch(reader)
11 # Checking that fields THING X THING Y are merged into THING *
12 list_var = [reader_ds.GetPointData().GetArrayName(i).strip() for i in range(reader_ds.GetPointData().GetNumberOfArrays())]
13 assert("THING *" in list_var)
14 assert("THING X" not in list_var)
15 assert("THING OTHER" in list_var)
16 # Checking that fields VELOCITY U, VELOCITY V are merged into VELOCITY *
17 assert("VELOCITY *" in list_var)
18 assert("VELOCITY U" not in list_var)
19 assert("VELOCITY STUFF" in list_var)
20 # Checking that VELOCITY has 3 components shoulb be on 0
21 assert(reader_ds.GetPointData().GetArray(0).GetNumberOfComponents() == 3)
22
23 # Simple read of Litte Endian file (Would crash if issue in the plugin)
24 reader = SerafinReader(FileName='geo_sp_le.slf')
25 # Simple read of Litte Endian file (Would crash if issue in the plugin)
26 reader = SerafinReader(FileName='geo_dp_le.slf')
27
28 # Normal double precision file
29 reader = SerafinReader(FileName='geo_dp.slf')
30 reader.UpdatePipeline()
31 reader_ds = servermanager.Fetch(reader)
32 # Checking that values are properly read
33 data = numpy_support.vtk_to_numpy(reader_ds.GetPointData().GetArray(0))
34 assert(np.all(data <= 1e-8))
35
36 # 3d mesh
37 reader = SerafinReader(FileName='geo_3d_dp.slf')
38 reader.UpdatePipeline()
39 reader_ds = servermanager.Fetch(reader)
40
41 # Reading file with time steps (10)
42 reader = SerafinReader(FileName='result.slf')
43 reader.UpdatePipeline()
44 reader_ds = servermanager.Fetch(reader)
45
46 # Using animationScene to get tim information
47 anim = GetAnimationScene()
48 tk = anim.TimeKeeper
49 times = tk.TimestepValues
50 ref_times = np.array([i*1.0 for i in range(10)])
51 diff = np.abs(ref_times - times)
52 assert(np.all(diff <= 1e-6))