You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by xx...@apache.org on 2023/07/06 05:53:34 UTC
[kylin] 17/19: KYLIN-5608 [FOLLOW UP] add UT
This is an automated email from the ASF dual-hosted git repository.
xxyu pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git
commit 927fcaf56933be0cee4b60927d2010620d5ca540
Author: xiang.li <44...@qq.com>
AuthorDate: Fri Apr 14 17:36:49 2023 +0800
KYLIN-5608 [FOLLOW UP] add UT
---
.../kylin/rest/service/FusionIndexServiceTest.java | 47 ++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/FusionIndexServiceTest.java b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/FusionIndexServiceTest.java
index 4684c0fcdb..674692a341 100644
--- a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/FusionIndexServiceTest.java
+++ b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/FusionIndexServiceTest.java
@@ -21,7 +21,12 @@ import static org.hamcrest.Matchers.is;
import java.util.Arrays;
import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import org.apache.commons.lang3.ArrayUtils;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.exception.KylinException;
import org.apache.kylin.common.exception.ServerErrorCode;
@@ -864,6 +869,45 @@ public class FusionIndexServiceTest extends SourceTestCase {
Assert.assertEquals(64, indexResponses2.size());
}
+ private Integer[] toIntegerArray(Map<String, Integer> dimMap, String[] dimensions) {
+ return Arrays.stream(dimensions).map(dimMap::get).toArray(Integer[]::new);
+ }
+
+ private void testDimsOrder(OpenUpdateRuleBasedCuboidRequest open, UpdateRuleBasedCuboidRequest internal,
+ NDataModel model) {
+ List<OpenUpdateRuleBasedCuboidRequest.OpenAggGroupRequest> openGroups = open.getAggregationGroups();
+ int from = internal.getAggregationGroups().size() - openGroups.size();
+ int to = internal.getAggregationGroups().size();
+ List<NAggregationGroup> internalGroups = internal.getAggregationGroups().subList(from, to);
+ val dimMap = model.getEffectiveDimensions().entrySet().stream().collect(Collectors
+ .toMap(e -> e.getValue().getAliasDotName(), Map.Entry::getKey, (u, v) -> v, LinkedHashMap::new));
+ for (int i = 0; i < openGroups.size(); i++) {
+ val openGroup = openGroups.get(i);
+ val internalGroup = internalGroups.get(i);
+ Assert.assertArrayEquals(toIntegerArray(dimMap, openGroup.getDimensions()), internalGroup.getIncludes());
+ if (openGroup.getMandatoryDims() != null) {
+ Assert.assertArrayEquals(toIntegerArray(dimMap, openGroup.getMandatoryDims()),
+ internalGroup.getSelectRule().getMandatoryDims());
+ }
+ if (!ArrayUtils.isEmpty(openGroup.getJointDims())) {
+ for (int j = 0; j < openGroup.getJointDims().length; j++) {
+ if (!ArrayUtils.isEmpty(openGroup.getJointDims()[j])) {
+ Assert.assertArrayEquals(toIntegerArray(dimMap, openGroup.getJointDims()[j]),
+ internalGroup.getSelectRule().getJointDims()[j]);
+ }
+ }
+ }
+ if (!ArrayUtils.isEmpty(openGroup.getHierarchyDims())) {
+ for (int j = 0; j < openGroup.getHierarchyDims().length; j++) {
+ if (!ArrayUtils.isEmpty(openGroup.getHierarchyDims()[j])) {
+ Assert.assertArrayEquals(toIntegerArray(dimMap, openGroup.getHierarchyDims()[j]),
+ internalGroup.getSelectRule().getHierarchyDims()[j]);
+ }
+ }
+ }
+ }
+ }
+
@Test
public void testNormalConvertOpenToInternal() {
OpenUpdateRuleBasedCuboidRequest request = new OpenUpdateRuleBasedCuboidRequest();
@@ -881,6 +925,7 @@ public class FusionIndexServiceTest extends SourceTestCase {
aggGroup.setJointDims(jointDims);
UpdateRuleBasedCuboidRequest internal = fusionIndexService.convertOpenToInternal(request, model);
Assert.assertEquals(2, internal.getAggregationGroups().size());
+ testDimsOrder(request, internal, model);
}
{
@@ -892,6 +937,7 @@ public class FusionIndexServiceTest extends SourceTestCase {
aggGroup.setJointDims(jointDims);
UpdateRuleBasedCuboidRequest internal = fusionIndexService.convertOpenToInternal(request, model);
Assert.assertEquals(2, internal.getAggregationGroups().size());
+ testDimsOrder(request, internal, model);
}
{
@@ -902,6 +948,7 @@ public class FusionIndexServiceTest extends SourceTestCase {
aggGroup.setMandatoryDims(new String[] {"TEST_BANK_INCOME.NAME"});
UpdateRuleBasedCuboidRequest internal = fusionIndexService.convertOpenToInternal(request, model);
Assert.assertEquals(2, internal.getAggregationGroups().size());
+ testDimsOrder(request, internal, model);
}
}