<commit_before>
#pragma once

#include <gloperate/base/make_unique.hpp>
#include <gloperate/pipeline/AbstractPipeline.h>

#include "DummyStage.hpp"


using namespace gloperate;
using gloperate::make_unique;

class TestPipeline : public AbstractPipeline
{
public:
    TestPipeline()
    {
        auto stage0 = make_unique<DummyStage>("", std::vector<std::string>{}, std::vector<std::string>{"output0", "output1"});
        auto stage1 = make_unique<DummyStage>("", std::vector<std::string>{"input0"}, std::vector<std::string>{"output0"});
        auto stage2 = make_unique<DummyStage>("", std::vector<std::string>{"input0"}, std::vector<std::string>{"output0"});
        auto stage3 = make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1"}, std::vector<std::string>{"output0"});
        auto stage4 = make_unique<DummyStage>("", std::vector<std::string>{"input0"}, std::vector<std::string>{"output0"});
        auto stage5 = make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1"}, std::vector<std::string>{"output0"});
        auto stage6 = make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1"}, std::vector<std::string>{"output0"});
        auto stage7 = make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1"}, std::vector<std::string>{"output0"});
        auto stage8 = make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1", "input2"}, std::vector<std::string>{"output0"});
        auto stage9 = make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1", "input2"}, std::vector<std::string>{"output0"});
        auto stage10 = make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1", "input2"}, std::vector<std::string>{"output0"});
        auto stage11 = make_unique<DummyStage>("", std::vector<std::string>{"input0"}, std::vector<std::string>{"output0"});
        auto stage12 = make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1", "input2"}, std::vector<std::string>{"output0"});
        auto stage13 = make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1", "input2", "input3", "input4"}, std::vector<std::string>{"output0"});
        auto stage14 = make_unique<DummyStage>("", std::vector<std::string>{"input0"}, std::vector<std::string>{"output0", "output1", "output2", "output3", "output4"});
        auto stage15 = make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1", "input2", "input3", "input4", "input5"}, std::vector<std::string>{"output0"});
        auto stage16 = make_unique<DummyStage>("", std::vector<std::string>{"input0"}, std::vector<std::string>{});

        stage1->inputs.at("input0") = stage0->outputs.at("output0");

        stage2->inputs.at("input0") = stage1->outputs.at("output0");

        stage3->inputs.at("input0") = stage0->outputs.at("output0");
        stage3->inputs.at("input1") = stage2->outputs.at("output0");

        stage4->inputs.at("input0") = stage3->outputs.at("output0");

        stage5->inputs.at("input0") = stage3->outputs.at("output0");
        stage5->inputs.at("input1") = stage4->outputs.at("output0");

        stage6->inputs.at("input0") = stage3->outputs.at("output0");
        stage6->inputs.at("input1") = stage4->outputs.at("output0");

        stage7->inputs.at("input0") = stage3->outputs.at("output0");
        stage7->inputs.at("input0") = stage4->outputs.at("output0");

        stage8->inputs.at("input0") = stage3->outputs.at("output0");
        stage8->inputs.at("input1") = stage4->outputs.at("output0");
        stage8->inputs.at("input2") = stage5->outputs.at("output0");

        stage9->inputs.at("input0") = stage3->outputs.at("output0");
        stage9->inputs.at("input1") = stage4->outputs.at("output0");
        stage9->inputs.at("input2") = stage6->outputs.at("output0");

        stage10->inputs.at("input0") = stage3->outputs.at("output0");
        stage10->inputs.at("input1") = stage4->outputs.at("output0");
        stage10->inputs.at("input2") = stage7->outputs.at("output0");

        stage11->inputs.at("input0") = stage10->outputs.at("output0");

        stage12->inputs.at("input0") = stage3->outputs.at("output0");
        stage12->inputs.at("input1") = stage4->outputs.at("output0");
        stage12->inputs.at("input2") = stage8->outputs.at("output0");

        stage13->inputs.at("input0") = stage3->outputs.at("output0");
        stage13->inputs.at("input1") = stage4->outputs.at("output0");
        stage13->inputs.at("input2") = stage12->outputs.at("output0");
        stage13->inputs.at("input3") = stage9->outputs.at("output0");
        stage13->inputs.at("input4") = stage11->outputs.at("output0");

        stage14->inputs.at("input0") = stage13->outputs.at("output0");

        stage15->inputs.at("input0") = stage14->outputs.at("output0");
        stage15->inputs.at("input1") = stage14->outputs.at("output1");
        stage15->inputs.at("input2") = stage14->outputs.at("output2");
        stage15->inputs.at("input3") = stage14->outputs.at("output3");
        stage15->inputs.at("input4") = stage14->outputs.at("output4");
        stage15->inputs.at("input5") = stage0->outputs.at("output1");

        stage16->inputs.at("input0") = stage15->outputs.at("output0");

        addStages(
            std::move(stage0),
            std::move(stage1),
            std::move(stage2),
            std::move(stage3),
            std::move(stage4),
            std::move(stage5),
            std::move(stage6),
            std::move(stage7),
            std::move(stage8),
            std::move(stage9),
            std::move(stage10),
            std::move(stage11),
            std::move(stage12),
            std::move(stage13),
            std::move(stage14),
            std::move(stage15),
            std::move(stage16));
    }

};
<commit_msg>fix ambiguous make_unique call (2nd try)<commit_after>
#pragma once

#include <gloperate/base/make_unique.hpp>
#include <gloperate/pipeline/AbstractPipeline.h>

#include "DummyStage.hpp"


using namespace gloperate;

class TestPipeline : public AbstractPipeline
{
public:
    TestPipeline()
    {
        auto stage0 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{}, std::vector<std::string>{"output0", "output1"});
        auto stage1 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0"}, std::vector<std::string>{"output0"});
        auto stage2 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0"}, std::vector<std::string>{"output0"});
        auto stage3 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1"}, std::vector<std::string>{"output0"});
        auto stage4 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0"}, std::vector<std::string>{"output0"});
        auto stage5 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1"}, std::vector<std::string>{"output0"});
        auto stage6 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1"}, std::vector<std::string>{"output0"});
        auto stage7 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1"}, std::vector<std::string>{"output0"});
        auto stage8 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1", "input2"}, std::vector<std::string>{"output0"});
        auto stage9 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1", "input2"}, std::vector<std::string>{"output0"});
        auto stage10 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1", "input2"}, std::vector<std::string>{"output0"});
        auto stage11 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0"}, std::vector<std::string>{"output0"});
        auto stage12 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1", "input2"}, std::vector<std::string>{"output0"});
        auto stage13 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1", "input2", "input3", "input4"}, std::vector<std::string>{"output0"});
        auto stage14 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0"}, std::vector<std::string>{"output0", "output1", "output2", "output3", "output4"});
        auto stage15 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0", "input1", "input2", "input3", "input4", "input5"}, std::vector<std::string>{"output0"});
        auto stage16 = gloperate::make_unique<DummyStage>("", std::vector<std::string>{"input0"}, std::vector<std::string>{});

        stage1->inputs.at("input0") = stage0->outputs.at("output0");

        stage2->inputs.at("input0") = stage1->outputs.at("output0");

        stage3->inputs.at("input0") = stage0->outputs.at("output0");
        stage3->inputs.at("input1") = stage2->outputs.at("output0");

        stage4->inputs.at("input0") = stage3->outputs.at("output0");

        stage5->inputs.at("input0") = stage3->outputs.at("output0");
        stage5->inputs.at("input1") = stage4->outputs.at("output0");

        stage6->inputs.at("input0") = stage3->outputs.at("output0");
        stage6->inputs.at("input1") = stage4->outputs.at("output0");

        stage7->inputs.at("input0") = stage3->outputs.at("output0");
        stage7->inputs.at("input0") = stage4->outputs.at("output0");

        stage8->inputs.at("input0") = stage3->outputs.at("output0");
        stage8->inputs.at("input1") = stage4->outputs.at("output0");
        stage8->inputs.at("input2") = stage5->outputs.at("output0");

        stage9->inputs.at("input0") = stage3->outputs.at("output0");
        stage9->inputs.at("input1") = stage4->outputs.at("output0");
        stage9->inputs.at("input2") = stage6->outputs.at("output0");

        stage10->inputs.at("input0") = stage3->outputs.at("output0");
        stage10->inputs.at("input1") = stage4->outputs.at("output0");
        stage10->inputs.at("input2") = stage7->outputs.at("output0");

        stage11->inputs.at("input0") = stage10->outputs.at("output0");

        stage12->inputs.at("input0") = stage3->outputs.at("output0");
        stage12->inputs.at("input1") = stage4->outputs.at("output0");
        stage12->inputs.at("input2") = stage8->outputs.at("output0");

        stage13->inputs.at("input0") = stage3->outputs.at("output0");
        stage13->inputs.at("input1") = stage4->outputs.at("output0");
        stage13->inputs.at("input2") = stage12->outputs.at("output0");
        stage13->inputs.at("input3") = stage9->outputs.at("output0");
        stage13->inputs.at("input4") = stage11->outputs.at("output0");

        stage14->inputs.at("input0") = stage13->outputs.at("output0");

        stage15->inputs.at("input0") = stage14->outputs.at("output0");
        stage15->inputs.at("input1") = stage14->outputs.at("output1");
        stage15->inputs.at("input2") = stage14->outputs.at("output2");
        stage15->inputs.at("input3") = stage14->outputs.at("output3");
        stage15->inputs.at("input4") = stage14->outputs.at("output4");
        stage15->inputs.at("input5") = stage0->outputs.at("output1");

        stage16->inputs.at("input0") = stage15->outputs.at("output0");

        addStages(
            std::move(stage0),
            std::move(stage1),
            std::move(stage2),
            std::move(stage3),
            std::move(stage4),
            std::move(stage5),
            std::move(stage6),
            std::move(stage7),
            std::move(stage8),
            std::move(stage9),
            std::move(stage10),
            std::move(stage11),
            std::move(stage12),
            std::move(stage13),
            std::move(stage14),
            std::move(stage15),
            std::move(stage16));
    }

};

{'fraction_non_alphanumeric': 0.22174353775975672, 'fraction_numerical': 0.04806555161344822, 'mean_word_length': 4.2947227191413235, 'pattern_counts': {'":': 0, '<': 109, '<?xml version=': 0, '>': 257, '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': '4032803', 'n_tokens_mistral': 3972, 'n_tokens_neox': 3849, 'n_words': 449}