Arkanjo 0.1
A tool for find code duplicated functions in codebases
Loading...
Searching...
No Matches
random_selector.hpp
Go to the documentation of this file.
1
13#ifndef RANDOM_SELECTOR_HPP
14#define RANDOM_SELECTOR_HPP
15
16#include <string>
17#include <vector>
18#include <tuple>
19#include <random>
20#include "../base/path.hpp"
21#include "../base/utils.hpp"
23using namespace std;
24
33 string START_LINE_COMPARATION_PRINT = "Functions: ";
34 string BETWEEN_TWO_FUNCTION = " AND ";
35 string BETWEEN_RELATIVE_AND_FUNCTION_NAME = "::";
36 string SIMILARITY_MESSAGE = ". Similarity: ";
37
38 Similarity_Table *similarity_table;
39 double minimum_similarity;
40 double maximum_similarity;
41 double maximum_quantity;
42
43 const int seed = 123456789;
44 mt19937 rng = mt19937(seed);
45
46 int processed_results = 0;
47
52 Utils::COLOR choose_text_color();
53
59 string format_path_message_in_pair(Path path);
60
66 bool is_valid_pair(tuple<double,Path,Path> path_pair);
67
72 vector<tuple<double,Path,Path>> get_similarity_pairs_filtered();
73
79 vector<tuple<double,Path,Path>> make_random_selection(vector<tuple<double,Path,Path>> path_pairs);
80
85 void print_path_pair(tuple<double,Path,Path> path_pair);
86
91 void print_path_pairs(vector<tuple<double,Path,Path>> path_pairs);
92
93 public:
102 Similarity_Table *_similarity_table,
103 double _minimum_similarity,
104 double _maximum_similarity,
105 double _maximum_quantity
106 );
107};
108
109#endif
Path manipulation class for tool-specific directory structure.
Definition path.hpp:27
Random pair selector for similar code segments.
Random_Selector(Similarity_Table *_similarity_table, double _minimum_similarity, double _maximum_similarity, double _maximum_quantity)
Constructs selector with configuration.
Manages and analyzes function similarity relationships.
COLOR
Enumeration of available colors for formatted messages.
Definition utils.hpp:103
Definition json.hpp:5678
Path abstraction for temporary codebase.
Similarity relationships storage and analysis.
Defines utility functions used across all files.