<commit_before>#include <iostream>
#include <string>

#include "../include/StringRotator.h"
#include "../include/BWTransform.h"
#include "../include/PrefixSumTable.h"
#include "../include/OccurrenceTable.h"
#include "../include/WaveletTree.h"

int main() {
    std::string my = "AGATTAT$";

    std::string bwt = BWTransform::transform(my);
    std::cout << "Original :" << my << std::endl;
    std::cout << "Transformed :" << bwt << std::endl;

    int * sa = SuffixArray::get_sa(my, strlen(my.c_str()));

    PrefixSumTableInterface* ps_table = new PrefixSumTable(bwt);
    OccurrenceTableInterface* occ_table = new OccurrenceTable(bwt);
    std::string orig = BWTransform::reverse(bwt, *occ_table, *ps_table);
    std::cout << "Reversed :" << orig << std::endl;

    // test occurence tables
    OccurrenceTableInterface *occ_table1 = new WaveletTree(bwt, 4);
    int rank1 = occ_table->get_occ('A', 4);
    int rank2 = occ_table1->get_occ('A', 4);
    std::cout << "Res " << rank1 << " " << rank2 << std::endl;

    rank1 = occ_table->get_occ('T', 5);
    rank2 = occ_table->get_occ('T', 5);
    std::cout << "Res " << rank1 << " " << rank2 << std::endl;

    return 0;<commit_msg>trying to fix conflict<commit_after>#include <iostream>
#include <string>

#include "../include/StringRotator.h"
#include "../include/BWTransform.h"
#include "../include/PrefixSumTable.h"
#include "../include/OccurrenceTable.h"
#include "../include/WaveletTree.h"

int main() {
    std::string my = "AGATTAT$";

    std::string bwt = BWTransform::transform(my);
    std::cout << "Original :" << my << std::endl;
    std::cout << "Transformed :" << bwt << std::endl;

    PrefixSumTableInterface* ps_table = new PrefixSumTable(bwt);
    OccurrenceTableInterface* occ_table = new OccurrenceTable(bwt);
    std::string orig = BWTransform::reverse(bwt, *occ_table, *ps_table);
    std::cout << "Reversed :" << orig << std::endl;

    // test occurence tables
    OccurrenceTableInterface *occ_table1 = new WaveletTree(bwt, 4);
    int rank1 = occ_table->get_occ('A', 4);
    int rank2 = occ_table1->get_occ('A', 4);
    std::cout << "Res " << rank1 << " " << rank2 << std::endl;

    rank1 = occ_table->get_occ('T', 5);
    rank2 = occ_table->get_occ('T', 5);
    std::cout << "Res " << rank1 << " " << rank2 << std::endl;

    return 0;
{'fraction_non_alphanumeric': 0.1902502157031924, 'fraction_numerical': 0.013805004314063849, 'mean_word_length': 3.9551282051282053, 'pattern_counts': {'":': 0, '<': 83, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4459174', 'n_tokens_mistral': 842, 'n_tokens_neox': 803, 'n_words': 168}