Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libRaster / src-test / org / gvsig / raster / dataset / TestIOMemoryRasterDriver.java @ 21615

History | View | Annotate | Download (31.5 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.dataset;
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.buffer.RasterBuffer;
26
import org.gvsig.raster.dataset.io.MemoryRasterDriverParam;
27
import org.gvsig.raster.dataset.io.RasterDriverException;
28
/**
29
 * @author Nacho Brodin (nachobrodin@gmail.com)
30
 */
31
public class TestIOMemoryRasterDriver extends TestCase {
32
        private String        baseDir  = "./test-images/";
33
        private String        path     = baseDir + "miniRaster25x24.tif";
34

    
35
        private RasterDataset f        = null;
36
        private RasterDataset f1       = null;
37
        private BufferFactory ds       = null;
38
        private BandList      bandList = null;
39
        
40
        public void start() {
41
                this.setUp();
42
                try {
43
                        this.testStack();
44
                } catch (RasterDriverException e) {
45
                        e.printStackTrace();
46
                }
47
        }
48
        
49
        static {
50
                RasterLibrary.wakeUp();
51
        }
52
        
53
        public void setUp() {
54
                System.err.println("TestIOMemoryRasterDriver running...");
55
                try {
56
                        f1 = RasterDataset.open(null, path);
57
                } catch (NotSupportedExtensionException e1) {
58
                        e1.printStackTrace();
59
                } catch (RasterDriverException e1) {
60
                        e1.printStackTrace();
61
                }
62
                int[] drawableBands = {0, 1, 2};
63
                ds = new BufferFactory(f1);
64
                ds.setDrawableBands(drawableBands);
65
                try {
66
                        ds.setAreaOfInterest(0, 0, 25, 24);
67
                } catch (InvalidSetViewException e) {
68
                        e.printStackTrace();
69
                } catch (InterruptedException e) {
70
                        e.printStackTrace();
71
                } catch (RasterDriverException e) {
72
                        e.printStackTrace();
73
                }
74
                IBuffer buf = ds.getRasterBuf();
75
                
76
                try {
77
                        MemoryRasterDriverParam param = new MemoryRasterDriverParam(buf, ds.getDataSource().getExtent());
78
                        f = RasterDataset.open(null, param);
79
                } catch (NotSupportedExtensionException e1) {
80
                        e1.printStackTrace();
81
                } catch (RasterDriverException e1) {
82
                        e1.printStackTrace();
83
                }
84
                
85
                bandList = new BandList();
86
                for(int i = 0; i < buf.getBandCount();i++){
87
                        try{
88
                                Band band = new Band(f.getFName(), i, f.getDataType()[i]);
89
                                band.setPositionToDrawInBuffer(i);
90
                                bandList.addBand(band, i);
91
                        }catch(BandNotFoundInListException ex){
92
                                //No a?adimos la banda
93
                        }
94
                }
95
        }
96
        
97
        private void dataTest1(IBuffer raster) {
98
                int band0[] = { 14, 97, 97, 119, 119, 93, 93, 58, 0, 0, 1, 1, 54, 54, 79, 69, 69, 59, 59, 61, 61, 75, 58, 58, 68, 14, 97, 97, 119, 119, 93, 93, 58, 0, 0, 1, 1, 54, 54, 79, 69, 69, 59, 59, 61, 61, 75, 58, 58, 68, 0, 58, 58, 71, 71, 33, 33, 16, 0, 0, 37, 37, 54, 54, 78, 74, 74, 69, 69, 38, 38, 53, 30, 30, 82, 0, 58, 58, 71, 71, 33, 33, 16, 0, 0, 37, 37, 54, 54, 78, 74, 74, 69, 69, 38, 38, 53, 30, 30, 82, 19, 88, 88, 65, 65, 23, 23, 0, 9, 9, 49, 49, 66, 66, 71, 66, 66, 70, 70, 48, 48, 77, 56, 56, 73, 19, 88, 88, 65, 65, 23, 23, 0, 9, 9, 49, 49, 66, 66, 71, 66, 66, 70, 70, 48, 48, 77, 56, 56, 73, 54, 83, 83, 58, 58, 21, 21, 0, 24, 24, 55, 55, 70, 70, 68, 74, 74, 83, 83, 56, 56, 88, 91, 91, 82, 82, 51, 51, 60, 60, 42, 42, 61, 64, 64, 65, 65, 65, 65, 62, 82, 82, 91, 91, 71, 71, 103, 97, 97, 78, 82, 51, 51, 60, 60, 42, 42, 61, 64, 64, 65, 65, 65, 65, 62, 82, 82, 91, 91, 71, 71, 103, 97, 97, 78, 86, 54, 54, 70, 70, 70, 70, 109, 97, 97, 80, 80, 65, 65, 63, 80, 80, 80, 80, 90, 90, 114, 116, 116, 111, 86, 54, 54, 70, 70, 70, 70, 109, 97, 97, 80, 80, 65, 65, 63, 80, 80, 80, 80, 90, 90, 114, 116, 116, 111, 66, 94, 94, 76, 76, 77, 77, 87, 75, 75, 82, 82, 81, 81, 91, 90, 90, 71, 71, 102, 102, 81, 58, 58, 0, 66, 94, 94, 76, 76, 77, 77, 87, 75, 75, 82, 82, 81, 81, 91, 90, 90, 71, 71, 102, 102, 81, 58, 58, 0, 56, 113, 113, 84, 84, 68, 68, 61, 57, 57, 88, 88, 92, 92, 116, 111, 111, 93, 93, 130, 130, 34, 17, 17, 0, 63, 106, 106, 97, 97, 62, 62, 66, 81, 81, 110, 110, 94, 94, 114, 120, 120, 124, 124, 172, 172, 22, 4, 4, 23, 63, 106, 106, 97, 97, 62, 62, 66, 81, 81, 110, 110, 94, 94, 114, 120, 120, 124, 124, 172, 172, 22, 4, 4, 23, 85, 109, 109, 53, 53, 79, 79, 112, 107, 107, 115, 115, 117, 117, 122, 149, 149, 178, 178, 178, 178, 152, 11, 11, 31, 85, 109, 109, 53, 53, 79, 79, 112, 107, 107, 115, 115, 117, 117, 122, 149, 149, 178, 178, 178, 178, 152, 11, 11, 31, 87, 110, 110, 96, 96, 86, 86, 118, 125, 125, 138, 138, 160, 160, 179, 194, 194, 222, 222, 235, 235, 222, 95, 95, 68, 87, 110, 110, 96, 96, 86, 86, 118, 125, 125, 138, 138, 160, 160, 179, 194, 194, 222, 222, 235, 235, 222, 95, 95, 68, 97, 175, 175, 234, 234, 154, 154, 140, 146, 146, 152, 152, 200, 200, 242, 248, 248, 250, 250, 246, 246, 215, 150, 150, 115, 119, 164, 164, 225, 225, 157, 157, 162, 166, 166, 142, 142, 180, 180, 235, 237, 237, 225, 225, 198, 198, 146, 135, 135, 129, 119, 164, 164, 225, 225, 157, 157, 162, 166, 166, 142, 142, 180, 180, 235, 237, 237, 225, 225, 198, 198, 146, 135, 135, 129, 129, 129, 129, 164, 164, 153, 153, 183, 183, 183, 128, 128, 134, 134, 171, 173, 173, 169, 169, 158, 158, 123, 141, 141, 145};
99
                int band1[] = { 14, 101, 101, 127, 127, 108, 108, 75, 18, 18, 17, 17, 61, 61, 78, 65, 65, 59, 59, 65, 65, 84, 85, 85, 90, 14, 101, 101, 127, 127, 108, 108, 75, 18, 18, 17, 17, 61, 61, 78, 65, 65, 59, 59, 65, 65, 84, 85, 85, 90, 11, 86, 86, 102, 102, 61, 61, 39, 7, 7, 43, 43, 59, 59, 85, 83, 83, 82, 82, 52, 52, 70, 47, 47, 98, 11, 86, 86, 102, 102, 61, 61, 39, 7, 7, 43, 43, 59, 59, 85, 83, 83, 82, 82, 52, 52, 70, 47, 47, 98, 37, 115, 115, 94, 94, 47, 47, 6, 18, 18, 56, 56, 71, 71, 77, 75, 75, 82, 82, 63, 63, 96, 70, 70, 85, 37, 115, 115, 94, 94, 47, 47, 6, 18, 18, 56, 56, 71, 71, 77, 75, 75, 82, 82, 63, 63, 96, 70, 70, 85, 72, 108, 108, 79, 79, 37, 37, 4, 37, 37, 65, 65, 78, 78, 72, 81, 81, 93, 93, 71, 71, 107, 105, 105, 94, 100, 70, 70, 75, 75, 51, 51, 66, 81, 81, 79, 79, 73, 73, 66, 88, 88, 101, 101, 87, 87, 121, 112, 112, 93, 100, 70, 70, 75, 75, 51, 51, 66, 81, 81, 79, 79, 73, 73, 66, 88, 88, 101, 101, 87, 87, 121, 112, 112, 93, 104, 72, 72, 82, 82, 78, 78, 111, 115, 115, 96, 96, 75, 75, 69, 84, 84, 88, 88, 104, 104, 131, 129, 129, 124, 104, 72, 72, 82, 82, 78, 78, 111, 115, 115, 96, 96, 75, 75, 69, 84, 84, 88, 88, 104, 104, 131, 129, 129, 124, 84, 109, 109, 88, 88, 85, 85, 91, 94, 94, 97, 97, 91, 91, 98, 94, 94, 79, 79, 112, 112, 94, 65, 65, 0, 84, 109, 109, 88, 88, 85, 85, 91, 94, 94, 97, 97, 91, 91, 98, 94, 94, 79, 79, 112, 112, 94, 65, 65, 0, 72, 128, 128, 97, 97, 78, 78, 68, 76, 76, 103, 103, 104, 104, 125, 117, 117, 98, 98, 137, 137, 43, 26, 26, 3, 79, 121, 121, 110, 110, 75, 75, 77, 98, 98, 124, 124, 107, 107, 123, 127, 127, 129, 129, 178, 178, 29, 20, 20, 38, 79, 121, 121, 110, 110, 75, 75, 77, 98, 98, 124, 124, 107, 107, 123, 127, 127, 129, 129, 178, 178, 29, 20, 20, 38, 104, 130, 130, 74, 74, 97, 97, 126, 123, 123, 130, 130, 133, 133, 137, 161, 161, 187, 187, 180, 180, 153, 7, 7, 35, 104, 130, 130, 74, 74, 97, 97, 126, 123, 123, 130, 130, 133, 133, 137, 161, 161, 187, 187, 180, 180, 153, 7, 7, 35, 102, 124, 124, 109, 109, 95, 95, 126, 135, 135, 147, 147, 172, 172, 190, 205, 205, 228, 228, 237, 237, 222, 89, 89, 68, 102, 124, 124, 109, 109, 95, 95, 126, 135, 135, 147, 147, 172, 172, 190, 205, 205, 228, 228, 237, 237, 222, 89, 89, 68, 106, 182, 182, 236, 236, 151, 151, 134, 145, 145, 153, 153, 204, 204, 249, 254, 254, 255, 255, 247, 247, 215, 140, 140, 114, 120, 158, 158, 215, 215, 143, 143, 146, 159, 159, 136, 136, 181, 181, 238, 242, 242, 230, 230, 200, 200, 146, 126, 126, 124, 120, 158, 158, 215, 215, 143, 143, 146, 159, 159, 136, 136, 181, 181, 238, 242, 242, 230, 230, 200, 200, 146, 126, 126, 124, 122, 117, 117, 148, 148, 133, 133, 163, 173, 173, 122, 122, 132, 132, 173, 176, 176, 172, 172, 160, 160, 123, 133, 133, 140};
100
                int band2[] = { 0, 68, 68, 88, 88, 67, 67, 31, 0, 0, 0, 0, 28, 28, 48, 36, 36, 31, 31, 38, 38, 57, 42, 42, 52, 0, 68, 68, 88, 88, 67, 67, 31, 0, 0, 0, 0, 28, 28, 48, 36, 36, 31, 31, 38, 38, 57, 42, 42, 52, 0, 37, 37, 42, 42, 23, 23, 31, 0, 0, 29, 29, 36, 36, 54, 52, 52, 56, 56, 35, 35, 60, 11, 11, 61, 0, 37, 37, 42, 42, 23, 23, 31, 0, 0, 29, 29, 36, 36, 54, 52, 52, 56, 56, 35, 35, 60, 11, 11, 61, 23, 70, 70, 38, 38, 13, 13, 0, 1, 1, 38, 38, 49, 49, 51, 48, 48, 58, 58, 42, 42, 76, 57, 57, 71, 23, 70, 70, 38, 38, 13, 13, 0, 1, 1, 38, 38, 49, 49, 51, 48, 48, 58, 58, 42, 42, 76, 57, 57, 71, 60, 69, 69, 36, 36, 10, 10, 0, 7, 7, 38, 38, 55, 55, 55, 63, 63, 69, 69, 42, 42, 75, 92, 92, 80, 86, 42, 42, 42, 42, 30, 30, 59, 39, 39, 44, 44, 50, 50, 52, 74, 74, 77, 77, 51, 51, 79, 83, 83, 64, 86, 42, 42, 42, 42, 30, 30, 59, 39, 39, 44, 44, 50, 50, 52, 74, 74, 77, 77, 51, 51, 79, 83, 83, 64, 88, 50, 50, 58, 58, 57, 57, 97, 73, 73, 60, 60, 51, 51, 55, 70, 70, 65, 65, 69, 69, 89, 111, 111, 107, 88, 50, 50, 58, 58, 57, 57, 97, 73, 73, 60, 60, 51, 51, 55, 70, 70, 65, 65, 69, 69, 89, 111, 111, 107, 62, 90, 90, 68, 68, 62, 62, 68, 62, 62, 68, 68, 67, 67, 80, 77, 77, 56, 56, 85, 85, 64, 75, 75, 12, 62, 90, 90, 68, 68, 62, 62, 68, 62, 62, 68, 68, 67, 67, 80, 77, 77, 56, 56, 85, 85, 64, 75, 75, 12, 46, 109, 109, 79, 79, 53, 53, 35, 56, 56, 82, 82, 80, 80, 98, 91, 91, 76, 76, 119, 119, 26, 21, 21, 2, 50, 102, 102, 92, 92, 47, 47, 37, 88, 88, 107, 107, 81, 81, 92, 96, 96, 106, 106, 164, 164, 22, 0, 0, 0, 50, 102, 102, 92, 92, 47, 47, 37, 88, 88, 107, 107, 81, 81, 92, 96, 96, 106, 106, 164, 164, 22, 0, 0, 0, 84, 111, 111, 55, 55, 75, 75, 103, 97, 97, 111, 111, 120, 120, 130, 159, 159, 184, 184, 177, 177, 148, 24, 24, 36, 84, 111, 111, 55, 55, 75, 75, 103, 97, 97, 111, 111, 120, 120, 130, 159, 159, 184, 184, 177, 177, 148, 24, 24, 36, 83, 107, 107, 91, 91, 76, 76, 105, 111, 111, 128, 128, 158, 158, 182, 201, 201, 228, 228, 236, 236, 220, 101, 101, 66, 83, 107, 107, 91, 91, 76, 76, 105, 111, 111, 128, 128, 158, 158, 182, 201, 201, 228, 228, 236, 236, 220, 101, 101, 66, 87, 166, 166, 222, 222, 136, 136, 118, 124, 124, 135, 135, 190, 190, 241, 250, 250, 254, 254, 249, 249, 215, 148, 148, 109, 102, 144, 144, 203, 203, 130, 130, 133, 141, 141, 120, 120, 167, 167, 227, 235, 235, 226, 226, 199, 199, 148, 127, 127, 118, 102, 144, 144, 203, 203, 130, 130, 133, 141, 141, 120, 120, 167, 167, 227, 235, 235, 226, 226, 199, 199, 148, 127, 127, 118, 106, 101, 101, 133, 133, 122, 122, 152, 161, 161, 108, 108, 119, 119, 160, 165, 165, 165, 165, 155, 155, 121, 130, 130, 134};
101
                compareRaster(raster, band0, band1, band2);
102
        }
103

    
104
        private void dataTest2(IBuffer raster) {
105
                int band0[] = { 80, 80, 82, 82};
106
                int band1[] = { 96, 96, 97, 97};
107
                int band2[] = { 60, 60, 68, 68};
108
                compareRaster(raster, band0, band1, band2);
109
        }
110
        
111
        private void dataTest3(IBuffer raster) {
112
                int band0[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
113
                int band1[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
114
                int band2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
115
                compareRaster(raster, band0, band1, band2);
116
        }
117

    
118
        private void dataTest4(IBuffer raster) {
119
                int band0[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
120
                int band1[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
121
                int band2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
122
                compareRaster(raster, band0, band1, band2);
123
        }
124
        
125
        private void dataTest5(IBuffer raster) {
126
                int band0[] = { 86, 86, 54, 54, 54, 54, 70, 70, 70, 70, 70, 70, 70, 70, 109, 109, 97, 97, 97, 97, 86, 86, 54, 54, 54, 54, 70, 70, 70, 70, 70, 70, 70, 70, 109, 109, 97, 97, 97, 97, 66, 66, 94, 94, 94, 94, 76, 76, 76, 76, 77, 77, 77, 77, 87, 87, 75, 75, 75, 75, 66, 66, 94, 94, 94, 94, 76, 76, 76, 76, 77, 77, 77, 77, 87, 87, 75, 75, 75, 75, 66, 66, 94, 94, 94, 94, 76, 76, 76, 76, 77, 77, 77, 77, 87, 87, 75, 75, 75, 75, 66, 66, 94, 94, 94, 94, 76, 76, 76, 76, 77, 77, 77, 77, 87, 87, 75, 75, 75, 75, 56, 56, 113, 113, 113, 113, 84, 84, 84, 84, 68, 68, 68, 68, 61, 61, 57, 57, 57, 57, 56, 56, 113, 113, 113, 113, 84, 84, 84, 84, 68, 68, 68, 68, 61, 61, 57, 57, 57, 57, 63, 63, 106, 106, 106, 106, 97, 97, 97, 97, 62, 62, 62, 62, 66, 66, 81, 81, 81, 81, 63, 63, 106, 106, 106, 106, 97, 97, 97, 97, 62, 62, 62, 62, 66, 66, 81, 81, 81, 81, 63, 63, 106, 106, 106, 106, 97, 97, 97, 97, 62, 62, 62, 62, 66, 66, 81, 81, 81, 81, 63, 63, 106, 106, 106, 106, 97, 97, 97, 97, 62, 62, 62, 62, 66, 66, 81, 81, 81, 81, 85, 85, 109, 109, 109, 109, 53, 53, 53, 53, 79, 79, 79, 79, 112, 112, 107, 107, 107, 107, 85, 85, 109, 109, 109, 109, 53, 53, 53, 53, 79, 79, 79, 79, 112, 112, 107, 107, 107, 107, 85, 85, 109, 109, 109, 109, 53, 53, 53, 53, 79, 79, 79, 79, 112, 112, 107, 107, 107, 107, 85, 85, 109, 109, 109, 109, 53, 53, 53, 53, 79, 79, 79, 79, 112, 112, 107, 107, 107, 107, 87, 87, 110, 110, 110, 110, 96, 96, 96, 96, 86, 86, 86, 86, 118, 118, 125, 125, 125, 125, 87, 87, 110, 110, 110, 110, 96, 96, 96, 96, 86, 86, 86, 86, 118, 118, 125, 125, 125, 125, 87, 87, 110, 110, 110, 110, 96, 96, 96, 96, 86, 86, 86, 86, 118, 118, 125, 125, 125, 125, 87, 87, 110, 110, 110, 110, 96, 96, 96, 96, 86, 86, 86, 86, 118, 118, 125, 125, 125, 125};
127
                int band1[] = { 104, 104, 72, 72, 72, 72, 82, 82, 82, 82, 78, 78, 78, 78, 111, 111, 115, 115, 115, 115, 104, 104, 72, 72, 72, 72, 82, 82, 82, 82, 78, 78, 78, 78, 111, 111, 115, 115, 115, 115, 84, 84, 109, 109, 109, 109, 88, 88, 88, 88, 85, 85, 85, 85, 91, 91, 94, 94, 94, 94, 84, 84, 109, 109, 109, 109, 88, 88, 88, 88, 85, 85, 85, 85, 91, 91, 94, 94, 94, 94, 84, 84, 109, 109, 109, 109, 88, 88, 88, 88, 85, 85, 85, 85, 91, 91, 94, 94, 94, 94, 84, 84, 109, 109, 109, 109, 88, 88, 88, 88, 85, 85, 85, 85, 91, 91, 94, 94, 94, 94, 72, 72, 128, 128, 128, 128, 97, 97, 97, 97, 78, 78, 78, 78, 68, 68, 76, 76, 76, 76, 72, 72, 128, 128, 128, 128, 97, 97, 97, 97, 78, 78, 78, 78, 68, 68, 76, 76, 76, 76, 79, 79, 121, 121, 121, 121, 110, 110, 110, 110, 75, 75, 75, 75, 77, 77, 98, 98, 98, 98, 79, 79, 121, 121, 121, 121, 110, 110, 110, 110, 75, 75, 75, 75, 77, 77, 98, 98, 98, 98, 79, 79, 121, 121, 121, 121, 110, 110, 110, 110, 75, 75, 75, 75, 77, 77, 98, 98, 98, 98, 79, 79, 121, 121, 121, 121, 110, 110, 110, 110, 75, 75, 75, 75, 77, 77, 98, 98, 98, 98, 104, 104, 130, 130, 130, 130, 74, 74, 74, 74, 97, 97, 97, 97, 126, 126, 123, 123, 123, 123, 104, 104, 130, 130, 130, 130, 74, 74, 74, 74, 97, 97, 97, 97, 126, 126, 123, 123, 123, 123, 104, 104, 130, 130, 130, 130, 74, 74, 74, 74, 97, 97, 97, 97, 126, 126, 123, 123, 123, 123, 104, 104, 130, 130, 130, 130, 74, 74, 74, 74, 97, 97, 97, 97, 126, 126, 123, 123, 123, 123, 102, 102, 124, 124, 124, 124, 109, 109, 109, 109, 95, 95, 95, 95, 126, 126, 135, 135, 135, 135, 102, 102, 124, 124, 124, 124, 109, 109, 109, 109, 95, 95, 95, 95, 126, 126, 135, 135, 135, 135, 102, 102, 124, 124, 124, 124, 109, 109, 109, 109, 95, 95, 95, 95, 126, 126, 135, 135, 135, 135, 102, 102, 124, 124, 124, 124, 109, 109, 109, 109, 95, 95, 95, 95, 126, 126, 135, 135, 135, 135};
128
                int band2[] = { 88, 88, 50, 50, 50, 50, 58, 58, 58, 58, 57, 57, 57, 57, 97, 97, 73, 73, 73, 73, 88, 88, 50, 50, 50, 50, 58, 58, 58, 58, 57, 57, 57, 57, 97, 97, 73, 73, 73, 73, 62, 62, 90, 90, 90, 90, 68, 68, 68, 68, 62, 62, 62, 62, 68, 68, 62, 62, 62, 62, 62, 62, 90, 90, 90, 90, 68, 68, 68, 68, 62, 62, 62, 62, 68, 68, 62, 62, 62, 62, 62, 62, 90, 90, 90, 90, 68, 68, 68, 68, 62, 62, 62, 62, 68, 68, 62, 62, 62, 62, 62, 62, 90, 90, 90, 90, 68, 68, 68, 68, 62, 62, 62, 62, 68, 68, 62, 62, 62, 62, 46, 46, 109, 109, 109, 109, 79, 79, 79, 79, 53, 53, 53, 53, 35, 35, 56, 56, 56, 56, 46, 46, 109, 109, 109, 109, 79, 79, 79, 79, 53, 53, 53, 53, 35, 35, 56, 56, 56, 56, 50, 50, 102, 102, 102, 102, 92, 92, 92, 92, 47, 47, 47, 47, 37, 37, 88, 88, 88, 88, 50, 50, 102, 102, 102, 102, 92, 92, 92, 92, 47, 47, 47, 47, 37, 37, 88, 88, 88, 88, 50, 50, 102, 102, 102, 102, 92, 92, 92, 92, 47, 47, 47, 47, 37, 37, 88, 88, 88, 88, 50, 50, 102, 102, 102, 102, 92, 92, 92, 92, 47, 47, 47, 47, 37, 37, 88, 88, 88, 88, 84, 84, 111, 111, 111, 111, 55, 55, 55, 55, 75, 75, 75, 75, 103, 103, 97, 97, 97, 97, 84, 84, 111, 111, 111, 111, 55, 55, 55, 55, 75, 75, 75, 75, 103, 103, 97, 97, 97, 97, 84, 84, 111, 111, 111, 111, 55, 55, 55, 55, 75, 75, 75, 75, 103, 103, 97, 97, 97, 97, 84, 84, 111, 111, 111, 111, 55, 55, 55, 55, 75, 75, 75, 75, 103, 103, 97, 97, 97, 97, 83, 83, 107, 107, 107, 107, 91, 91, 91, 91, 76, 76, 76, 76, 105, 105, 111, 111, 111, 111, 83, 83, 107, 107, 107, 107, 91, 91, 91, 91, 76, 76, 76, 76, 105, 105, 111, 111, 111, 111, 83, 83, 107, 107, 107, 107, 91, 91, 91, 91, 76, 76, 76, 76, 105, 105, 111, 111, 111, 111, 83, 83, 107, 107, 107, 107, 91, 91, 91, 91, 76, 76, 76, 76, 105, 105, 111, 111, 111, 111};
129
                compareRaster(raster, band0, band1, band2);
130
        }
131

    
132
        private void dataTest6(IBuffer raster) {
133
                int band0[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
134
                int band1[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
135
                int band2[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
136
                compareRaster(raster, band0, band1, band2);
137
        }
138

    
139
        private void dataTest7(IBuffer raster) {
140
                int band0[] = { 14, 93, 1, 69, 61, 19, 23, 49, 66, 48, 86, 70, 80, 80, 90, 63, 62, 110, 120, 172, 87, 86, 138, 194, 235};
141
                int band1[] = { 14, 108, 17, 65, 65, 37, 47, 56, 75, 63, 104, 78, 96, 84, 104, 79, 75, 124, 127, 178, 102, 95, 147, 205, 237};
142
                int band2[] = { 0, 67, 0, 36, 38, 23, 13, 38, 48, 42, 88, 57, 60, 70, 69, 50, 47, 107, 96, 164, 83, 76, 128, 201, 236};
143
                compareRaster(raster, band0, band1, band2);
144
        }
145
        
146
        public void testStack() throws RasterDriverException {
147
                try {
148
                        //**************************************
149
                        //Prueba getWindowRaster(int x, int y, int w, int h, BandList bandList, IBuffer rasterBuf)
150
                        //COMPLETA
151
                        IBuffer buffer = RasterBuffer.getBuffer(f.getDataType()[0], 25, 24, 3, true);
152
                        f.getWindowRaster(0, 0, 25, 24, bandList, buffer);
153
                        dataTest1(buffer);
154
                        
155
                        //ZOOM
156
                        buffer = RasterBuffer.getBuffer(f.getDataType()[0], 2, 2, 3, true);
157
                        f.getWindowRaster(10, 10, 2, 2, bandList, buffer);
158
                        dataTest2(buffer);
159

    
160
                        //**************************************                
161
                        //Prueba de getWindowRaster(double minX, double minY, double maxX, double maxY, int bufWidth, int bufHeight, BandList bandList, IBuffer rasterBuf, boolean adjustToExtent)
162
                        //EXTENT COMPLETO
163
                        buffer = RasterBuffer.getBuffer(f.getDataType()[0], 25, 24, 3, true);
164
                        f.getWindowRaster(f.getExtent().minX(), f.getExtent().minY(), f.getExtent().maxX(), f.getExtent().maxY(), 25, 24, bandList, buffer, true);
165
                        dataTest3(buffer);
166
                        
167
                        //ZOOM + subsampling
168
                        buffer = RasterBuffer.getBuffer(f.getDataType()[0], 8, 8, 3, true);
169
                        f.getWindowRaster(Math.ceil(f.getExtent().minX()), Math.ceil(f.getExtent().minY()), Math.floor(f.getExtent().maxX()), Math.floor(f.getExtent().maxY()), 8, 8, bandList, buffer, true);
170
                        dataTest4(buffer);
171
                        
172
                        //ZOOM + supersampling
173
                        buffer = RasterBuffer.getBuffer(f.getDataType()[0], 20, 20, 3, true);
174
                        f.getWindowRaster(Math.ceil(f.getExtent().minX()), Math.ceil(f.getExtent().minY()), Math.floor(f.getExtent().minX() + 10), Math.floor(f.getExtent().minY() + 10), 20, 20, bandList, buffer, true);
175
                        dataTest5(buffer);
176
                        
177
                        //**************************************
178
                        //Prueba de getWindowRaster(double x, double y, double w, double h, BandList bandList, IBuffer rasterBuf, boolean adjustToExtent)
179
                        //COMPLETA
180
                        buffer = RasterBuffer.getBuffer(f.getDataType()[0], 25, 24, 3, true);
181
                        f.getWindowRaster(f.getExtent().minX(), f.getExtent().maxY(), f.getExtent().width(), f.getExtent().height(), bandList, buffer, true);
182
                        dataTest6(buffer);
183
                        
184
                        //**************************************
185
                        //Prueba de getWindowRaster(int x, int y, int w, int h, int bufWidth, int bufHeight, BandList bandList, IBuffer rasterBuf)
186
                        //COMPLETA
187
                        buffer = RasterBuffer.getBuffer(f.getDataType()[0], 5, 5, 3, true);
188
                        f.getWindowRaster(0, 0, 25, 24, 5, 5, bandList, buffer);
189
                        dataTest7(buffer);
190
                } catch (InterruptedException e) {
191
                        e.printStackTrace();
192
                }
193
        }
194

    
195
        public void compareRaster(IBuffer raster, int band0[], int band1[], int band2[]) {
196
                int cont = 0;
197
                for (int line = 0; line < raster.getHeight(); line++) {
198
                        for (int col = 0; col < raster.getWidth(); col++) {
199
                                assertEquals((int) (raster.getElemByte(line, col, 0) & 0xff), band0[cont]);
200
                                assertEquals((int) (raster.getElemByte(line, col, 1) & 0xff), band1[cont]);
201
                                assertEquals((int) (raster.getElemByte(line, col, 2) & 0xff), band2[cont]);
202
                                cont++;
203
                        }
204
                }
205
        }
206
        
207
        /**
208
         * Imprime todos los pixels de la fuente de datos en RGB
209
         */
210
        public void print(IBuffer raster) {
211
                System.out.println("");
212
                for (int band = 0; band < 3; band++) {
213
                        System.out.print("int band" + band + "[] = { ");
214
                        int cont = 0;
215
                        for (int line = 0; line < raster.getHeight(); line++) {
216
                                for (int col = 0; col < raster.getWidth(); col++) {
217
                                        if (cont != 0)
218
                                                System.out.print(", ");
219
                                        System.out.print(((int) (raster.getElemByte(line, col, band) & 0xff)));
220
                                        cont++;
221
                                }
222
                        }
223
                        System.out.println("};");
224
                }
225
        }
226
}