root / trunk / libraries / libRaster / src-test / org / gvsig / raster / buffer / cache / TestRasterCache.java @ 11074
History | View | Annotate | Download (2.85 KB)
1 | 11074 | nacho | package org.gvsig.raster.buffer.cache; |
---|---|---|---|
2 | |||
3 | import junit.framework.TestCase; |
||
4 | |||
5 | import org.gvsig.raster.RasterLibrary; |
||
6 | import org.gvsig.raster.buffer.BufferFactory; |
||
7 | import org.gvsig.raster.buffer.cache.RasterCache; |
||
8 | import org.gvsig.raster.dataset.IBuffer; |
||
9 | import org.gvsig.raster.dataset.NotSupportedExtensionException; |
||
10 | import org.gvsig.raster.dataset.RasterDataset; |
||
11 | import org.gvsig.raster.dataset.RasterDriverException; |
||
12 | |||
13 | |||
14 | /**
|
||
15 | * Test de comparativa de datos cacheados con datos sin cachear.
|
||
16 | * Leemos un raster 1..n veces cacheandolo por p?ginas. Una vez cacheado recorreremos
|
||
17 | * la cache recuperando los datos y comparandolos con los originales para comprobar que no
|
||
18 | * ha habido perdida y que lo que se obtiene es igual a lo inicial.
|
||
19 | *
|
||
20 | * @author Nacho Brodin (nachobrodin@gmail.com)
|
||
21 | */
|
||
22 | public class TestRasterCache extends TestCase{ |
||
23 | private String baseDir = "./test-images/"; |
||
24 | private String path = baseDir + "03AUG23153350-M2AS-000000122423_01_P001-BROWSE.jpg"; |
||
25 | private RasterDataset f = null; |
||
26 | private BufferFactory ds = null; |
||
27 | private int pages = 10; |
||
28 | |||
29 | static{
|
||
30 | RasterLibrary.wakeUp(); |
||
31 | } |
||
32 | |||
33 | public void start(){ |
||
34 | this.setUp();
|
||
35 | this.testStack();
|
||
36 | } |
||
37 | |||
38 | public void setUp() { |
||
39 | System.err.println("TestRasterCache running..."); |
||
40 | try {
|
||
41 | f = RasterDataset.open(null, path);
|
||
42 | } catch (NotSupportedExtensionException e) {
|
||
43 | e.printStackTrace(); |
||
44 | } catch (RasterDriverException e) {
|
||
45 | e.printStackTrace(); |
||
46 | } |
||
47 | } |
||
48 | |||
49 | public void testStack() { |
||
50 | int[] drawableBands = {0, 1, 2}; |
||
51 | //N?mero de veces que cacheamos la imagen. Esto hace que el n?mero de l?neas totales se multiplique por este n?mero
|
||
52 | int nTimes = 1; |
||
53 | |||
54 | ds = new BufferFactory(f);
|
||
55 | ds.addDrawableBands(drawableBands); |
||
56 | ds.setAreaOfInterest(0, 0, f.getWidth(), f.getHeight()); |
||
57 | |||
58 | //Salvamos los PageBuffer
|
||
59 | IBuffer buf = ds.getRasterBuf(); |
||
60 | |||
61 | //Reducimos el tama?o de la cach? para poder trabajar con un volumen de datos reducido
|
||
62 | RasterLibrary.cacheSize = 1;
|
||
63 | RasterLibrary.pageSize = 0.2;
|
||
64 | |||
65 | RasterCache rc = new RasterCache(f.getDataType(), f.getWidth(), f.getHeight() * nTimes, 3); |
||
66 | //rc.getCache().getCacheStruct().show();
|
||
67 | |||
68 | //Cargamos la cach?
|
||
69 | byte[] data = new byte[3]; |
||
70 | for(int i = 0; i < nTimes; i++){ |
||
71 | for(int line = 0; line < f.getHeight(); line ++){ |
||
72 | for (int col = 0; col < f.getWidth(); col++) { |
||
73 | buf.getElemByte(line, col, data); |
||
74 | rc.setElemByte(line + (f.getHeight() * i), col, data); |
||
75 | } |
||
76 | } |
||
77 | } |
||
78 | |||
79 | //Obtenemos los datos y comparamos
|
||
80 | byte[] dataA = new byte[3]; |
||
81 | byte[] dataB = new byte[3]; |
||
82 | for(int i = 0; i < nTimes; i++){ |
||
83 | for(int line = 0; line < f.getHeight(); line ++){ |
||
84 | for (int col = 0; col < f.getWidth(); col++) { |
||
85 | buf.getElemByte(line, col, dataA); |
||
86 | rc.getElemByte(line + (f.getHeight() * i), col, dataB); |
||
87 | assertEquals(dataA[0], dataB[0]); |
||
88 | assertEquals(dataA[1], dataB[1]); |
||
89 | assertEquals(dataA[2], dataB[2]); |
||
90 | } |
||
91 | } |
||
92 | } |
||
93 | |||
94 | |||
95 | } |
||
96 | } |