#pragma once

#include <filesystem>
#include <string_view>
#include <vector>

#include <fesa/core/diagnostic.hpp>
#include <fesa/validation/comparison.hpp>

namespace fesa {

struct ReferenceRow final {
    ReferenceQuantity quantity;
    ResultPosition position;
    std::vector<double> values;
};

struct ReferenceCsvReadResult final {
    std::vector<ReferenceRow> rows;
    std::vector<Diagnostic> diagnostics;
};

[[nodiscard]] ReferenceCsvReadResult read_reference_csv(
    ReferenceQuantity quantity,
    const std::filesystem::path& path,
    std::string_view single_instance_name);

}  // namespace fesa
