virtual F Lookup(const storage_type &data, I data_size, const index_type &shape, const index_type &stride, const index_type &index) const override { for (auto i = I(0); i < shape.size(); ++i) { if (index.at(i) < 0 || shape.at(i) <= index.at(i)) { return DefaultValue(); } } return identity_.Lookup(data, data_size, shape, stride, index); }
void CCopasiArray::resize(const index_type & sizes) { mDim = sizes.size(); mSizes = sizes; mFactors.resize(mDim); unsigned int tmpDataSize = 1; index_type::const_reverse_iterator it, itEnd = sizes.rend(); index_type::reverse_iterator itFaktor; for (it = sizes.rbegin(), itFaktor = mFactors.rbegin(); it != itEnd; ++it, ++itFaktor) { *itFaktor = tmpDataSize; tmpDataSize *= *it; } mData.resize(tmpDataSize); }
REQUIRE_THROWS_AS(index.get(100), const osmium::not_found&); REQUIRE(index.get_noexcept(id1) == osmium::Location{}); REQUIRE(index.get_noexcept(id2) == osmium::Location{}); REQUIRE(index.get_noexcept(0) == osmium::Location{}); REQUIRE(index.get_noexcept(1) == osmium::Location{}); REQUIRE(index.get_noexcept(5) == osmium::Location{}); REQUIRE(index.get_noexcept(100) == osmium::Location{}); } TEST_CASE("Map Id to location: Dummy") { using index_type = osmium::index::map::Dummy<osmium::unsigned_object_id_type, osmium::Location>; index_type index1; REQUIRE(0 == index1.size()); REQUIRE(0 == index1.used_memory()); test_func_all<index_type>(index1); REQUIRE(0 == index1.size()); REQUIRE(0 == index1.used_memory()); } TEST_CASE("Map Id to location: DenseMemArray") { using index_type = osmium::index::map::DenseMemArray<osmium::unsigned_object_id_type, osmium::Location>; index_type index1; index1.reserve(1000); test_func_all<index_type>(index1);