<commit_before>#include <iostream>
#include <list>
#include <algorithm>
#include <vector>
#include <random>
#include <tuple>

#include <boost/range/iterator_range.hpp>
#include <boost/graph/random.hpp>
#include <boost/lexical_cast.hpp>

#include "gen_types.h"
#include "gen_b.h"
#include "kernelisation/graph_serialization.h"
#include "availableList.h"

using namespace std;
using namespace boost;

using namespace genTypes;

int main(int argc, char* argv[]) {
    const int n = 1000;
    const int k = 10;
    const int minG = 5;

    vector<Graph::vertex_descriptor> X = getX(n, k);
    vector<Graph::vertex_descriptor> Y = getY(X);
    vector<vector<genTypes::Graph::vertex_descriptor>> V = getV(X, n);

    Graph g(n);

    //setup output graph, that is connect the x[i] to every other vertex in the partition.
    for (int i = 0; i < k; ++i) {
        for (int v : V[i]) {
            add_edge(X[i], v, g);
        }
        add_edge(X[i], Y[i], g);
    }


    {
        ofstream outputFile(boost::lexical_cast<std::string>(std::time(nullptr)) + "s.dot");
        outputGraph(outputFile, g);
    }


    avilableList a(X,V);
    a.updateAvailable();

    random_device rd;
    while(num_edges(available) > 0){
        uniform_int_distribution<int> dist(0, a.size() - 1);
        Graph::vertex_descriptor v1, v2;
        tie(v1, v2) = a[dist(rd)];

        cout << v1 << ' ' << v2 << ' ';
<commit_msg>Yet annother new Graph Generator<commit_after>#include <iostream>
#include <list>
#include <algorithm>
#include <vector>
#include <random>
#include <tuple>

#include <boost/range/iterator_range.hpp>
#include <boost/graph/random.hpp>
#include <boost/lexical_cast.hpp>

#include "gen_types.h"
#include "gen_b.h"
#include "kernelisation/graph_serialization.h"
#include "availableList.h"

using namespace std;
using namespace boost;

using namespace genTypes;

int main(int argc, char* argv[]) {
    const int n = 1000;
    const int k = 10;
    const int minG = 5;

    vector<Graph::vertex_descriptor> X = getX(n, k);
    vector<Graph::vertex_descriptor> Y = getY(X);
    vector<vector<genTypes::Graph::vertex_descriptor>> V = getV(X, n);

    Graph g(n);

    //setup output graph, that is connect the x[i] to every other vertex in the partition.
    for (int i = 0; i < k; ++i) {
        for (int v : V[i]) {
            add_edge(X[i], v, g);
        }
        add_edge(X[i], Y[i], g);
    }


    {
        ofstream outputFile(boost::lexical_cast<std::string>(std::time(nullptr)) + "s.dot");
        outputGraph(outputFile, g);
    }


    avilableList a(X,V);
    a.updateAvailable(g);

    random_device rd;
    while(num_edges(available) > 0){
        uniform_int_distribution<int> dist(0, a.size() - 1);
        Graph::vertex_descriptor v1, v2;
        tie(v1, v2) = a[dist(rd)];

        cout << v1 << ' ' << v2 << ' ';

{'fraction_non_alphanumeric': 0.15466101694915255, 'fraction_numerical': 0.012005649717514125, 'mean_word_length': 3.234678624813154, 'pattern_counts': {'":': 0, '<': 51, '<?xml version=': 0, '>': 35, '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': '3330625', 'n_tokens_mistral': 1038, 'n_tokens_neox': 994, 'n_words': 248}