Revision 21615 trunk/libraries/libRaster/src-test/org/gvsig/raster/buffer/TDSDoubleAdjustToExtentBufferEcw.java

View differences:

TDSDoubleAdjustToExtentBufferEcw.java
1
/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2 2
 *
3 3
 * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
4 4
 *
......
26 26
import org.gvsig.raster.dataset.NotSupportedExtensionException;
27 27
import org.gvsig.raster.dataset.RasterDataset;
28 28
import org.gvsig.raster.dataset.io.RasterDriverException;
29

  
30 29
/**
31 30
 * Este test prueba el acceso a datos a traves de un DataSource sin resampleo
32 31
 * para un ECW con coordenadas reales. 
......
42 41
 * @author Nacho Brodin (nachobrodin@gmail.com)
43 42
 *
44 43
 */
45
public class TDSDoubleAdjustToExtentBufferEcw extends TestCase{
44
public class TDSDoubleAdjustToExtentBufferEcw extends TestCase {
45
	private String        baseDir = "./test-images/";
46
	private String        path    = baseDir + "miniraster30x30.jp2";
46 47

  
47
	private String baseDir = "./test-images/";
48
	private String path = baseDir + "miniraster30x30.jp2";	
49
	private RasterDataset f = null;	
50
	private BufferFactory ds = null;
51
	
52
	public void start(){
48
	public void start() {
53 49
		this.setUp();
54 50
		this.testStack();
55 51
	}
56
	
52

  
57 53
	public void setUp() {
58 54
		System.err.println("TDSDoubleAdjustToExtentBufferEcw running...");
59
		//System.out.println("TestDataSource (Real Coord) Adjust To Extent With Buffer [Ecw] running...");
60 55
	}
61 56

  
62
	static{
57
	static {
63 58
		RasterLibrary.wakeUp();
64 59
	}
65
	
60

  
66 61
	public void testStack() {
67
		int[] drawableBands = {0, 1, 2};
62
		RasterDataset f;
63
		int[] drawableBands = { 0, 1, 2 };
68 64
		try {
69 65
			f = RasterDataset.open(null, path);
70 66
		} catch (RasterDriverException e) {
......
72 68
		} catch (NotSupportedExtensionException e) {
73 69
			return;
74 70
		}
75
		ds = new BufferFactory(f);
71
		BufferFactory ds = new BufferFactory(f);
76 72
		ds.setDrawableBands(drawableBands);
77 73
		//Se selecciona un ?rea mayor que el extent para probar que lo ajusta a este 
78 74
		try {
......
84 80
		} catch (InterruptedException e) {
85 81
			e.printStackTrace();
86 82
		}
87
		//print();
88
		dataTest1();
83
//		print(ds.getRasterBuf());
84
		dataTest1(ds.getRasterBuf());
89 85
				
90 86
		try {
91 87
			ds.setAreaOfInterest(645860.0, 4923870.0, 645986.0, 4923744.0, 2, 2);
......
96 92
		} catch (InterruptedException e) {
97 93
			e.printStackTrace();
98 94
		}
99
		dataTest2();
100
		//print();
95
//		print(ds.getRasterBuf());
96
		dataTest2(ds.getRasterBuf());
101 97
	}
102
	
103
	private void dataTest2(){
104
		IBuffer raster = ds.getRasterBuf();
105
		//Upper Left
106
		assertEquals((int)(raster.getElemByte(0, 0, 0) & 0xff), 43);
107
		assertEquals((int)(raster.getElemByte(0, 0, 1) & 0xff), 53);
108
		assertEquals((int)(raster.getElemByte(0, 0, 2) & 0xff), 26);
109
		//Upper Right
110
		assertEquals((int)(raster.getElemByte(0, 1, 0) & 0xff), 109);
111
		assertEquals((int)(raster.getElemByte(0, 1, 1) & 0xff), 111);
112
		assertEquals((int)(raster.getElemByte(0, 1, 2) & 0xff), 97);
113
		//Lower Left
114
		assertEquals((int)(raster.getElemByte(1, 0, 0) & 0xff), 159);
115
		assertEquals((int)(raster.getElemByte(1, 0, 1) & 0xff), 168);
116
		assertEquals((int)(raster.getElemByte(1, 0, 2) & 0xff), 146);
117
		//Lower Right
118
		assertEquals((int)(raster.getElemByte(1, 1, 0) & 0xff), 18);
119
		assertEquals((int)(raster.getElemByte(1, 1, 1) & 0xff), 39);
120
		assertEquals((int)(raster.getElemByte(1, 1, 2) & 0xff), 41);
98

  
99
	private void dataTest1(IBuffer raster) {
100
		int band0[] = { 43, 14, 87, 166, 174, 109, 90, 93, 190, 143, 85, 93, 103, 112, 138, 94, 138, 192, 180, 196, 99, 209, 41, 98, 168, 170, 89, 141, 158, 199, 108, 71, 67, 92, 131, 176, 243, 98, 163, 141, 157, 170, 94, 159, 233, 114, 144, 62, 147, 173, 159, 173, 184, 94, 56, 18, 69, 78, 83, 115, 95, 37, 80, 57, 68, 68, 55, 59, 58, 101, 69, 44, 24, 58, 115, 40, 58, 56, 68, 111, 84, 117, 55, 88, 170, 135, 169, 99, 74, 42, 114, 223, 171, 67, 216, 104, 167, 83, 66, 45 };
101
		int band1[] = { 53, 15, 109, 154, 164, 111, 109, 93, 189, 151, 89, 102, 107, 111, 142, 100, 143, 195, 178, 190, 100, 192, 61, 108, 154, 172, 99, 149, 160, 206, 122, 74, 81, 94, 136, 195, 248, 105, 173, 141, 158, 162, 98, 158, 226, 114, 132, 66, 150, 176, 168, 172, 175, 105, 82, 39, 85, 89, 73, 104, 92, 51, 80, 71, 88, 84, 71, 74, 68, 106, 82, 62, 37, 74, 129, 49, 78, 67, 89, 126, 100, 132, 71, 107, 164, 145, 154, 108, 85, 48, 130, 210, 164, 66, 209, 115, 160, 85, 90, 61 };
102
		int band2[] = { 26, 11, 82, 145, 165, 97, 86, 71, 191, 135, 74, 75, 85, 110, 117, 82, 115, 186, 179, 183, 91, 181, 43, 85, 139, 178, 78, 133, 152, 206, 98, 61, 71, 109, 118, 181, 244, 82, 144, 117, 144, 159, 83, 155, 231, 98, 108, 60, 136, 163, 146, 170, 162, 111, 102, 41, 62, 60, 64, 68, 97, 26, 74, 50, 64, 70, 47, 48, 56, 70, 54, 35, 19, 50, 91, 35, 48, 52, 62, 101, 73, 91, 35, 80, 140, 119, 140, 91, 58, 36, 112, 202, 146, 66, 192, 81, 131, 71, 63, 37 };
103
		compareRaster(raster, band0, band1, band2);
121 104
	}
122
	
123
	private void dataTest1(){
124
		IBuffer raster = ds.getRasterBuf();
125
		//Upper Left
126
		assertEquals((int)(raster.getElemByte(0, 0, 0) & 0xff), 43);
127
		assertEquals((int)(raster.getElemByte(0, 0, 1) & 0xff), 53);
128
		assertEquals((int)(raster.getElemByte(0, 0, 2) & 0xff), 26);
129
		//Upper Right
130
		assertEquals((int)(raster.getElemByte(0, 9, 0) & 0xff), 144);
131
		assertEquals((int)(raster.getElemByte(0, 9, 1) & 0xff), 157);
132
		assertEquals((int)(raster.getElemByte(0, 9, 2) & 0xff), 141);
133
		//Lower Left
134
		assertEquals((int)(raster.getElemByte(9, 0, 0) & 0xff), 113);
135
		assertEquals((int)(raster.getElemByte(9, 0, 1) & 0xff), 130);
136
		assertEquals((int)(raster.getElemByte(9, 0, 2) & 0xff), 111);
137
		//Lower Right
138
		assertEquals((int)(raster.getElemByte(9, 9, 0) & 0xff), 28);
139
		assertEquals((int)(raster.getElemByte(9, 9, 1) & 0xff), 43);
140
		assertEquals((int)(raster.getElemByte(9, 9, 2) & 0xff), 24);
141
		
142
		assertEquals((int)(raster.getElemByte(6, 6, 0) & 0xff), 54);
143
		assertEquals((int)(raster.getElemByte(6, 6, 1) & 0xff), 71);
144
		assertEquals((int)(raster.getElemByte(6, 6, 2) & 0xff), 46);
145
		
146
		assertEquals((int)(raster.getElemByte(6, 9, 0) & 0xff), 91);
147
		assertEquals((int)(raster.getElemByte(6, 9, 1) & 0xff), 94);
148
		assertEquals((int)(raster.getElemByte(6, 9, 2) & 0xff), 53);
149
		
150
		assertEquals((int)(raster.getElemByte(9, 6, 0) & 0xff), 166);
151
		assertEquals((int)(raster.getElemByte(9, 6, 1) & 0xff), 160);
152
		assertEquals((int)(raster.getElemByte(9, 6, 2) & 0xff), 131);
153
		
154
		assertEquals((int)(raster.getElemByte(2, 3, 0) & 0xff), 89);
155
		assertEquals((int)(raster.getElemByte(2, 3, 1) & 0xff), 105);
156
		assertEquals((int)(raster.getElemByte(2, 3, 2) & 0xff), 79);
157
		
158
		assertEquals((int)(raster.getElemByte(3, 1, 0) & 0xff), 71);
159
		assertEquals((int)(raster.getElemByte(3, 1, 1) & 0xff), 73);
160
		assertEquals((int)(raster.getElemByte(3, 1, 2) & 0xff), 61);
161
		
162
		assertEquals((int)(raster.getElemByte(0, 2, 0) & 0xff), 87);
163
		assertEquals((int)(raster.getElemByte(0, 2, 1) & 0xff), 109);
164
		assertEquals((int)(raster.getElemByte(0, 2, 2) & 0xff), 81);
105

  
106
	private void dataTest2(IBuffer raster) {
107
		int band0[] = { 43, 109, 160, 18 };
108
		int band1[] = { 53, 111, 168, 39 };
109
		int band2[] = { 26, 97, 146, 41 };
110
		compareRaster(raster, band0, band1, band2);
165 111
	}
166
	
112

  
113
	public void compareRaster(IBuffer raster, int band0[], int band1[], int band2[]) {
114
		int cont = 0;
115
		for (int line = 0; line < raster.getHeight(); line++) {
116
			for (int col = 0; col < raster.getWidth(); col++) {
117
				assertEquals((int) (raster.getElemByte(line, col, 0) & 0xff), band0[cont]);
118
				assertEquals((int) (raster.getElemByte(line, col, 1) & 0xff), band1[cont]);
119
				assertEquals((int) (raster.getElemByte(line, col, 2) & 0xff), band2[cont]);
120
				cont++;
121
			}
122
		}
123
	}
124

  
167 125
	/**
168 126
	 * Imprime todos los pixels de la fuente de datos en RGB
169 127
	 */
170
	/*private void print(){
171
		IBuffer raster = ds.getRasterBuf();
172
		for(int line = 0; line < raster.getHeight(); line++){
173
			for(int col = 0; col < raster.getWidth(); col++)
174
				System.out.print("(" + (int)(raster.getElemByte(line, col, 0) & 0xff) + " " + (int)(raster.getElemByte(line, col, 1) & 0xff) + " " + (int)(raster.getElemByte(line, col, 2) & 0xff) + ")");
175
			System.out.println();
128
	public void print(IBuffer raster) {
129
		System.out.println("");
130
		for (int band = 0; band < 3; band++) {
131
			System.out.print("int band" + band + "[] = { ");
132
			int cont = 0;
133
			for (int line = 0; line < raster.getHeight(); line++) {
134
				for (int col = 0; col < raster.getWidth(); col++) {
135
					if (cont != 0)
136
						System.out.print(", ");
137
					System.out.print(((int) (raster.getElemByte(line, col, band) & 0xff)));
138
					cont++;
139
				}
140
			}
141
			System.out.println("};");
176 142
		}
177
	}*/
178

  
143
	}
179 144
}

Also available in: Unified diff