From 1b0ab18ed444e7aa63bd93a7fd19009e18ea9508 Mon Sep 17 00:00:00 2001 From: AlexanderSaydakov Date: Tue, 20 Feb 2024 16:49:45 -0800 Subject: [PATCH] cross-language test --- tdigest/test/CMakeLists.txt | 7 ++++ tdigest/test/tdigest_serialize_for_java.cpp | 37 +++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 tdigest/test/tdigest_serialize_for_java.cpp diff --git a/tdigest/test/CMakeLists.txt b/tdigest/test/CMakeLists.txt index 2382c706..dbac6cec 100644 --- a/tdigest/test/CMakeLists.txt +++ b/tdigest/test/CMakeLists.txt @@ -39,3 +39,10 @@ target_sources(tdigest_test PRIVATE tdigest_test.cpp ) + +if (GENERATE) +target_sources(tdigest_test + PRIVATE + tdigest_serialize_for_java.cpp +) +endif() diff --git a/tdigest/test/tdigest_serialize_for_java.cpp b/tdigest/test/tdigest_serialize_for_java.cpp new file mode 100644 index 00000000..ed0e4f8c --- /dev/null +++ b/tdigest/test/tdigest_serialize_for_java.cpp @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +#include +#include + +#include "tdigest.hpp" + +namespace datasketches { + +TEST_CASE("tdigest double generate", "[serialize_for_java]") { + const unsigned n_arr[] = {0, 1, 10, 100, 1000, 10000, 100000, 1000000}; + for (const unsigned n: n_arr) { + tdigest_double td(100); + for (unsigned i = 1; i <= n; ++i) td.update(i); + std::ofstream os("tdigest_double_n" + std::to_string(n) + "_cpp.sk", std::ios::binary); + td.serialize(os); + } +} + +} /* namespace datasketches */