sux 0.12.3

A pure Rust implementation of succinct and compressed data structures
Documentation
#define BOOST_TEST_MODULE sequence_collection

#include "test_generic_sequence.hpp"

#include "sequence_collection.hpp"
#include "indexed_sequence.hpp"
#include "partitioned_sequence.hpp"
#include "uniform_partitioned_sequence.hpp"
#include <succinct/mapper.hpp>

#include <vector>
#include <cstdlib>

template <typename BaseSequence>
void test_sequence_collection()
{
    ds2i::global_parameters params;
    uint64_t universe = 10000;
    typedef ds2i::sequence_collection<BaseSequence>
        collection_type;
    typename collection_type::builder b(params);

    std::vector<std::vector<uint64_t>> sequences(30);
    for (auto& seq: sequences) {
        double avg_gap = 1.1 + double(rand()) / RAND_MAX * 10;
        uint64_t n = uint64_t(universe / avg_gap);
        seq = random_sequence(universe, n, true);
        b.add_sequence(seq.begin(), seq.back() + 1, n);
    }

    {
        collection_type coll;
        b.build(coll);
        succinct::mapper::freeze(coll, "temp.bin");
    }

    {
        collection_type coll;
        boost::iostreams::mapped_file_source m("temp.bin");
        succinct::mapper::map(coll, m);

        for (size_t i = 0; i < sequences.size(); ++i) {
            test_sequence(coll[i], sequences[i]);
        }
    }
}

BOOST_AUTO_TEST_CASE(sequence_collection)
{
    test_sequence_collection<ds2i::indexed_sequence>();
    test_sequence_collection<ds2i::partitioned_sequence<>>();
    test_sequence_collection<ds2i::uniform_partitioned_sequence<>>();
}