CartesianList(ImmutableList<List<E>> axes) { this.axes = axes; int[] axesSizeProduct = new int[axes.size() + 1]; axesSizeProduct[axes.size()] = 1; try { for (int i = axes.size() - 1; i >= 0; i--) { axesSizeProduct[i] = IntMath.checkedMultiply(axesSizeProduct[i + 1], axes.get(i).size()); } } catch (ArithmeticException e) { throw new IllegalArgumentException( "Cartesian product too large; must have size at most Integer.MAX_VALUE"); } this.axesSizeProduct = axesSizeProduct; }
@Override public PlanNode visitValues(ValuesNode node, RewriteContext<Set<Symbol>> context) { ImmutableList.Builder<Symbol> rewrittenOutputSymbolsBuilder = ImmutableList.builder(); ImmutableList.Builder<ImmutableList.Builder<Expression>> rowBuildersBuilder = ImmutableList.builder(); // Initialize builder for each row for (int i = 0; i < node.getRows().size(); i++) { rowBuildersBuilder.add(ImmutableList.builder()); } ImmutableList<ImmutableList.Builder<Expression>> rowBuilders = rowBuildersBuilder.build(); for (int i = 0; i < node.getOutputSymbols().size(); i++) { Symbol outputSymbol = node.getOutputSymbols().get(i); // If output symbol is used if (context.get().contains(outputSymbol)) { rewrittenOutputSymbolsBuilder.add(outputSymbol); // Add the value of the output symbol for each row for (int j = 0; j < node.getRows().size(); j++) { rowBuilders.get(j).add(node.getRows().get(j).get(i)); } } } List<List<Expression>> rewrittenRows = rowBuilders.stream() .map(ImmutableList.Builder::build) .collect(toImmutableList()); return new ValuesNode(node.getId(), rewrittenOutputSymbolsBuilder.build(), rewrittenRows); }
@Test(groups = "slow", retryAnalyzer = FlakyRetryAnalyzer.class) public void testFixUp() throws Exception { testListener.throwRetryableException = true; final DateTime startTime = clock.getUTCNow(); testListener.handleEvent(event); assertListenerStatus(); Assert.assertEquals(testListener.eventsSeen.size(), 0); List<NotificationEventWithMetadata> futureRetryableEvents = getFutureRetryableEvents(); Assert.assertEquals(futureRetryableEvents.size(), 1); Assert.assertEquals(futureRetryableEvents.get(0).getEffectiveDate().compareTo(startTime.plus(RETRY_SCHEDULE.get(0))), 0); clock.setTime(futureRetryableEvents.get(0).getEffectiveDate()); assertListenerStatus(); Assert.assertEquals(testListener.eventsSeen.size(), 0); futureRetryableEvents = getFutureRetryableEvents(); Assert.assertEquals(futureRetryableEvents.size(), 1); Assert.assertEquals(futureRetryableEvents.get(0).getEffectiveDate().compareTo(startTime.plus(RETRY_SCHEDULE.get(1))), 0); testListener.throwRetryableException = false; clock.setTime(futureRetryableEvents.get(0).getEffectiveDate()); assertListenerStatus(); Assert.assertEquals(testListener.eventsSeen.size(), 1); Assert.assertEquals(getFutureRetryableEvents().size(), 0); }
private Stream<Description> checkOverloads( VisitorState state, List<? extends Tree> members, ImmutableList<MemberWithIndex> overloads) { if (overloads.size() <= 1) { return Stream.empty(); MemberWithIndex first = overloads.get(0); int prev = -1; int group = 0; .forEach( o -> { int start = state.getEndPosition(members.get(o.index() - 1)); int end = state.getEndPosition(o.tree()); sb.append(state.getSourceCode(), start, end).append('\n');
public void test_load_filtered() { TradeCsvLoader test = TradeCsvLoader.standard(); ValueWithFailures<List<Trade>> trades = test.parse( ImmutableList.of(FILE.getCharSource()), ImmutableList.of(FraTrade.class, TermDepositTrade.class)); assertEquals(trades.getValue().size(), 6); assertEquals(trades.getFailures().size(), 10); assertEquals(trades.getFailures().get(0).getMessage(), "Trade type not allowed " + SwapTrade.class.getName() + ", only these types are supported: FraTrade, TermDepositTrade"); }
@Test public void testMultiScalarParse() { Signature expectedSignature1 = new Signature( "static_method_scalar_1", FunctionKind.SCALAR, DOUBLE.getTypeSignature(), ImmutableList.of(DOUBLE.getTypeSignature())); Signature expectedSignature2 = new Signature( "static_method_scalar_2", FunctionKind.SCALAR, BIGINT.getTypeSignature(), ImmutableList.of(BIGINT.getTypeSignature())); List<SqlScalarFunction> functions = ScalarFromAnnotationsParser.parseFunctionDefinitions(MultiScalarFunction.class); assertEquals(functions.size(), 2); ParametricScalar scalar1 = (ParametricScalar) functions.stream().filter(signature -> signature.getSignature().equals(expectedSignature1)).collect(toImmutableList()).get(0); ParametricScalar scalar2 = (ParametricScalar) functions.stream().filter(signature -> signature.getSignature().equals(expectedSignature2)).collect(toImmutableList()).get(0); assertImplementationCount(scalar1, 1, 0, 0); assertImplementationCount(scalar2, 1, 0, 0); assertEquals(scalar1.getSignature(), expectedSignature1); assertTrue(scalar1.isDeterministic()); assertFalse(scalar1.isHidden()); assertEquals(scalar1.getDescription(), "Simple scalar with single implementation based on method 1"); assertEquals(scalar2.getSignature(), expectedSignature2); assertFalse(scalar2.isDeterministic()); assertTrue(scalar2.isHidden()); assertEquals(scalar2.getDescription(), "Simple scalar with single implementation based on method 2"); }
@Test public void testPartitionBuilder() throws Exception { String file1 = "file1"; String file2 = "file2"; FileSet<TestFile> fileSet = new FileSet.Builder<TestFile>("test", new DummyDataset(new Path("/path"))) .add(new TestFile(createFileStatus(file1))).add(Lists.newArrayList(new TestFile(createFileStatus(file2)))) .build(); Assert.assertEquals(fileSet.getFiles().size(), 2); Assert.assertEquals(fileSet.getName(), "test"); Assert.assertEquals(fileSet.getFiles().get(0).getFileStatus().getPath().toString(), file1); Assert.assertEquals(fileSet.getFiles().get(1).getFileStatus().getPath().toString(), file2); Assert.assertEquals(fileSet.getTotalEntities(), 2); Assert.assertEquals(fileSet.getTotalSizeInBytes(), 20); }
assertEquals(aggregation.getDescription(), "Simple aggregate with two generic implementations"); assertTrue(aggregation.isDeterministic()); assertEquals(aggregation.getSignature(), expectedSignature); ParametricImplementationsGroup<AggregationImplementation> implementations = aggregation.getImplementations(); assertImplementationCount(implementations, 0, 0, 2); AggregationImplementation implementationDouble = implementations.getGenericImplementations().stream().filter(impl -> impl.getStateClass() == NullableDoubleState.class).collect(toImmutableList()).get(0); assertFalse(implementationDouble.getStateSerializerFactory().isPresent()); assertEquals(implementationDouble.getDefinitionClass(), GenericAggregationFunction.class); assertDependencyCount(implementationDouble, 0, 0, 0); assertFalse(implementationDouble.hasSpecializedTypeParameters()); assertEquals(implementationDouble.getStateClass(), NullableDoubleState.class); AggregationImplementation implementationLong = implementations.getGenericImplementations().stream().filter(impl -> impl.getStateClass() == NullableLongState.class).collect(toImmutableList()).get(0); assertFalse(implementationLong.getStateSerializerFactory().isPresent()); assertEquals(implementationLong.getDefinitionClass(), GenericAggregationFunction.class);
public String getLatestDownloadedImage(String imageName) { List<Image> images; try { images = dockerClient.listImages(DockerClient.ListImagesParam.byName(imageName)); if (images.isEmpty()) { logger.error(nodeId + " A downloaded docker-selenium image was not found!"); return imageName; } for (int i = images.size() - 1; i >= 0; i--) { if (images.get(i).repoTags() == null) { images.remove(i); } } images.sort((o1, o2) -> o2.created().compareTo(o1.created())); return images.get(0).repoTags().get(0); } catch (DockerException | InterruptedException e) { logger.warn(nodeId + " Error while executing the command", e); ga.trackException(e); } return imageName; }
private static RexCall adjustOBSchema(RexCall obyExpr, Project obChild, List<FieldSchema> resultSchema) { int a = -1; List<RexNode> operands = new ArrayList<>(); for (int k = 0; k < obyExpr.operands.size(); k++) { RexNode rn = obyExpr.operands.get(k); for (int j = 0; j < resultSchema.size(); j++) { if( obChild.getChildExps().get(j).toString().equals(rn.toString())) { a = j; break; } } if (a != -1) { operands.add(new RexInputRef(a, rn.getType())); } else { if (rn instanceof RexCall) { operands.add(adjustOBSchema((RexCall)rn, obChild, resultSchema)); } else { operands.add(rn); } } a = -1; } return (RexCall) obChild.getCluster().getRexBuilder().makeCall( obyExpr.getType(), obyExpr.getOperator(), operands); }
@Override public int indexOf(Object o) { if (!(o instanceof List)) { return -1; } List<?> list = (List<?>) o; if (list.size() != axes.size()) { return -1; } ListIterator<?> itr = list.listIterator(); int computedIndex = 0; while (itr.hasNext()) { int axisIndex = itr.nextIndex(); int elemIndex = axes.get(axisIndex).indexOf(itr.next()); if (elemIndex == -1) { return -1; } computedIndex += elemIndex * axesSizeProduct[axisIndex + 1]; } return computedIndex; }
@Test(groups = "slow", retryAnalyzer = FlakyRetryAnalyzer.class) public void testGiveUp() throws Exception { testListener.throwRetryableException = true; final DateTime startTime = clock.getUTCNow(); testListener.handleEvent(event); assertListenerStatus(); Assert.assertEquals(testListener.eventsSeen.size(), 0); List<NotificationEventWithMetadata> futureRetryableEvents = getFutureRetryableEvents(); Assert.assertEquals(futureRetryableEvents.size(), 1); Assert.assertEquals(futureRetryableEvents.get(0).getEffectiveDate().compareTo(startTime.plus(RETRY_SCHEDULE.get(0))), 0); clock.setTime(futureRetryableEvents.get(0).getEffectiveDate()); assertListenerStatus(); Assert.assertEquals(testListener.eventsSeen.size(), 0); futureRetryableEvents = getFutureRetryableEvents(); Assert.assertEquals(futureRetryableEvents.size(), 1); Assert.assertEquals(futureRetryableEvents.get(0).getEffectiveDate().compareTo(startTime.plus(RETRY_SCHEDULE.get(1))), 0); clock.setTime(futureRetryableEvents.get(0).getEffectiveDate()); assertListenerStatus(); Assert.assertEquals(testListener.eventsSeen.size(), 0); // Give up Assert.assertEquals(getFutureRetryableEvents().size(), 0); }
for (i = id.names.size() - 1; i > 0; i--) { type = resolve.rowType(); for (SqlValidatorScope.Step p : Util.skip(resolve.path.steps())) { type = type.getFieldList().get(p.i).getType(); if (type == null || id.names.size() == 1) { RelDataType colType = scope.resolveColumn(id.names.get(0), id); if (colType != null) { type = colType; for (; i < id.names.size(); i++) { String name = id.names.get(i); final RelDataTypeField field; if (name.equals("")) {
assertEquals(aggregations.size(), 2); ParametricAggregation aggregation1 = aggregations.stream().filter(aggregate -> aggregate.getSignature().getName().equals("multi_output_aggregate_1")).collect(toImmutableList()).get(0); assertEquals(aggregation1.getSignature(), expectedSignature1); assertEquals(aggregation1.getDescription(), "Simple multi output function aggregate specialized description"); ParametricAggregation aggregation2 = aggregations.stream().filter(aggregate -> aggregate.getSignature().getName().equals("multi_output_aggregate_2")).collect(toImmutableList()).get(0); assertEquals(aggregation2.getSignature(), expectedSignature2); assertEquals(aggregation2.getDescription(), "Simple multi output function aggregate generic description");