#pragma once

#include "Constraints/ConstraintsTypes.h"
#include "Partitions/PartitionsCount.h"
#include <algorithm>
#include <numeric>
#include <string>
#include <cmath>

void CheckPartition(const std::vector<std::string> &compFunVec,
                    const std::vector<double> &v, const std::string &mainFun,
                    const std::vector<double> &target, PartDesign &part,
                    int lenV, int m, double tolerance,
                    bool IsBetween);

void SetPartitionDesign(const std::vector<int> &Reps,
                        const std::vector<double> &v,
                        PartDesign &part, ConstraintType &ctype,
                        int lenV, int &m, bool bIsCount);

std::string GetPTypeName(PartitionType ptype);
