Statistics
| Revision:

root / trunk / libraries / libRaster / src-test / org / gvsig / raster / buffer / TestGdalByteHistogram.java @ 11074

History | View | Annotate | Download (6.34 KB)

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

    
21
import junit.framework.TestCase;
22

    
23
import org.gvsig.raster.RasterLibrary;
24
import org.gvsig.raster.buffer.BufferFactory;
25
import org.gvsig.raster.dataset.FileNotOpenException;
26
import org.gvsig.raster.dataset.NotSupportedExtensionException;
27
import org.gvsig.raster.dataset.RasterDataset;
28
import org.gvsig.raster.dataset.RasterDriverException;
29
import org.gvsig.raster.util.Histogram;
30

    
31
/**
32
 * Test a un histograma de una imagen de 3 bandas de un byte por dato leido con gdal. 
33
 * El test comprueba valores a lo largo de todo el histograma
34
 * @author Nacho Brodin (nachobrodin@gmail.com)
35
 *
36
 */
37
public class TestGdalByteHistogram extends TestCase{
38

    
39
        private String baseDir = "./test-images/";
40
        private String path = baseDir + "miniRaster25x24.tif";        
41
        private RasterDataset f = null;        
42
        private BufferFactory ds = null;
43
        
44
        public void start(){
45
                this.setUp();
46
                this.testStack();
47
        }
48
        
49
        public void setUp() {
50
                System.err.println("TestGdalByteHistogram running...");
51
        }
52

    
53
        static{
54
                RasterLibrary.wakeUp();
55
        }
56
        
57
        public void testStack(){
58
                try {
59
                        f = RasterDataset.open(null, path);
60
                } catch (NotSupportedExtensionException e) {
61
                        return;
62
                } catch (RasterDriverException e) {
63
                        return;
64
                }
65
                ds = new BufferFactory(f);
66
                Histogram histogram = null;
67
                try {
68
                        histogram = f.getHistogram().getHistogram();
69
                } catch (FileNotOpenException e) {
70
                        e.printStackTrace();
71
                } catch (RasterDriverException e) {
72
                        e.printStackTrace();
73
                }
74
                //print(histogram);
75
                resultTestR(histogram);
76
                resultTestG(histogram);
77
                resultTestB(histogram);
78
        }
79
        
80
        private void resultTestR(Histogram histogram){
81
                assertEquals(histogram.getHistogramValue(0, 0), 16);
82
                assertEquals(histogram.getHistogramValue(0, 1), 4);
83
                assertEquals(histogram.getHistogramValue(0, 2), 0);
84
                assertEquals(histogram.getHistogramValue(0, 3), 0);
85
                assertEquals(histogram.getHistogramValue(0, 4), 4);
86
                assertEquals(histogram.getHistogramValue(0, 5), 0);
87
                assertEquals(histogram.getHistogramValue(0, 6), 0);
88
                assertEquals(histogram.getHistogramValue(0, 7), 0);
89
                assertEquals(histogram.getHistogramValue(0, 8), 0);
90
                assertEquals(histogram.getHistogramValue(0, 9), 4);
91
                assertEquals(histogram.getHistogramValue(0, 10), 0);
92
                
93
                assertEquals(histogram.getHistogramValue(0, 100), 0);
94
                assertEquals(histogram.getHistogramValue(0, 101), 0);
95
                assertEquals(histogram.getHistogramValue(0, 102), 4);
96
                assertEquals(histogram.getHistogramValue(0, 103), 2);
97
                assertEquals(histogram.getHistogramValue(0, 104), 0);
98
                
99
                assertEquals(histogram.getHistogramValue(0, 250), 2);
100
                assertEquals(histogram.getHistogramValue(0, 251), 0);
101
                assertEquals(histogram.getHistogramValue(0, 252), 0);
102
                assertEquals(histogram.getHistogramValue(0, 253), 0);
103
                assertEquals(histogram.getHistogramValue(0, 254), 0);
104
                assertEquals(histogram.getHistogramValue(0, 255), 0);
105
        } 
106
        
107
        private void resultTestG(Histogram histogram){
108
                assertEquals(histogram.getHistogramValue(1, 0), 2);
109
                assertEquals(histogram.getHistogramValue(1, 1), 0);
110
                assertEquals(histogram.getHistogramValue(1, 2), 0);
111
                assertEquals(histogram.getHistogramValue(1, 3), 1);
112
                assertEquals(histogram.getHistogramValue(1, 4), 1);
113
                assertEquals(histogram.getHistogramValue(1, 5), 0);
114
                assertEquals(histogram.getHistogramValue(1, 6), 2);
115
                assertEquals(histogram.getHistogramValue(1, 7), 8);
116
                assertEquals(histogram.getHistogramValue(1, 8), 0);
117
                assertEquals(histogram.getHistogramValue(1, 9), 0);
118
                assertEquals(histogram.getHistogramValue(1, 10), 0);
119
        
120
                assertEquals(histogram.getHistogramValue(1, 100), 2);
121
                assertEquals(histogram.getHistogramValue(1, 101), 8);
122
                assertEquals(histogram.getHistogramValue(1, 102), 6);
123
                assertEquals(histogram.getHistogramValue(1, 103), 2);
124
                assertEquals(histogram.getHistogramValue(1, 104), 10);
125
                
126
                assertEquals(histogram.getHistogramValue(1, 250), 0);
127
                assertEquals(histogram.getHistogramValue(1, 251), 0);
128
                assertEquals(histogram.getHistogramValue(1, 252), 0);
129
                assertEquals(histogram.getHistogramValue(1, 253), 0);
130
                assertEquals(histogram.getHistogramValue(1, 254), 2);
131
                assertEquals(histogram.getHistogramValue(1, 255), 2);
132
        } 
133
        
134
        private void resultTestB(Histogram histogram){
135
                assertEquals(histogram.getHistogramValue(2, 0), 25);
136
                assertEquals(histogram.getHistogramValue(2, 1), 4);
137
                assertEquals(histogram.getHistogramValue(2, 2), 1);
138
                assertEquals(histogram.getHistogramValue(2, 3), 0);
139
                assertEquals(histogram.getHistogramValue(2, 4), 0);
140
                assertEquals(histogram.getHistogramValue(2, 5), 0);
141
                assertEquals(histogram.getHistogramValue(2, 6), 0);
142
                assertEquals(histogram.getHistogramValue(2, 7), 2);
143
                assertEquals(histogram.getHistogramValue(2, 8), 0);
144
                assertEquals(histogram.getHistogramValue(2, 9), 0);
145
                assertEquals(histogram.getHistogramValue(2, 10), 2);
146
                
147
                assertEquals(histogram.getHistogramValue(2, 100), 0);
148
                assertEquals(histogram.getHistogramValue(2, 101), 6);
149
                assertEquals(histogram.getHistogramValue(2, 102), 6);
150
                assertEquals(histogram.getHistogramValue(2, 103), 2);
151
                assertEquals(histogram.getHistogramValue(2, 104), 0);
152
        
153
                assertEquals(histogram.getHistogramValue(2, 250), 2);
154
                assertEquals(histogram.getHistogramValue(2, 251), 0);
155
                assertEquals(histogram.getHistogramValue(2, 252), 0);
156
                assertEquals(histogram.getHistogramValue(2, 253), 0);
157
                assertEquals(histogram.getHistogramValue(2, 254), 2);
158
                assertEquals(histogram.getHistogramValue(2, 255), 0);
159
        } 
160
        
161
        private void print(Histogram histogram){
162
                for (int i = 0; i < histogram.getNumBands(); i++) {
163
                        for (int j = 0; j < histogram.getBandLenght(i); j++){
164
                                System.out.print(histogram.getHistogramValue(i, j) + " ");
165
                        }
166
                        System.out.println("");
167
                }
168
        }
169
}