2 * Copyright 2018-2022 Open Networking Foundation and others. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package io.atomix.storage.journal.index;
18 import static org.junit.jupiter.api.Assertions.assertEquals;
19 import static org.junit.jupiter.api.Assertions.assertNull;
21 import org.junit.jupiter.api.Test;
24 * Sparse journal index test.
26 class SparseJournalIndexTest {
27 private final SparseJournalIndex sparseIndex = new SparseJournalIndex(.2);
30 void firstTest() throws Exception {
31 assertNull(sparseIndex.lookup(1));
33 assertNull(sparseIndex.lookup(1));
38 assertEquals(new Position(5, 10), sparseIndex.lookup(5));
42 assertEquals(new Position(5, 10), sparseIndex.lookup(8));
45 assertEquals(new Position(10, 20), sparseIndex.lookup(10));
46 assertEquals(new Position(5, 10), sparseIndex.truncate(8));
47 assertEquals(new Position(5, 10), sparseIndex.lookup(5));
48 assertEquals(new Position(5, 10), sparseIndex.lookup(8));
49 assertEquals(new Position(5, 10), sparseIndex.lookup(10));
50 assertEquals(new Position(5, 10), sparseIndex.truncate(5));
51 assertNull(sparseIndex.lookup(5));
52 assertNull(sparseIndex.lookup(8));
53 assertNull(sparseIndex.truncate(4));
54 assertNull(sparseIndex.lookup(4));
55 assertNull(sparseIndex.lookup(8));
60 assertNull(sparseIndex.lookup(100));
62 assertNull(sparseIndex.lookup(1));
67 assertEquals(new Position(105, 10), sparseIndex.lookup(105));
71 assertEquals(new Position(105, 10), sparseIndex.lookup(108));
74 assertEquals(new Position(110, 20), sparseIndex.lookup(110));
75 assertEquals(new Position(105, 10), sparseIndex.truncate(108));
76 assertEquals(new Position(105, 10), sparseIndex.lookup(108));
77 assertEquals(new Position(105, 10), sparseIndex.lookup(110));
78 assertNull(sparseIndex.truncate(104));
79 assertNull(sparseIndex.lookup(104));
80 assertNull(sparseIndex.lookup(108));
83 private void assertIndex(final long index, final int position) {
84 assertEquals(new Position(index, position), sparseIndex.index(index, position));