/* * Copyright 2017 TWO SIGMA OPEN SOURCE, LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.twosigma.beaker.chart; import com.twosigma.beaker.KernelTest; import com.twosigma.beaker.chart.categoryplot.CategoryPlot; import com.twosigma.beaker.chart.categoryplot.plotitem.CategoryBars; import com.twosigma.beaker.chart.categoryplot.plotitem.CategoryGraphics; import com.twosigma.beaker.jupyter.KernelManager; import org.assertj.core.api.Assertions; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import java.util.Arrays; public class ItemLabelBuilderTest { private CategoryGraphics categoryGraphics; private CategoryPlot categoryPlot; @BeforeClass public static void setUpClass() throws Exception { KernelManager.register(new KernelTest()); } @Before public void setUp() throws Exception { categoryGraphics = new CategoryBars(); categoryGraphics.setValue(new Integer[] {new Integer(1), new Integer(2)}); categoryGraphics.setSeriesNames(Arrays.asList("test series name")); categoryPlot = new CategoryPlot(); categoryPlot.setCategoryNames(Arrays.asList("test category name")); categoryPlot.add(Arrays.asList(categoryGraphics)); } @AfterClass public static void tearDown() throws Exception { KernelManager.register(null); } @Test public void setItemLabelBuilderWithOneParam_hasItemLabels() { //given categoryGraphics.setItemLabel(new ItemLabelBuilder() { @Override public Object call(Object value) { return "value=" + value; } @Override public int getMaximumNumberOfParameters() { return 1; } }); //when categoryGraphics.createItemLabels(categoryPlot); //then Assertions.assertThat(categoryGraphics.getItemLabels()[0][0]).isEqualTo("value=1"); } @Test public void setItemLabelBuilderWithTwoParams_hasItemLabels() { //given categoryGraphics.setItemLabel(new ItemLabelBuilder() { @Override public Object call(Object value, Object base) { return "base=" + base; } @Override public int getMaximumNumberOfParameters() { return 2; } }); //when categoryGraphics.createItemLabels(categoryPlot); //then Assertions.assertThat(categoryGraphics.getItemLabels()[0][0]).isEqualTo("base=0.0"); } @Test public void setItemLabelBuilderWithThreeParams_hasItemLabels() { //given categoryGraphics.setItemLabel(new ItemLabelBuilder() { @Override public Object call(Object value, Object base, Object series) { return "series=" + series; } @Override public int getMaximumNumberOfParameters() { return 3; } }); //when categoryGraphics.createItemLabels(categoryPlot); //then Assertions.assertThat(categoryGraphics.getItemLabels()[0][0]).isEqualTo("series=test series name"); } @Test public void setItemLabelBuilderWithFourParams_hasItemLabels() { //given categoryGraphics.setItemLabel(new ItemLabelBuilder() { @Override public Object call(Object value, Object base, Object series, Object category) { return "category=" + category; } @Override public int getMaximumNumberOfParameters() { return 4; } }); //when categoryGraphics.createItemLabels(categoryPlot); //then Assertions.assertThat(categoryGraphics.getItemLabels()[0][0]).isEqualTo("category=test category name"); } @Test public void setItemLabelBuilderWithFiveParams_hasItemLabels() { //given categoryGraphics.setItemLabel(new ItemLabelBuilder() { @Override public Object call(Object value, Object base, Object series, Object category, Object row) { return "row=" + row; } @Override public int getMaximumNumberOfParameters() { return 5; } }); //when categoryGraphics.createItemLabels(categoryPlot); //then Assertions.assertThat(categoryGraphics.getItemLabels()[0][0]).isEqualTo("row=0"); } @Test public void setItemLabelBuilderWithSixParams_hasItemLabels() { //given categoryGraphics.setItemLabel(new ItemLabelBuilder() { @Override public Object call(Object value, Object base, Object series, Object category, Object row, Object column) { return "column=" + column; } @Override public int getMaximumNumberOfParameters() { return 6; } }); //when categoryGraphics.createItemLabels(categoryPlot); //then Assertions.assertThat(categoryGraphics.getItemLabels()[0][0]).isEqualTo("column=0"); } @Test public void callDefaultMethods_returnNull() { //when ItemLabelBuilder itemLabelBuilder = new ItemLabelBuilder() { @Override public int getMaximumNumberOfParameters() { return 0; } }; //then Assertions.assertThat(itemLabelBuilder.call("v")).isNull(); Assertions.assertThat(itemLabelBuilder.call("v", "b")).isNull(); Assertions.assertThat(itemLabelBuilder.call("v", "b", "s")).isNull(); Assertions.assertThat(itemLabelBuilder.call("v", "b", "s", "c")).isNull(); Assertions.assertThat(itemLabelBuilder.call("v", "b", "s", "c", "r")).isNull(); Assertions.assertThat(itemLabelBuilder.call("v", "b", "s", "c", "r", "l")).isNull(); } }