File: TamfitsTest.java

package info (click to toggle)
starjava-fits 0.1%2B2017.11.10-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 952 kB
  • sloc: java: 10,417; xml: 452; makefile: 17
file content (81 lines) | stat: -rw-r--r-- 2,715 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
package uk.ac.starlink.fits;

import junit.framework.TestCase;
import nom.tam.fits.HeaderCard;
import nom.tam.fits.HeaderCardException;

public class TamfitsTest extends TestCase {

    public void testString() throws Exception {

        // These tests test bugfixes made to the starjava fork
        // of nom.tam.fits.  If they fail on other nom.tam.fits
        // versions, those versions should be fixed.
        String name = "DUMMY";
        String txt = repeat( "1234567890", 8 );
        String comm = null;
        for ( int i = 0; i < 69; i++ ) {
            HeaderCard card =
                new HeaderCard( name, txt.substring( 0, i ), comm );
            checkStringCard( card );
        }
        assertEquals( '\'', new HeaderCard( name, txt.substring( 0, 68 ), comm )
                           .toString().charAt( 79 ) );
        try {
            new HeaderCard( name, txt.substring( 0, 69 ), comm );
            fail();
        }
        catch ( HeaderCardException e ) {
            // ok
        }

        {
            String qtxt = repeat( "C'thalpa ", 6 ) + "12345678";
            HeaderCard qcard = new HeaderCard( name, qtxt, comm );
            checkStringCard( qcard );
            assertEquals( 80, qcard.toString().length() );
            try {
                new HeaderCard( name, qtxt + "X", comm );
                fail();
            }
            catch ( HeaderCardException e ) {
                // ok
            }
        }

        String atxt = "Cyaeghad";
        {
            HeaderCard acard = new HeaderCard( name, atxt, comm );
            checkStringCard( acard );
        }

        {
            String ltxt = repeat( "1234567890", 6 ) + atxt;
            HeaderCard lcard = new HeaderCard( name, ltxt, comm );
            checkStringCard( lcard );
            assertEquals( 80, lcard.toString().length() );
        }
    }

    private void checkStringCard( HeaderCard card ) {
        String image = card.toString();
        assertEquals( 80, image.length() );
        assertEquals( '=', image.charAt( 8 ) );
        assertEquals( ' ', image.charAt( 9 ) );
        assertEquals( '\'', image.charAt( 10 ) );
        assertEquals( '\'', image.charAt( image.trim().length() - 1 ) );
        for ( int ic = 0; ic < 80; ic++ ) {
            char c = image.charAt( ic );
            assertTrue( "Disallowed character: " + c + " in " + image,
                        c >= 0x20 && c <= 0x7e );
        }
    }

    private static String repeat( String txt, int count ) {
        StringBuffer sbuf = new StringBuffer( txt.length() * count );
        for ( int i = 0; i < count; i++ ) {
            sbuf.append( txt );
        }
        return sbuf.toString();
    }
}