You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by kr...@apache.org on 2024/03/20 00:44:22 UTC

(solr) branch main updated: Update dependency com.tdunning:t-digest to v3.3 (#2136)

This is an automated email from the ASF dual-hosted git repository.

krisden pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new faa1001ae68 Update dependency com.tdunning:t-digest to v3.3 (#2136)
faa1001ae68 is described below

commit faa1001ae68b5ffd0bc32c77162a7ace39f66511
Author: Solr Bot <12...@users.noreply.github.com>
AuthorDate: Wed Mar 20 01:44:17 2024 +0100

    Update dependency com.tdunning:t-digest to v3.3 (#2136)
    
    * Update dependency com.tdunning:t-digest to v3.3
    
    * Update percentile assertions based on bug fixes in t-digest
    
    ---------
    
    Co-authored-by: Kevin Risden <kr...@apache.org>
---
 ...stributedFacetSimpleRefinementLongTailTest.java |  4 +-
 .../apache/solr/search/facet/TestJsonFacets.java   | 16 ++---
 solr/licenses/t-digest-3.1.jar.sha1                |  1 -
 solr/licenses/t-digest-3.3.jar.sha1                |  1 +
 .../solrj/io/stream/StreamExpressionTest.java      | 68 +++++++++++-----------
 versions.lock                                      |  2 +-
 versions.props                                     |  2 +-
 7 files changed, 47 insertions(+), 47 deletions(-)

diff --git a/solr/core/src/test/org/apache/solr/search/facet/DistributedFacetSimpleRefinementLongTailTest.java b/solr/core/src/test/org/apache/solr/search/facet/DistributedFacetSimpleRefinementLongTailTest.java
index 0be315afc21..017b651dd5b 100644
--- a/solr/core/src/test/org/apache/solr/search/facet/DistributedFacetSimpleRefinementLongTailTest.java
+++ b/solr/core/src/test/org/apache/solr/search/facet/DistributedFacetSimpleRefinementLongTailTest.java
@@ -511,7 +511,7 @@ public class DistributedFacetSimpleRefinementLongTailTest extends BaseDistribute
     assertEquals(300L, aaa0_Bucket.get("countvals"));
     assertEquals(0L, aaa0_Bucket.get("missing"));
     assertEquals(34650.0D, aaa0_Bucket.get("sum"));
-    assertEquals(483.70000000000016D, (double) aaa0_Bucket.get("percentile"), 0.1E-7);
+    assertEquals(486.5D, (double) aaa0_Bucket.get("percentile"), 0.1E-7);
     assertEquals(115.5D, (double) aaa0_Bucket.get("avg"), 0.1E-7);
     assertEquals(1.674585E7D, (double) aaa0_Bucket.get("sumsq"), 0.1E-7);
     assertEquals(206.4493184076D, (double) aaa0_Bucket.get("stddev"), 0.1E-7);
@@ -548,7 +548,7 @@ public class DistributedFacetSimpleRefinementLongTailTest extends BaseDistribute
     assertEquals(35L, tailB_Bucket.get("min"));
     assertEquals(40L, tailB_Bucket.get("max"));
     assertEquals(12L, tailB_Bucket.get("countvals"));
-    assertEquals(39.9D, tailB_Bucket.get("percentile"));
+    assertEquals(40.0D, tailB_Bucket.get("percentile"));
     assertEquals(5L, tailB_Bucket.get("missing"));
     assertEquals(450.0D, tailB_Bucket.get("sum"));
     assertEquals(37.5D, (double) tailB_Bucket.get("avg"), 0.1E-7);
diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java b/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java
index 7f26565725e..66673b77f57 100644
--- a/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java
+++ b/solr/core/src/test/org/apache/solr/search/facet/TestJsonFacets.java
@@ -2327,9 +2327,9 @@ public class TestJsonFacets extends SolrTestCaseHS {
                 + " , f3:{terms:{${terms} field:'${cat_s}', sort:'n1 desc', facet:{n1:'percentile(${sparse_num_d},50)'}  }} "
                 + "}"),
         "facets=={ 'count':6, "
-            + "  f1:{  'buckets':[{ val:'A', count:2, n1:3.0 }, { val:'B', count:3, n1:-5.0}]}"
-            + ", f2:{  'buckets':[{ val:'B', count:3, n1:-5.0}, { val:'A', count:2, n1:3.0 }]}"
-            + ", f3:{  'buckets':[{ val:'A', count:2, n1:1.0}, { val:'B', count:3}]}"
+            + "  f1:{  'buckets':[{ val:'A', count:2, n1:4.0 }, { val:'B', count:3, n1:-5.0}]}"
+            + ", f2:{  'buckets':[{ val:'B', count:3, n1:-5.0}, { val:'A', count:2, n1:4.0 }]}"
+            + ", f3:{  'buckets':[{ val:'A', count:2, n1:6.0}, { val:'B', count:3}]}"
             + "}");
 
     // test sorting by multiple percentiles (sort is by first)
@@ -2342,8 +2342,8 @@ public class TestJsonFacets extends SolrTestCaseHS {
             "{f1:{terms:{${terms} field:${cat_s}, sort:'n1 desc', facet:{n1:'percentile(${num_d},50,0,100)'}  }}"
                 + " , f2:{terms:{${terms} field:${cat_s}, sort:'n1 asc', facet:{n1:'percentile(${num_d},50,0,100)'}  }} }"),
         "facets=={ 'count':6, "
-            + "  f1:{  'buckets':[{ val:'A', count:2, n1:[3.0,2.0,4.0] }, { val:'B', count:3, n1:[-5.0,-9.0,11.0] }]}"
-            + ", f2:{  'buckets':[{ val:'B', count:3, n1:[-5.0,-9.0,11.0]}, { val:'A', count:2, n1:[3.0,2.0,4.0] }]} }");
+            + "  f1:{  'buckets':[{ val:'A', count:2, n1:[4.0,2.0,4.0] }, { val:'B', count:3, n1:[-5.0,-9.0,11.0] }]}"
+            + ", f2:{  'buckets':[{ val:'B', count:3, n1:[-5.0,-9.0,11.0]}, { val:'A', count:2, n1:[4.0,2.0,4.0] }]} }");
 
     // test sorting by count/index order
     client.testJQ(
@@ -2812,7 +2812,7 @@ public class TestJsonFacets extends SolrTestCaseHS {
         "facets=={ 'count':6, "
             + "sum1:0.0, sumsq1:51.5, avg1:0.0, mind:-5.0, maxd:3.0"
             + ", mini:-5, maxi:3, mins:'a', maxs:'b'"
-            + ", stddev:2.712405363721075, variance:7.3571428571, median:0.0, perc:[-5.0,2.25,3.0], maxss:'b'"
+            + ", stddev:2.712405363721075, variance:7.3571428571, median:0.0, perc:[-5.0,3.0,3.0], maxss:'b'"
             + "}");
 
     // test sorting by multi-valued
@@ -2840,8 +2840,8 @@ public class TestJsonFacets extends SolrTestCaseHS {
             "{f1:{terms:{${terms} field:'${cat_s}', sort:'n1 asc', facet:{n1:'percentile(${num_is}, 50)'}  }}"
                 + " , f2:{terms:{${terms} field:'${cat_s}', sort:'n1 desc', facet:{n1:'percentile(${num_is}, 50)'}  }} }"),
         "facets=={ 'count':6, "
-            + "  f1:{  'buckets':[{ val:'B', count:3, n1: -0.50}, { val:'A', count:2, n1:1.0}]}"
-            + ", f2:{  'buckets':[{ val:'A', count:2, n1:1.0}, { val:'B', count:3, n1:-0.50 }]} }");
+            + "  f1:{  'buckets':[{ val:'B', count:3, n1: 0.0}, { val:'A', count:2, n1:2.0}]}"
+            + ", f2:{  'buckets':[{ val:'A', count:2, n1:2.0}, { val:'B', count:3, n1:0.0 }]} }");
 
     // test sorting by multi-valued field with domain query
     client.testJQ(
diff --git a/solr/licenses/t-digest-3.1.jar.sha1 b/solr/licenses/t-digest-3.1.jar.sha1
deleted file mode 100644
index 1c4c89ce090..00000000000
--- a/solr/licenses/t-digest-3.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-451ed219688aed5821a789428fd5e10426d11312
diff --git a/solr/licenses/t-digest-3.3.jar.sha1 b/solr/licenses/t-digest-3.3.jar.sha1
new file mode 100644
index 00000000000..e9cd01f1c99
--- /dev/null
+++ b/solr/licenses/t-digest-3.3.jar.sha1
@@ -0,0 +1 @@
+5e96c4fd7d63b05828cf5ef41da20649195b1b78
diff --git a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionTest.java b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionTest.java
index 22ce4a5eac3..050b5726ff2 100644
--- a/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionTest.java
+++ b/solr/solrj-streaming/src/test/org/apache/solr/client/solrj/io/stream/StreamExpressionTest.java
@@ -939,8 +939,8 @@ public class StreamExpressionTest extends SolrCloudTestCase {
       assertEquals(5.5D, avgf, 0.0);
       assertEquals(5.477225575051661D, stdi, 0.0);
       assertEquals(3.0276503540974917D, stdf, 0.0);
-      assertEquals(7.0D, peri, 0.0);
-      assertEquals(5.5D, perf, 0.0);
+      assertEquals(10.0D, peri, 0.0);
+      assertEquals(6.0D, perf, 0.0);
       assertEquals(10, count, 0.0);
       assertEquals(countDist.longValue(), 3L);
 
@@ -986,8 +986,8 @@ public class StreamExpressionTest extends SolrCloudTestCase {
       assertEquals(5.5D, avgf, 0.0);
       assertEquals(5.477225575051661D, stdi, 0.0);
       assertEquals(3.0276503540974917D, stdf, 0.0);
-      assertEquals(7.0D, peri, 0.0);
-      assertEquals(5.5D, perf, 0.0);
+      assertEquals(10.0D, peri, 0.0);
+      assertEquals(6.0D, perf, 0.0);
       assertEquals(10, count, 0.0);
 
       // Test with shards parameter
@@ -1036,8 +1036,8 @@ public class StreamExpressionTest extends SolrCloudTestCase {
       assertEquals(5.5D, avgf, 0.0);
       assertEquals(5.477225575051661D, stdi, 0.0);
       assertEquals(3.0276503540974917D, stdf, 0.0);
-      assertEquals(7.0D, peri, 0.0);
-      assertEquals(5.5D, perf, 0.0);
+      assertEquals(10.0D, peri, 0.0);
+      assertEquals(6.0D, perf, 0.0);
       assertEquals(10, count, 0.0);
 
       // Execersise the /stream hander
@@ -1424,8 +1424,8 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     assertEquals(2, count, 0.0);
     assertEquals(4.949747468305833D, stdi, 0.0);
     assertEquals(2.1213203435596424D, stdf, 0.0);
-    assertEquals(7.5D, peri, 0.0);
-    assertEquals(5.5D, perf, 0.0);
+    assertEquals(11.0D, peri, 0.0);
+    assertEquals(7.0D, perf, 0.0);
     assertEquals(countDist.longValue(), 2);
 
     tuple = tuples.get(1);
@@ -1457,8 +1457,8 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     assertEquals(4, count, 0.0);
     assertEquals(6.551081335677848D, stdi, 0.0);
     assertEquals(4.041451884327381D, stdf, 0.0);
-    assertEquals(1.5D, peri, 0.0);
-    assertEquals(3.5D, perf, 0.0);
+    assertEquals(2.0D, peri, 0.0);
+    assertEquals(5.0D, perf, 0.0);
     assertEquals(countDist.longValue(), 4);
 
     tuple = tuples.get(2);
@@ -1490,8 +1490,8 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     assertEquals(4, count, 0.0);
     assertEquals(4.509249752822894D, stdi, 0.0);
     assertEquals(2.6457513110645907D, stdf, 0.0);
-    assertEquals(11.0D, peri, 0.0);
-    assertEquals(7.0D, perf, 0.0);
+    assertEquals(12.0D, peri, 0.0);
+    assertEquals(8.0D, perf, 0.0);
     assertEquals(countDist.longValue(), 4);
 
     // Reverse the Sort.
@@ -1547,8 +1547,8 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     assertEquals(4, count, 0.0);
     assertEquals(4.509249752822894D, stdi, 0.0);
     assertEquals(2.6457513110645907D, stdf, 0.0);
-    assertEquals(11.0D, peri, 0.0);
-    assertEquals(7.0D, perf, 0.0);
+    assertEquals(12.0D, peri, 0.0);
+    assertEquals(8.0D, perf, 0.0);
 
     tuple = tuples.get(1);
     bucket = tuple.getString("a_s");
@@ -1578,8 +1578,8 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     assertEquals(4, count, 0.0);
     assertEquals(6.551081335677848D, stdi, 0.0);
     assertEquals(4.041451884327381D, stdf, 0.0);
-    assertEquals(1.5D, peri, 0.0);
-    assertEquals(3.5D, perf, 0.0);
+    assertEquals(2.0D, peri, 0.0);
+    assertEquals(5.0D, perf, 0.0);
 
     tuple = tuples.get(2);
     bucket = tuple.getString("a_s");
@@ -1609,8 +1609,8 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     assertEquals(2, count, 0.0);
     assertEquals(4.949747468305833D, stdi, 0.0);
     assertEquals(2.1213203435596424D, stdf, 0.0);
-    assertEquals(7.5D, peri, 0.0);
-    assertEquals(5.5D, perf, 0.0);
+    assertEquals(11.0D, peri, 0.0);
+    assertEquals(7.0D, perf, 0.0);
 
     clause =
         "facet("
@@ -1803,8 +1803,8 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     assertEquals(2, count, 0.0);
     assertEquals(4.949747468305833D, stdi, 0.0);
     assertEquals(2.1213203435596424D, stdf, 0.0);
-    assertEquals(7.5D, peri, 0.0);
-    assertEquals(5.5D, perf, 0.0);
+    assertEquals(11.0D, peri, 0.0);
+    assertEquals(7.0D, perf, 0.0);
 
     tuple = tuples.get(1);
     bucket = tuple.getString("a_s");
@@ -1834,8 +1834,8 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     assertEquals(4, count, 0.0);
     assertEquals(4.509249752822894D, stdi, 0.0);
     assertEquals(2.6457513110645907D, stdf, 0.0);
-    assertEquals(11.0D, peri, 0.0);
-    assertEquals(7.0D, perf, 0.0);
+    assertEquals(12.0D, peri, 0.0);
+    assertEquals(8.0D, perf, 0.0);
 
     tuple = tuples.get(2);
     bucket = tuple.getString("a_s");
@@ -1865,8 +1865,8 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     assertEquals(4, count, 0.0);
     assertEquals(6.551081335677848D, stdi, 0.0);
     assertEquals(4.041451884327381D, stdf, 0.0);
-    assertEquals(1.5D, peri, 0.0);
-    assertEquals(3.5D, perf, 0.0);
+    assertEquals(2.0D, peri, 0.0);
+    assertEquals(5.0D, perf, 0.0);
 
     // Test index sort
 
@@ -2477,10 +2477,10 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     double stdi = tuple.getDouble("std(a_i)");
     double peri = tuple.getDouble("per(a_i,50)");
 
-    assertEquals("hello3", bucket1);
+    assertEquals("hello0", bucket1);
     assertEquals("b", bucket2);
-    assertEquals(1.5275252316519468D, stdi, 0.0);
-    assertEquals(12.0D, peri, 0.0);
+    assertEquals(9.192388155425117D, stdi, 0.0);
+    assertEquals(14.0D, peri, 0.0);
 
     tuple = tuples.get(1);
     bucket1 = tuple.getString("level1_s");
@@ -2488,10 +2488,10 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     stdi = tuple.getDouble("std(a_i)");
     peri = tuple.getDouble("per(a_i,50)");
 
-    assertEquals("hello4", bucket1);
+    assertEquals("hello3", bucket1);
     assertEquals("b", bucket2);
-    assertEquals(0.0D, stdi, 0.0);
-    assertEquals(11.0, peri, 0.0);
+    assertEquals(1.5275252316519468D, stdi, 0.0);
+    assertEquals(12.0, peri, 0.0);
 
     tuple = tuples.get(2);
     bucket1 = tuple.getString("level1_s");
@@ -2499,10 +2499,10 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     stdi = tuple.getDouble("std(a_i)");
     peri = tuple.getDouble("per(a_i,50)");
 
-    assertEquals("hello0", bucket1);
+    assertEquals("hello4", bucket1);
     assertEquals("b", bucket2);
-    assertEquals(9.192388155425117D, stdi, 0.0);
-    assertEquals(7.5D, peri, 0.0);
+    assertEquals(0.0D, stdi, 0.0);
+    assertEquals(11.0D, peri, 0.0);
 
     tuple = tuples.get(3);
     bucket1 = tuple.getString("level1_s");
@@ -2535,7 +2535,7 @@ public class StreamExpressionTest extends SolrCloudTestCase {
     assertEquals("hello0", bucket1);
     assertEquals("a", bucket2);
     assertEquals(1.4142135623730951D, stdi, 0.0);
-    assertEquals(1.0D, peri, 0.0);
+    assertEquals(2.0D, peri, 0.0);
   }
 
   @Test
diff --git a/versions.lock b/versions.lock
index bd80c3ae59a..8ca94aa7689 100644
--- a/versions.lock
+++ b/versions.lock
@@ -75,7 +75,7 @@ com.squareup.okio:okio:3.6.0 (1 constraints: 530c38fd)
 com.squareup.okio:okio-jvm:3.6.0 (1 constraints: 500ad3b9)
 com.sun.activation:jakarta.activation:1.2.2 (1 constraints: ba0dac35)
 com.sun.istack:istack-commons-runtime:3.0.12 (1 constraints: eb0d9a43)
-com.tdunning:t-digest:3.1 (1 constraints: a804212c)
+com.tdunning:t-digest:3.3 (1 constraints: aa04232c)
 com.zaxxer:SparseBitSet:1.2 (1 constraints: 0d081e75)
 commons-cli:commons-cli:1.6.0 (1 constraints: 09050236)
 commons-codec:commons-codec:1.16.0 (11 constraints: a297a2db)
diff --git a/versions.props b/versions.props
index 16342c87a34..cb7777e0ca0 100644
--- a/versions.props
+++ b/versions.props
@@ -16,7 +16,7 @@ com.google.re2j:re2j=1.7
 com.j256.simplemagic:simplemagic=1.17
 com.jayway.jsonpath:json-path=2.9.0
 com.lmax:disruptor=3.4.4
-com.tdunning:t-digest=3.1
+com.tdunning:t-digest=3.3
 commons-cli:commons-cli=1.6.0
 commons-codec:commons-codec=1.16.0
 commons-collections:commons-collections=3.2.2