mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
112 lines
3.6 KiB
Java
Executable File
112 lines
3.6 KiB
Java
Executable File
/*
|
|
* Copyright (C) 2012, 2016 higherfrequencytrading.com
|
|
* Copyright (C) 2016 Roman Leventov
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License.
|
|
*
|
|
* 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 Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
package net.openhft.lang.values;
|
|
|
|
import net.openhft.chronicle.map.ChronicleMap;
|
|
import net.openhft.chronicle.map.ChronicleMapBuilder;
|
|
import org.junit.Ignore;
|
|
import org.junit.Test;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
import static org.junit.Assert.fail;
|
|
|
|
public class DoubleArrayTest {
|
|
|
|
@Test
|
|
public void testSetData() {
|
|
DoubleArray da = new DoubleArray(64);
|
|
da.setData(new double[]{1, 2, 3, 4, 5, 6, 7, 8});
|
|
assertEquals(8, da.length());
|
|
for (int i = 0; i < da.length(); i++)
|
|
assertEquals(i + 1.0, da.getDataAt(i), 0.0);
|
|
da.addData(9);
|
|
da.addData(10);
|
|
double[] ds = new double[64];
|
|
int len = da.getDataUsing(ds);
|
|
assertEquals(10, len);
|
|
for (int i = 0; i < len; i++)
|
|
assertEquals(i + 1.0, ds[i], 0.0);
|
|
|
|
for (int i = 0; i < 64; i++)
|
|
ds[i] = i * 1.01;
|
|
da.setData(ds);
|
|
assertEquals(64, da.length());
|
|
for (int i = 0; i < da.length(); i++)
|
|
assertEquals(i * 1.01, da.getDataAt(i), 0.0);
|
|
|
|
double[] ds2 = new double[65];
|
|
assertEquals(64, da.getDataUsing(ds2));
|
|
for (int i = 0; i < 64; i++) {
|
|
assertEquals(i * 1.01, da.getDataAt(i), 0.0);
|
|
assertEquals(i * 1.01, ds2[i], 0.0);
|
|
}
|
|
|
|
try {
|
|
da.setData(ds2);
|
|
fail();
|
|
} catch (IllegalArgumentException expected) {
|
|
// expected
|
|
}
|
|
// free the memory.
|
|
da.bytesStore().release();
|
|
}
|
|
|
|
@Test
|
|
@Ignore("TODO What is HACK???")
|
|
public void addToAMap() {
|
|
DoubleArray a = new DoubleArray(10);
|
|
a.setData(new double[]{1, 2, 3, 4, 5});
|
|
|
|
DoubleArray b = new DoubleArray(10);
|
|
b.setData(new double[]{5, 6, 7, 8, 9});
|
|
|
|
ChronicleMap<Integer, DoubleArray> proxyMap = ChronicleMap
|
|
.of(Integer.class, DoubleArray.class)
|
|
.entries(2)
|
|
.create();
|
|
proxyMap.put(1, a);
|
|
proxyMap.put(2, b);
|
|
|
|
System.out.println(proxyMap.get(1));
|
|
System.out.println(proxyMap.get(2));
|
|
proxyMap.close();
|
|
}
|
|
|
|
@Test
|
|
@Ignore("TODO What is HACK???")
|
|
public void addToAMap2() {
|
|
DoubleArray.HACK = false;
|
|
DoubleArray a = new DoubleArray(10);
|
|
a.setData(new double[]{1, 2, 3, 4, 5});
|
|
|
|
DoubleArray b = new DoubleArray(10);
|
|
b.setData(new double[]{5, 6, 7, 8, 9});
|
|
|
|
ChronicleMap<Integer, DoubleArray> proxyMap = ChronicleMapBuilder
|
|
.of(Integer.class, DoubleArray.class)
|
|
.averageValueSize(6 * 8)
|
|
.create();
|
|
proxyMap.put(1, a);
|
|
proxyMap.put(2, b);
|
|
|
|
System.out.println(proxyMap.get(1));
|
|
System.out.println(proxyMap.get(2));
|
|
proxyMap.close();
|
|
DoubleArray.HACK = true;
|
|
}
|
|
} |