Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

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

import sys 

import unittest 

 

import matplotlib 

matplotlib.use("Agg") # noqa 

 

import numpy as np 

 

import lsst.utils.tests 

 

from pfs.datamodel import FluxTable, MaskHelper 

 

display = None 

 

 

class FluxTableTestCase(lsst.utils.tests.TestCase): 

def setUp(self): 

self.length = 4000 

self.minWavelength = 350.0 

self.maxWavelength = 1250.0 

numBad = 10 

rng = np.random.RandomState(12345) # I have the same combination on my luggage 

wavelengthRange = self.maxWavelength - self.minWavelength 

self.wavelength = (self.minWavelength + 

np.sort(rng.uniform(size=self.length).astype(np.float32))*wavelengthRange) 

self.flux = rng.uniform(size=self.length).astype(np.float32) 

self.error = rng.uniform(size=self.length).astype(np.float32) 

self.mask = np.zeros_like(self.flux, dtype=np.int32) 

self.flags = MaskHelper(missing=1) 

 

# Add some bad pixels 

bad = rng.choice(range(self.length), numBad, False) 

self.flux[bad] = 12345.6789 

self.mask[bad] = self.flags.get("missing") 

 

self.fluxTable = FluxTable(self.wavelength, self.flux, self.error, self.mask, self.flags) 

 

def assertFluxTable(self, ft): 

self.assertEqual(len(ft), self.length) 

self.assertFloatsEqual(ft.wavelength, self.wavelength) 

self.assertFloatsEqual(ft.flux, self.flux) 

self.assertFloatsEqual(ft.error, self.error) 

self.assertFloatsEqual(ft.mask, self.mask) 

self.assertDictEqual(ft.flags.flags, self.flags.flags) 

 

def testBasic(self): 

"""Test basic functions""" 

self.assertFluxTable(self.fluxTable) 

 

def testFits(self): 

"""Test I/O with FITS""" 

from astropy.io.fits import HDUList 

fits = HDUList() 

self.fluxTable.toFits(fits) 

ft = FluxTable.fromFits(fits) 

self.assertFluxTable(ft) 

 

 

class TestMemory(lsst.utils.tests.MemoryTestCase): 

pass 

 

 

def setup_module(module): 

lsst.utils.tests.init() 

 

 

67 ↛ 68line 67 didn't jump to line 68, because the condition on line 67 was never trueif __name__ == "__main__": 

setup_module(sys.modules["__main__"]) 

from argparse import ArgumentParser 

parser = ArgumentParser(__file__) 

parser.add_argument("--display", help="Display backend") 

args, argv = parser.parse_known_args() 

display = args.display 

unittest.main(failfast=True, argv=[__file__] + argv)