Rev 2648 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
/*
* Copyright (c) 2012.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* Author: GerdP
*/
package uk.me.parabola.mkgmap.reader.osm;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
*/
public class CustomCollectionsTest
{
@Test
public void testOSMId2ObjectMap
() {
testMap
(new OSMId2ObjectMap
<Long>(), 0L
);
testMap
(new OSMId2ObjectMap
<Long>(), -10000L
);
testMap
(new OSMId2ObjectMap
<Long>(), 1L
<< 35);
testMap
(new OSMId2ObjectMap
<Long>(), -1L
<< 35);
}
private void testMap
(OSMId2ObjectMap
<Long> map,
long idOffset
) {
for (long i =
1; i
< 1000; i++
) {
Long j = map.
put(idOffset + i,
new Long(i
));
assertEquals
(true, j ==
null);
assertEquals
(map.
size(), i
);
}
for (long i =
1; i
< 1000; i++
) {
boolean b = map.
containsKey(idOffset + i
);
assertEquals
(b,
true);
}
for (long i =
1; i
< 1000; i++
) {
assertEquals
((Long)map.
get(idOffset + i
),
new Long(i
));
}
// random read access
for (long i =
1; i
< 1000; i++
) {
Long key =
(long) Math.
max(1,
(Math.
random() * 1000));
assertEquals
((Long)map.
get(idOffset + key
), key
);
}
for (long i =
1000; i
< 2000; i++
) {
assertEquals
(true,
(Long)map.
get(idOffset + i
) ==
null);
}
for (long i =
1000; i
< 2000; i++
) {
boolean b = map.
containsKey(idOffset + i
);
assertEquals
(b,
false);
}
for (long i =
1000; i
< 1200; i++
) {
Long j = map.
put(idOffset + i,
new Long(333));
assertEquals
(true, j ==
null);
assertEquals
(map.
size(), i
);
}
// random read access 2
for (int i =
1; i
< 1000; i++
) {
Long key =
1000 +
(long) (Math.
random() * 200);
assertEquals
((Long)map.
get(idOffset + key
),
new Long(333));
}
for (long i = -
2000; i
< -
1000; i++
) {
assertEquals
(true, map.
get(idOffset + i
) ==
null);
}
for (long i = -
2000; i
< -
1000; i++
) {
boolean b = map.
containsKey(idOffset + i
);
assertEquals
(b,
false);
}
long mapSize = map.
size();
// seq. update existing records
for (int i =
1; i
< 1000; i++
) {
long j = map.
put(idOffset + i,
new Long (i+
333));
assertEquals
(j, i
);
assertEquals
(map.
size(), mapSize
);
}
// random read access 3, update existing entries
for (int i =
1; i
< 1000; i++
) {
long j = map.
put(idOffset + i,
new Long (i+
555));
assertEquals
(true, j == i+
333 | j == i+
555);
assertEquals
(map.
size(), mapSize
);
}
assertEquals
(true, map.
get(idOffset +
123456) ==
null);
map.
put(idOffset +
123456,
(long) 999);
assertEquals
((Long)map.
get(idOffset +
123456),
new Long(999));
map.
put(idOffset +
123456,
(long) 888);
assertEquals
((Long)map.
get(idOffset +
123456),
new Long(888));
assertEquals
(true, map.
get(idOffset -
123456) ==
null);
map.
put(idOffset -
123456,
(long) 999);
assertEquals
((Long)map.
get(idOffset -
123456),
new Long(999));
map.
put(idOffset -
123456,
(long) 888);
assertEquals
((Long)map.
get(idOffset -
123456),
new Long(888));
map.
clear();
assertEquals
(map.
size(),
0);
for (long i =
0; i
< 100; i++
){
map.
put(idOffset + i,
new Long(i
));
}
Long old = map.
remove(idOffset +
5);
assertEquals
(old,
new Long(5));
assertEquals
(map.
size(),
99);
assertEquals
(true, map.
get(idOffset +
5) ==
null);
}
}