2424#
2525from __future__ import print_function
2626import unittest
27+ import numpy
2728from pninexus import h5cpp
2829from pninexus .h5cpp .datatype import Float , String , Datatype , Integer , Enum
2930
3031
32+ if hasattr (numpy , "complex256" ):
33+ LINUX = True
34+ else :
35+ LINUX = False
36+
37+
3138class PredefinedTypeTests (unittest .TestCase ):
3239
3340 enum_types = (Datatype , Enum )
@@ -586,6 +593,8 @@ def testFloat128(self):
586593 dtype .norm = norm
587594
588595 ebias = dtype .ebias
596+ if not LINUX :
597+ dtype .size = 8
589598 sz = dtype .size
590599 self .assertTrue (dtype .ebias in [2 * sz * sz * sz - 1 ,
591600 4 * sz * sz * sz - 1 ])
@@ -881,16 +890,23 @@ def testComplex256(self):
881890
882891 dtype = h5cpp .datatype .Compound (h5cpp .datatype .kComplex256 )
883892 self .assertTrue (isinstance (dtype , self .float_types ))
884- self .assertEqual (dtype .size , 32 )
893+ if LINUX :
894+ self .assertEqual (dtype .size , 32 )
895+ else :
896+ self .assertEqual (dtype .size , 16 )
885897 self .assertEqual (dtype .number_of_fields , 2 )
886898 self .assertEqual (dtype .field_name (0 ), "real" )
887899 self .assertEqual (dtype .field_name (1 ), "imag" )
888900 self .assertEqual (dtype .field_index ("real" ), 0 )
889901 self .assertEqual (dtype .field_index ("imag" ), 1 )
890902 self .assertEqual (dtype .field_offset ("real" ), 0 )
891903 self .assertEqual (dtype .field_offset (0 ), 0 )
892- self .assertEqual (dtype .field_offset ("imag" ), 16 )
893- self .assertEqual (dtype .field_offset (1 ), 16 )
904+ if LINUX :
905+ self .assertEqual (dtype .field_offset ("imag" ), 16 )
906+ self .assertEqual (dtype .field_offset (1 ), 16 )
907+ else :
908+ self .assertEqual (dtype .field_offset ("imag" ), 8 )
909+ self .assertEqual (dtype .field_offset (1 ), 8 )
894910 self .assertEqual (dtype .field_class ("real" ),
895911 h5cpp ._datatype .Class .FLOAT )
896912 self .assertEqual (dtype .field_class ("imag" ),
@@ -903,8 +919,12 @@ def testComplex256(self):
903919 real = dtype [0 ]
904920 imag = dtype [1 ]
905921
906- self .assertTrue (real .precision in [80 , 128 ])
907- self .assertTrue (imag .precision in [80 , 128 ])
922+ if LINUX :
923+ self .assertTrue (real .precision in [80 , 128 ])
924+ self .assertTrue (imag .precision in [80 , 128 ])
925+ else :
926+ self .assertTrue (real .precision in [64 ])
927+ self .assertTrue (imag .precision in [64 ])
908928 self .assertEqual (real .offset , 0 )
909929 self .assertEqual (imag .offset , 0 )
910930 self .assertTrue (real .order in [h5cpp .datatype .Order .LE ,
@@ -927,8 +947,12 @@ def testComplex256(self):
927947 h5cpp .datatype .Norm .NONE , h5cpp .datatype .Norm .IMPLIED ])
928948 # self.assertEqual(real.ebias, 16383)
929949 # self.assertEqual(imag.ebias, 16383)
930- self .assertEqual (real .size , 16 )
931- self .assertEqual (imag .size , 16 )
950+ if LINUX :
951+ self .assertEqual (real .size , 16 )
952+ self .assertEqual (imag .size , 16 )
953+ else :
954+ self .assertEqual (real .size , 8 )
955+ self .assertEqual (imag .size , 8 )
932956
933957 fields = real .fields
934958 self .assertEqual (len (fields ), 5 )
0 commit comments