| 63 | } |
| 64 | |
| 65 | TEST_F(FlatStreamerTest, TestAddVector) { |
| 66 | IndexStreamer::Pointer streamer = |
| 67 | IndexFactory::CreateStreamer("FlatStreamer"); |
| 68 | ASSERT_TRUE(streamer != nullptr); |
| 69 | |
| 70 | Params params; |
| 71 | ASSERT_EQ(0, streamer->init(*index_meta_ptr_, params)); |
| 72 | auto storage = IndexFactory::CreateStorage("MMapFileStorage"); |
| 73 | ASSERT_NE(nullptr, storage); |
| 74 | Params stg_params; |
| 75 | ASSERT_EQ(0, storage->init(stg_params)); |
| 76 | ASSERT_EQ(0, storage->open(dir_ + "Test/AddVector", true)); |
| 77 | ASSERT_EQ(0, streamer->open(storage)); |
| 78 | |
| 79 | auto ctx = streamer->create_context(); |
| 80 | auto provider = streamer->create_provider(); |
| 81 | ASSERT_TRUE(!!ctx); |
| 82 | |
| 83 | IndexQueryMeta qmeta(IndexMeta::DT_FP32, dim); |
| 84 | for (size_t i = 0; i < 1000UL; i++) { |
| 85 | NumericalVector<float> vec(dim); |
| 86 | for (size_t j = 0; j < dim; ++j) { |
| 87 | vec[j] = i; |
| 88 | } |
| 89 | streamer->add_impl(i, vec.data(), qmeta, ctx); |
| 90 | const float *data = (float *)provider->get_vector(i); |
| 91 | for (size_t j = 0; j < dim; ++j) { |
| 92 | ASSERT_FLOAT_EQ(data[j], i); |
| 93 | } |
| 94 | } |
| 95 | |
| 96 | streamer->flush(0UL); |
| 97 | streamer.reset(); |
| 98 | } |
| 99 | |
| 100 | TEST_F(FlatStreamerTest, TestLinearSearch) { |
| 101 | IndexStreamer::Pointer streamer = |
nothing calls this directly
no test coverage detected