Statistics
| Revision:

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

History | View | Annotate | Download (2.18 KB)

1
package org.gvsig.raster.buffer.cache;
2

    
3
import java.util.Date;
4

    
5
import junit.framework.TestCase;
6

    
7
import org.gvsig.raster.RasterLibrary;
8
import org.gvsig.raster.buffer.cache.RasterCache;
9
import org.gvsig.raster.dataset.IBuffer;
10

    
11

    
12
/**
13
 * Test para probar la operaci?n de asignar una constante a una banda de un buffer cacheado y 
14
 * el intercambio de 2 bandas para el mismo buffer. Con esto se prueban las operaciones de assign, getBand,
15
 * assignBand, assignBandToNotValid, interchangeBands y getBandBuffer
16
 * 
17
 * @author Nacho Brodin (nachobrodin@gmail.com)
18
 */
19
public class TestAssignInterchangeBandsCache extends TestCase{
20
                
21
        private RasterCache rc = null;
22
        
23
        static{
24
                RasterLibrary.wakeUp();
25
        }
26
        
27
        public void start(){
28
                this.setUp();
29
                this.testStack();
30
        }
31
        
32
        public void setUp() {
33
                System.err.println("TestBandOperationCache running...");
34
                rc = new RasterCache(IBuffer.TYPE_BYTE, 6000, 5000, 3);
35
        }
36
        
37
        public void testStack(){
38
                long t2, t3, t4;
39
        long t1 = new Date().getTime();
40
        rc.setNotValidValue(40);
41
                rc.assign(0, (byte)20);
42
                rc.assign(1, (byte)30);
43
                rc.assignBandToNotValid(2);
44
                t2 = new Date().getTime();
45
        System.out.println("Time: asignar buffer a un valor cte: " + ((t2 - t1) / 1000D) + ", secs.");
46
                
47
        rc.interchangeBands(0, 1);
48
                testValues(30, 20, 40);
49
                                
50
                t3 = new Date().getTime();
51
        System.out.println("Time: asserts del valor por banda cacheado: " + ((t3 - t2) / 1000D) + ", secs.");
52
        
53
        IBuffer buf = rc.getBandBuffer(2);
54
        testValue((int)rc.getNotValidValue(), buf);
55
        
56
        t4 = new Date().getTime();
57
        System.out.println("Time: getBandBuffer: " + ((t4 - t3) / 1000D) + ", secs.");
58
        
59
        }
60
        
61
        private void testValues(int v1, int v2, int v3){
62
                for (int row = 0; row < rc.getHeight(); row++) {
63
                        for (int col = 0; col < rc.getWidth(); col++) {
64
                                assertEquals(v1, rc.getElemByte(row, col, 0));
65
                                assertEquals(v2, rc.getElemByte(row, col, 1));
66
                                assertEquals(v3, rc.getElemByte(row, col, 2));
67
                        }
68
                }
69
        }
70
        
71
        private void testValue(int value, IBuffer buf){
72
                for (int row = 0; row < buf.getHeight(); row++) {
73
                        for (int col = 0; col < buf.getWidth(); col++) 
74
                                assertEquals(value, buf.getElemByte(row, col, 0));
75
                }
76
        }
77
}