From 18b99592508ae8554c1818fff82e4d5f03e611df Mon Sep 17 00:00:00 2001 From: Larry Booker Date: Wed, 15 Jan 2025 08:11:29 -0800 Subject: [PATCH] Updated java client side testing. --- .../client/impl/UpdateBySpecBuilderTest.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/java-client/session/src/test/java/io/deephaven/client/impl/UpdateBySpecBuilderTest.java b/java-client/session/src/test/java/io/deephaven/client/impl/UpdateBySpecBuilderTest.java index 1259378abd4..f20ec3e1a89 100644 --- a/java-client/session/src/test/java/io/deephaven/client/impl/UpdateBySpecBuilderTest.java +++ b/java-client/session/src/test/java/io/deephaven/client/impl/UpdateBySpecBuilderTest.java @@ -123,6 +123,15 @@ public UpdateByColumn.UpdateBySpec visit(CumProdSpec spec) { .build(); } + @Override + public UpdateByColumn.UpdateBySpec visit(CumCountWhereSpec spec) { + return UpdateByColumn.UpdateBySpec.newBuilder() + .setCountWhere(UpdateByCumulativeCountWhere.newBuilder() + .setColumnName("count") + .addFilters("x > 5")) + .build(); + } + @Override public UpdateByColumn.UpdateBySpec visit(DeltaSpec spec) { if (spec.deltaControl().isPresent()) { @@ -321,8 +330,28 @@ public UpdateByColumn.UpdateBySpec visit(RollingFormulaSpec spec) { .build()) .build(); } + + @Override + public UpdateByColumn.UpdateBySpec visit(RollingCountWhereSpec spec) { + return UpdateByColumn.UpdateBySpec + .newBuilder().setRollingCountWhere( + UpdateByColumn.UpdateBySpec.UpdateByRollingCountWhere.newBuilder() + .setReverseWindowScale(UpdateByWindowScale.newBuilder() + .setTime(UpdateByWindowScale.UpdateByWindowTime.newBuilder() + .setColumn("Timestamp").setNanos(1).build()) + .build()) + .setForwardWindowScale(UpdateByWindowScale.newBuilder() + .setTime(UpdateByWindowScale.UpdateByWindowTime.newBuilder() + .setColumn("Timestamp").setNanos(1).build()) + .build()) + .setColumnName("count") + .addFilters("x > 5") + .build()) + .build(); + } } + @Test void ema() { check(EmaSpec.ofTime("Timestamp", Duration.ofNanos(1))); @@ -428,6 +457,11 @@ void cumulativeProd() { check(CumProdSpec.of()); } + @Test + void cumulativeCountWhere() { + check(CumCountWhereSpec.of("count", "x > 5")); + } + @Test void fillBy() { check(FillBySpec.of()); @@ -658,6 +692,29 @@ void rollingFormula() { .build()); } + @Test + void rollingCountWhere() { + check(RollingFormulaSpec.ofTime("Timestamp", Duration.ofNanos(1), Duration.ofNanos(2), "sum(x)", "x"), + UpdateByColumn.UpdateBySpec.newBuilder().setRollingFormula( + UpdateByColumn.UpdateBySpec.UpdateByRollingFormula.newBuilder() + .setReverseWindowScale(time("Timestamp", 1)) + .setForwardWindowScale(time("Timestamp", 2)) + .setFormula("sum(x)") + .setParamToken("x") + .build()) + .build()); + + check(RollingFormulaSpec.ofTicks(42L, 43L, "sum(x)", "x"), + UpdateByColumn.UpdateBySpec.newBuilder().setRollingFormula( + UpdateByColumn.UpdateBySpec.UpdateByRollingFormula.newBuilder() + .setReverseWindowScale(ticks(42L)) + .setForwardWindowScale(ticks(43L)) + .setFormula("sum(x)") + .setParamToken("x") + .build()) + .build()); + } + private static void check(UpdateBySpec spec) { check(spec, spec.walk(ExpectedSpecVisitor.INSTANCE)); }