Files
2026-08-11 15:19:13 +08:00

56 lines
1.6 KiB
C++

// Copyright 2025-present the zvec project
//
// Licensed 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 <cmath>
#include <cstdint>
#include <memory>
#include <zvec/db/doc.h>
#include <zvec/db/index_params.h>
#include <zvec/db/query_params.h>
#include <zvec/db/schema.h>
int main() {
zvec::float16_t half_value(1.5F);
if (std::fabs(static_cast<float>(half_value) - 1.5F) > 0.001F) {
return 1;
}
zvec::CollectionSchema schema("shared-api-test");
auto field = std::make_shared<zvec::FieldSchema>("id", zvec::DataType::INT64);
if (!schema.add_field(std::move(field)).ok() || !schema.has_field("id")) {
return 2;
}
zvec::Doc doc;
doc.set_pk("1");
if (!doc.set<int64_t>("id", 1)) {
return 3;
}
zvec::IvfRabitqIndexParams index_params(zvec::MetricType::L2, 32, 8, 100);
if (index_params.type() != zvec::IndexType::IVF_RABITQ ||
index_params.nlist() != 32 || index_params.total_bits() != 8 ||
index_params.sample_count() != 100) {
return 4;
}
zvec::IvfRabitqQueryParams query_params(4);
if (query_params.type() != zvec::IndexType::IVF_RABITQ ||
query_params.nprobe() != 4) {
return 5;
}
return 0;
}