aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/test/java/com/yahoo/prelude/query/test/RangeItemTestCase.java
blob: f7d3db639473abd8617a30d839a35a966ffe7498 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.prelude.query.test;

import com.yahoo.prelude.query.IntItem;
import com.yahoo.prelude.query.RangeItem;
import org.junit.jupiter.api.Test;

import java.nio.ByteBuffer;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class RangeItemTestCase {

    @Test
    void testRangeConstruction() {
        verifyRange(new RangeItem(5, 7, 9, "a", true), 9, true);
        verifyRange(new RangeItem(5, 7, "a", true), 0, true);
        verifyRange(new RangeItem(5, 7, "a"), 0, false);
    }

    private void verifyRange(RangeItem range, int limit, boolean isFromQuery) {
        assertEquals(5, range.getFrom());
        assertEquals(7, range.getTo());
        assertEquals(limit, range.getHitLimit());
        assertEquals("a", range.getIndexName());
        if (range.getHitLimit() != 0) {
            assertEquals("[5;7;9]", range.getNumber());
        } else {
            assertEquals("[5;7]", range.getNumber());
        }
        assertEquals(isFromQuery, range.isFromQuery());
        ByteBuffer buffer = ByteBuffer.allocate(128);
        int count = range.encode(buffer);
        ByteBuffer buffer2 = ByteBuffer.allocate(128);
        int count2 = new IntItem(range.getNumber(), range.getIndexName(), range.isFromQuery()).encode(buffer2);
        assertEquals(buffer, buffer2);
    }

}