]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/testcases/org/simantics/databoard/tests/TestFileList2.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.databoard / testcases / org / simantics / databoard / tests / TestFileList2.java
1 /*******************************************************************************
2  *  Copyright (c) 2010 Association for Decentralized Information Management in
3  *  Industry THTH ry.
4  *  All rights reserved. This program and the accompanying materials
5  *  are made available under the terms of the Eclipse Public License v1.0
6  *  which accompanies this distribution, and is available at
7  *  http://www.eclipse.org/legal/epl-v10.html
8  *
9  *  Contributors:
10  *      VTT Technical Research Centre of Finland - initial API and implementation
11  *******************************************************************************/
12 package org.simantics.databoard.tests;
13
14 import java.io.File;
15 import java.util.ArrayList;
16 import java.util.Arrays;
17 import java.util.Iterator;
18 import java.util.List;
19 import java.util.ListIterator;
20
21 import junit.framework.TestCase;
22
23 import org.simantics.databoard.Bindings;
24 import org.simantics.databoard.binding.Binding;
25 import org.simantics.databoard.file.FileList;
26 import org.simantics.databoard.file.IFileList;
27
28 public class TestFileList2 extends TestCase {
29
30         int length = 1024*10;
31
32         Long[] data1array;
33         List<Long> data1list;
34         IFileList<Long> data1file;      
35         Binding data1binding = Bindings.getBindingUnchecked(Long.class);
36         
37         public void setUp() 
38         throws Exception {
39                 data1array = new Long[length];
40                 data1list = new ArrayList<Long>(length); 
41                 for (int i=0; i<length; i++)
42                 {
43                         Long s = Long.valueOf(i);
44                         data1array[i] = s;
45                         data1list.add( s );                     
46                 }
47                 
48                 File tmp1 = File.createTempFile("Tmp", ".tmp");
49                 tmp1.deleteOnExit();
50                 
51                 data1file = new FileList<Long>(tmp1, Long.class); 
52         }
53         
54         public void tearDown() 
55         throws Exception 
56         {
57                 data1file.close();
58         }
59         
60         public void testAppend() 
61         throws Exception
62         {               
63                 // Write
64                 data1file.addAll(data1list);
65                 assertEquals(length, data1file.size());
66                 // Read-Verify
67                 int i=0;
68                 for (Long line : data1file)
69                         assertEquals(data1array[i++], line);
70         }
71         
72         public void testClear()
73         throws Exception
74         {
75                 // Write
76                 data1file.addAll(data1list);
77                 assertFalse(data1file.isEmpty());
78                 assertEquals(length, data1file.size());
79                 // Clear all
80                 data1file.clear();
81                 assertTrue(data1file.isEmpty());
82                 assertEquals(0, data1file.size());
83                 // Check that file size has truncated
84                 assertTrue(data1file.getFile().length()<1024);
85         }
86         
87         public void testRemove()
88         throws Exception
89         {
90                 data1file.addAll(data1list);
91                 
92                 // remove 10 elements, one by one
93                 for (int i=0; i<10; i++) {
94                         data1file.remove(10);
95                         assertEquals(length-i-1, data1file.size());
96                 }
97                 
98                 // check data looks sane
99                 for (int i=0; i<10; i++)
100                         assertEquals(data1array[i], data1file.get(i));
101                 for (int i=20; i<length; i++)
102                         assertEquals(data1array[i], data1file.get(i-10));
103         
104         }
105         
106         public void testSetAll()
107         throws Exception
108         {               
109                 List<Long> data2 = new ArrayList<Long>();
110                 for (long i=0L; i<500L; i++)
111                         data2.add( i + Integer.MAX_VALUE );
112         
113                 data1file.clear();
114                 ((FileList<Long>)data1file).setAll(data2);
115
116                 assertEquals(data1file.size(), data2.size());
117                 for (int i=0; i<data2.size(); i++)
118                         assertEquals(data2.get(i), data1file.get(i));
119                 
120                 ((FileList<Long>)data1file).setAll(data1list);
121
122                 assertEquals(data1file.size(), data1list.size());
123                 for (int i=0; i<data1list.size(); i++)
124                         assertEquals(data1list.get(i), data1file.get(i));               
125         }       
126         
127         public void testInsert()
128         throws Exception
129         {
130                 data1file.addAll(data1list);
131                 
132                 // int 10 elements, one by one
133                 for (int i=0; i<10; i++) {
134                         data1file.add(10+i, Long.valueOf(-i));
135                         assertEquals(length+i+1, data1file.size());
136                 }
137                 
138                 // check data looks sane
139                 for (int i=0; i<10; i++)
140                         assertEquals(data1array[i], data1file.get(i));
141                 for (int i=0; i<10; i++)
142                         assertEquals(Long.valueOf(-i), data1file.get(i+10));
143                 for (int i=20; i<length-10; i++)
144                         assertEquals(data1array[i+10], data1file.get(i+20));            
145         }
146         
147         public void testInsertAll()
148         throws Exception
149         {
150                 data1file.addAll(data1list);
151                 data1file.addAll(0, data1list);
152                 for (int i=0; i<length; i++)
153                         assertEquals(data1array[i], data1file.get(i));
154                 for (int i=0; i<length; i++)
155                         assertEquals(data1array[i], data1file.get(i+length));
156         }       
157         
158         public void testIterator()
159         throws Exception
160         {
161                 data1file.addAll(data1list);
162
163                 Iterator<Long> iter = data1file.iterator();
164                 int i=0;
165                 while (iter.hasNext())
166                         assertEquals(data1array[i++], iter.next());
167                 
168                 i=100;
169                 ListIterator<Long> li = data1file.listIterator(100);
170                 while (li.hasNext()) {
171                         assertEquals(li.nextIndex(), i);
172                         assertEquals(data1array[i++], li.next());
173                 }
174                 assertTrue(i==length);
175                 
176                 i = data1file.size();
177                 li = data1file.listIterator(i);
178                 while (li.hasPrevious()) {
179                         --i;
180                         assertEquals(li.previousIndex(), i);
181                         assertEquals(data1array[i], li.previous());
182                 }
183                 
184                 // Change to other objects 
185                 li = data1file.listIterator();
186                 while (li.hasNext()) {
187                         li.next();
188                         li.set(Long.valueOf(-li.nextIndex()));
189                 }
190                 // Verify               
191                 li = data1file.listIterator(0);
192                 while (li.hasNext()) {
193                         Long value = li.next();
194                         assertEquals(Long.valueOf(-li.nextIndex()), value);
195                 }               
196         }
197         
198         public void testIndexOf() 
199         throws Exception
200         {
201                 data1file.addAll(data1list);
202
203                 assertEquals(2, data1file.indexOf(Long.valueOf(2)));
204                 assertEquals(99, data1file.lastIndexOf(Long.valueOf(99)));
205                 assertEquals(-1, data1file.indexOf(-5));
206                 assertEquals(-1, data1file.lastIndexOf(-5));
207         }
208         
209         public void testContains()
210         throws Exception
211         {
212                 data1file.addAll(data1list);
213                 assertTrue( data1file.contains(Long.valueOf(5)) );
214                 assertTrue( data1file.contains(Long.valueOf(50)) );
215                 assertFalse( data1file.contains(Long.MAX_VALUE) );
216         }
217         
218         public void testSubList()
219         throws Exception
220         {
221                 data1file.addAll(data1list);
222                 List<Long> subList = data1file.subList(10, 110);
223                 assertEquals(100, subList.size());
224                 for (int i=0; i<100; i++)
225                         assertEquals(data1array[i+10], subList.get(i));
226         }
227         
228         public void testToArray()
229         throws Exception
230         {
231                 data1file.addAll(data1list);
232                 Long[] array = data1file.toArray(new Long[0]);
233                 assertTrue( Arrays.equals(array, data1array) );
234         }
235                 
236         public void testOpen()
237         throws Exception
238         {
239                 File file = data1file.getFile();
240                 data1file.addAll(data1list);
241                 data1file.close();
242                 data1file = new FileList<Long>(file, Long.class); 
243                 
244                 for (int i=0; i<length; i++)
245                         assertEquals(data1array[i], data1file.get(i));          
246         }
247
248 }
249