Skip to content

Commit

Permalink
(#318) rename final states in AutomatonGenerator
Browse files Browse the repository at this point in the history
  • Loading branch information
mathhyyn committed May 29, 2024
1 parent a15a11a commit ab060b2
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 19 deletions.
12 changes: 6 additions & 6 deletions apps/MetamorphicTestsApp/src/MetamorphicTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ TEST(AutomatonGenerator, Test_MergeBisim_equivalent) {
std::vector<float> OY;
AutomatonGenerator::set_initial_state_not_terminal(true);
for (int term = 5; term <= 100; term = term + 5) {
AutomatonGenerator::set_terminal_probability(term);
AutomatonGenerator::set_final_probability(term);
int count = 0;
int ALL = 10000;
for (int i = 0; i < ALL; i++) {
Expand All @@ -233,7 +233,7 @@ TEST(AutomatonGenerator, Test_MergeBisim_equivalent) {
count++;
}
}
std::cout << "terminal_probability = " << term << " : " << float(count) / float(ALL) <<
std::cout << "final_probability = " << term << " : " << float(count) / float(ALL) <<
"%" << std::endl; OX.push_back(term); OY.push_back(float(count) / float(ALL));
}
std::cout << "OX = [";
Expand Down Expand Up @@ -299,7 +299,7 @@ ard.minimize().to_txt() << "\n" << FA.to_regex().to_txt();
TEST(Statistics, Test_dfa) {
for (int term = 5; term <= 50; term = term + 5) {
AutomatonGenerator::set_terminal_probability(20);
AutomatonGenerator::set_final_probability(20);
int count = 0;
int ALL = 10000;
for (int i = 0; i < ALL; i++) {
Expand All @@ -310,15 +310,15 @@ ard.minimize().to_txt() << "\n" << FA.to_regex().to_txt();
count++;
}
}
std::cout << "terminal_probability = " << term << " : " << float(count) / float(ALL) * 100<<
std::cout << "final_probability = " << term << " : " << float(count) / float(ALL) * 100<<
"%" << std::endl;
}
}
TEST(Statistics, Test_fa) {
std::cout << "TEST\n";
for (int term = 5; term <= 50; term = term + 5) {
AutomatonGenerator::set_terminal_probability(20);
AutomatonGenerator::set_final_probability(20);
int count = 0;
int ALL = 10000;
for (int i = 0; i < ALL; i++) {
Expand All @@ -333,7 +333,7 @@ ard.minimize().to_txt() << "\n" << FA.to_regex().to_txt();
}
std::cout << i << " " << std::endl;
}
std::cout << "terminal_probability = " << term << " : " << float(count) / float(ALL) * 100
std::cout << "final_probability = " << term << " : " << float(count) / float(ALL) * 100
<< "%" << std::endl;
}
}*/
16 changes: 8 additions & 8 deletions libs/InputGenerator/include/InputGenerator/AutomatonGenerator.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,18 +41,18 @@ class AutomatonGenerator {
struct StateDescription {
int index;

bool terminal;
bool final;
bool initial;

StateDescription(int index, bool terminal, bool initial)
: index(index), terminal(terminal), initial(initial) {}
StateDescription(int index, bool final, bool initial)
: index(index), final(final), initial(initial) {}
};

int initial = 0, states_number = 10;
int max_edges_number, edges_number;
// количество ячеек, количество попыток создать открытие ячейки
int colors = 4, colors_tries = 10;
int terminal_probability = 20;
int final_probability = 20;
int epsilon_probability = 10;
int ref_probability = 50;

Expand Down Expand Up @@ -100,10 +100,10 @@ class AutomatonGenerator {
{"states",
[=, this]() {
for (auto& stateDescription : stateDescriptions) {
if (stateDescription.initial || stateDescription.terminal) {
if (stateDescription.initial || stateDescription.final) {
STRING.push(std::to_string(stateDescription.index));
if (stateDescription.terminal)
TERMINAL.emplace("terminal");
if (stateDescription.final)
TERMINAL.emplace("final");
if (stateDescription.initial)
TERMINAL.emplace("initial_state");
TERMINAL.emplace(";");
Expand Down Expand Up @@ -198,7 +198,7 @@ class AutomatonGenerator {

void write_to_file(const std::string& filename);

void set_terminal_probability(int elem);
void set_final_probability(int elem);

void set_states_number(int n);
};
10 changes: 5 additions & 5 deletions libs/InputGenerator/src/AutomatonGenerator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ void AutomatonGenerator::add_terminality() {
if (unreachable.empty())
break;
int vertex = unreachable[rand() % unreachable.size()];
stateDescriptions[vertex].terminal = true;
stateDescriptions[vertex].final = true;
std::queue<int> bfs;
bfs.push(vertex);
finality_coloring[vertex] = true;
Expand All @@ -47,8 +47,8 @@ void AutomatonGenerator::add_terminality() {
}
}
for (int i = 0; i < states_number; i++) {
if (!stateDescriptions[i].terminal && dice_throwing(terminal_probability))
stateDescriptions[i].terminal = true;
if (!stateDescriptions[i].final && dice_throwing(final_probability))
stateDescriptions[i].final = true;
}
}

Expand Down Expand Up @@ -189,8 +189,8 @@ void AutomatonGenerator::write_to_file(const string& filename) {
out.close();
}

void AutomatonGenerator::set_terminal_probability(int elem) {
terminal_probability = elem;
void AutomatonGenerator::set_final_probability(int elem) {
final_probability = elem;
}

void AutomatonGenerator::set_states_number(int n) {
Expand Down

0 comments on commit ab060b2

Please sign in to comment.