github.com/sbinet/go-cfitsio@v0.0.0-20140625105338-0307f985659e/phdu_test.go (about)

     1  package cfitsio
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"testing"
     7  )
     8  
     9  func TestCreatePHDU(t *testing.T) {
    10  	curdir, err := os.Getwd()
    11  	if err != nil {
    12  		t.Fatalf(err.Error())
    13  	}
    14  	defer os.Chdir(curdir)
    15  
    16  	workdir, err := ioutil.TempDir("", "go-cfitsio-test-")
    17  	if err != nil {
    18  		t.Fatalf(err.Error())
    19  	}
    20  	defer os.RemoveAll(workdir)
    21  
    22  	err = os.Chdir(workdir)
    23  	if err != nil {
    24  		t.Fatalf(err.Error())
    25  	}
    26  
    27  	fname := "new.fits"
    28  	for _, fct := range []func(){
    29  		// create
    30  		func() {
    31  			f, err := Create(fname)
    32  			if err != nil {
    33  				t.Fatalf("error creating new file [%v]: %v", fname, err)
    34  			}
    35  			defer f.Close()
    36  
    37  			phdu, err := NewPrimaryHDU(&f, NewDefaultHeader())
    38  			if err != nil {
    39  				t.Fatalf("error creating PHDU: %v", err)
    40  			}
    41  			defer phdu.Close()
    42  
    43  			hdr := phdu.Header()
    44  			if hdr.bitpix != 8 {
    45  				t.Fatalf("expected BITPIX=%v. got %v", 8, hdr.bitpix)
    46  			}
    47  
    48  			name := phdu.Name()
    49  			if name != "PRIMARY" {
    50  				t.Fatalf("expected EXTNAME==%v. got %v", "PRIMARY", name)
    51  			}
    52  
    53  			vers := phdu.Version()
    54  			if vers != 1 {
    55  				t.Fatalf("expected EXTVER==%v. got %v", 1, vers)
    56  			}
    57  		},
    58  		// read-back
    59  		func() {
    60  			f, err := Open(fname, ReadOnly)
    61  			if err != nil {
    62  				t.Fatalf("error opening file [%v]: %v", fname, err)
    63  			}
    64  			defer f.Close()
    65  
    66  			hdu := f.HDU(0)
    67  			hdr := hdu.Header()
    68  			if hdr.bitpix != 8 {
    69  				t.Fatalf("expected BITPIX=%v. got %v", 8, hdr.bitpix)
    70  			}
    71  
    72  			name := hdu.Name()
    73  			if name != "PRIMARY" {
    74  				t.Fatalf("expected EXTNAME==%v. got %v", "PRIMARY", name)
    75  			}
    76  
    77  			vers := hdu.Version()
    78  			if vers != 1 {
    79  				t.Fatalf("expected EXTVER==%v. got %v", 1, vers)
    80  			}
    81  		},
    82  	} {
    83  		fct()
    84  	}
    85  
    86  }