package pl.allegro.tech.search.elasticsearch.tools.reindex.query;
import com.google.common.collect.Lists;
import org.junit.Test;
import org.mockito.Mockito;
import pl.allegro.tech.search.elasticsearch.tools.reindex.connection.ElasticSearchQuery;
import pl.allegro.tech.search.elasticsearch.tools.reindex.connection.ElasticSearchQueryBuilder;
import static org.junit.Assert.assertEquals;
import static pl.allegro.tech.search.elasticsearch.tools.reindex.query.RangeSegmentAssert.assertThat;
public class DoubleFieldSegmentationTest {
@Test
public void checkSegmentationFieldName() throws Exception {
//when
DoubleFieldSegmentation segmentation = DoubleFieldSegmentation.create("name", Lists.newArrayList(0.0, 1.0), null);
//then
assertEquals("name", segmentation.getFieldName().get());
}
@Test
public void checkSegmentationQuery() throws Exception {
//given
ElasticSearchQuery query = ElasticSearchQueryBuilder.builder().build();
//when
DoubleFieldSegmentation segmentation = DoubleFieldSegmentation.create("name", Lists.newArrayList(0.0, 1.0), query);
//then
assertEquals(query, segmentation.getQuery());
}
@Test
public void checkSegmentationOneThreshold() throws Exception {
//when
DoubleFieldSegmentation segmentation = DoubleFieldSegmentation.create("name", Lists.newArrayList(0.0, 1.0), null);
//then
assertEquals(1, segmentation.getSegmentsCount());
assertThat((RangeSegment) segmentation.getThreshold(0).get())
.hasLowerOpenBound(0.0)
.hasUpperBound(1.0);
}
@Test
public void checkSegmentationDoubleThreshold() throws Exception {
//when
DoubleFieldSegmentation segmentation = DoubleFieldSegmentation.create("name", Lists.newArrayList(0.0, 1.0, 2.0), null);
//then
assertEquals(2, segmentation.getSegmentsCount());
assertThat((RangeSegment) segmentation.getThreshold(0).get())
.hasLowerOpenBound(0.0)
.hasUpperBound(1.0);
assertThat((RangeSegment) segmentation.getThreshold(1).get())
.hasLowerOpenBound(1.0)
.hasUpperBound(2.0);
}
}