Statistics
| Revision:

root / trunk / libraries / libRaster / src-test / org / gvsig / raster / dataset / TestHistogramSerializer.java @ 11336

History | View | Annotate | Download (3.12 KB)

1
/*
2
 * Created on 9-ago-2006
3
 *
4
 * To change the template for this generated file go to
5
 * Window>Preferences>Java>Code Generation>Code and Comments
6
 */
7
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
8
 *
9
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
10
 *
11
 * This program is free software; you can redistribute it and/or
12
 * modify it under the terms of the GNU General Public License
13
 * as published by the Free Software Foundation; either version 2
14
 * of the License, or (at your option) any later version.
15
 *
16
 * This program is distributed in the hope that it will be useful,
17
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19
 * GNU General Public License for more details.
20
 *
21
 * You should have received a copy of the GNU General Public License
22
 * along with this program; if not, write to the Free Software
23
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
24
 */
25
package org.gvsig.raster.dataset;
26

    
27
import junit.framework.TestCase;
28

    
29
import org.gvsig.raster.RasterLibrary;
30
import org.gvsig.raster.dataset.io.rmf.ParsingException;
31
import org.gvsig.raster.dataset.properties.DatasetHistogram;
32
import org.gvsig.raster.dataset.properties.HistogramRmfSerializer;
33
import org.gvsig.raster.util.Histogram;
34

    
35
/**
36
 * Test para comprobar la construcci?n de un histograma desde un XML. Este test calcula el histograma
37
 * de un raster y lo convierte a XML. Despu?s crear? un objeto Histogram a partir del XML. Finalmente
38
 * se comparar? el Histograma original con el final.
39
 * 
40
 * @author Nacho Brodin (nachobrodin@gmail.com)
41
 */
42
public class TestHistogramSerializer extends TestCase {
43
        
44
        private String baseDir = "./test-images/";
45
        private String path = baseDir + "miniraster30x30.jp2";
46
        private RasterDataset f = null;        
47
        
48
        static {
49
                RasterLibrary.wakeUp();
50
        }
51
        
52
        public void start() {
53
                this.setUp();
54
                this.testStack();
55
        }
56
        
57
        public void setUp() {
58
                System.err.println("TestHistogramSerializer running...");
59
                int[] drawableBands = {0, 1, 2};
60
                try {
61
                        f = RasterDataset.open(null, path);
62
                } catch (NotSupportedExtensionException e) {
63
                        e.printStackTrace();
64
                        return;
65
                } catch (RasterDriverException e) {
66
                        e.printStackTrace();
67
                        return;
68
                }
69
                
70
        }
71
        
72
        public void testStack() {
73
                DatasetHistogram dsh = f.getHistogram();
74
                Histogram hist1 = null;
75
                try {
76
                        hist1 = dsh.getHistogram();
77
                } catch (FileNotOpenException e) {
78
                        e.printStackTrace();
79
                } catch (RasterDriverException e) {
80
                        e.printStackTrace();
81
                }
82
                HistogramRmfSerializer serial1 = new HistogramRmfSerializer(hist1);
83
                String s = serial1.write();
84
                //System.out.println(s);
85
                
86
                HistogramRmfSerializer serial2 = new HistogramRmfSerializer();
87
                try {
88
                        serial2.read(s);
89
                } catch (ParsingException e) {
90
                        e.printStackTrace();
91
                }
92
                Histogram hist2 = (Histogram)serial2.getResult();
93
                
94
                assertEquals(hist1.getNumBands(), hist2.getNumBands());
95
                for (int iBand = 0; iBand < hist1.getNumBands(); iBand++) {
96
                        for(int i = 0; i < hist1.getNumValues(); i++) 
97
                                assertEquals((long)hist1.getHistogramValue(iBand, i), (long)hist2.getHistogramValue(iBand, i));        
98
                }
99
                
100
        }
101
        
102
}