From ccf68ef0200f1eecd81c64ad10931f8cf440e3bb Mon Sep 17 00:00:00 2001 From: leventov Date: Tue, 5 Apr 2016 16:04:58 +0100 Subject: [PATCH] Add AverageValueSizeTest --- src/test/java/eg/AverageValueSizeTest.java | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/test/java/eg/AverageValueSizeTest.java diff --git a/src/test/java/eg/AverageValueSizeTest.java b/src/test/java/eg/AverageValueSizeTest.java new file mode 100644 index 000000000..c1129b889 --- /dev/null +++ b/src/test/java/eg/AverageValueSizeTest.java @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2015 higherfrequencytrading.com + * + * 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 . + */ + +package eg; + +import net.openhft.chronicle.map.ChronicleMap; +import net.openhft.chronicle.map.MapSegmentContext; +import org.junit.Test; + +import java.util.Arrays; +import java.util.LongSummaryStatistics; + +public class AverageValueSizeTest { + + public static double averageValueSize(Class valueClass, Iterable values) { + ChronicleMap testMap = ChronicleMap.of(Integer.class, valueClass) + // doesn't matter, anyway not a single value will be written to a map + .averageValueSize(1) + .entries(1) + .create(); + LongSummaryStatistics statistics = new LongSummaryStatistics(); + for (V value : values) { + try (MapSegmentContext c = testMap.segmentContext(0)) { + statistics.accept(c.wrapValueAsData(value).size()); + } + } + return statistics.getAverage(); + } + + @Test + public void averageValueSizeTest() { + System.out.println(averageValueSize(String.class, + Arrays.asList("banana", "apple", "watermelon"))); + } +}