mirror of
https://github.com/Jaxan/hybrid-ads.git
synced 2025-04-27 15:07:45 +02:00
25 lines
1 KiB
C++
25 lines
1 KiB
C++
#pragma once
|
|
|
|
#include "mealy.hpp"
|
|
#include "separating_family.hpp"
|
|
#include "transfer_sequences.hpp"
|
|
#include "types.hpp"
|
|
|
|
#include <functional>
|
|
|
|
struct writer {
|
|
std::function<void(word)> apply; // store a part of a word
|
|
std::function<void(void)> reset; // flush
|
|
};
|
|
|
|
/// \brief Performs exhaustive tests with \p k_max extra states (harmonized, e.g. HSI / DS)
|
|
void test(mealy const & specification, transfer_sequences const & prefixes,
|
|
separating_family const & separating_family, size_t k_max, writer const & output);
|
|
|
|
/// \brief Performs random non-exhaustive tests for more states (harmonized, e.g. HSI / DS)
|
|
[[noreturn]] void randomized_test(mealy const & specification, transfer_sequences const & prefixes,
|
|
separating_family const & separating_family, size_t min_k,
|
|
size_t rnd_length, writer const & output);
|
|
|
|
/// \brief returns a writer which simply writes everything to cout (via inputs)
|
|
writer default_writer(const std::vector<std::string> & inputs);
|