Repository navigation
Expand file tree
/
Copy pathtest_reed_muller_generator.cpp
More file actions
115 lines (98 loc) · 2.78 KB
/
Copy pathtest_reed_muller_generator.cpp
File metadata and controls
115 lines (98 loc) · 2.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include "reed_muller_generator.h"
#include <iostream>
#include <assert.h>
#include <cassert>
using namespace std;
int main() {
ReedMullerGenerator rm40(4,0);
assert(rm40.get_boolean_fun()->get_anf() == "0");
assert(rm40.next());
assert(rm40.get_boolean_fun()->get_anf() == "1");
assert(rm40.next() == false);
cout << "End of test for rm40(4, 0)" << endl;
ReedMullerGenerator rm41(4,1);
long long total = 1;
while (rm41.next()) {
total ++;
assert(rm41.get_boolean_fun()->get_degree() <= 1);
}
assert(total == (1<<5) );
cout << "End of test for rm41(4, 1)" << endl;
ReedMullerGenerator rm42(4,2);
total = 1;
while (rm42.next()) {
total ++;
assert(rm42.get_boolean_fun()->get_degree() <= 2);
}
assert(total == (1<<11) );
cout << "End of test for rm42(4, 2)" << endl;
ReedMullerGenerator rm43(4,3);
total = 1;
while (rm43.next()) {
total ++;
assert(rm43.get_boolean_fun()->get_degree() <= 3);
}
assert(total == (1<<15) );
cout << "End of test for rm43(4, 3)" << endl;
ReedMullerGenerator rm44(4,4);
total = 1;
while (rm44.next()) {
total ++;
assert(rm44.get_boolean_fun()->get_degree() <= 4);
}
assert(total == (1<<16) );
cout << "End of test for rm44(4, 4)" << endl;
ReedMullerGenerator rm51(5,1);
total = 1;
while (rm51.next()) {
total ++;
assert(rm51.get_boolean_fun()->get_degree() <= 1);
}
assert(total == (1<<6) );
cout << "End of test for rm51(5, 1)" << endl;
ReedMullerGenerator rm52(5,2);
total = 1;
while (rm52.next()) {
total ++;
assert(rm52.get_boolean_fun()->get_degree() <= 2);
}
assert(total == (1<<16));
cout << "End of test for rm52(5, 2)" << endl;
ReedMullerGenerator rm60(6,0);
assert(rm60.get_boolean_fun()->get_anf() == "0");
assert(rm60.next());
assert(rm60.get_boolean_fun()->get_anf() == "1");
assert(rm60.next() == false);
cout << "End of test for rm60(6, 0)" << endl;
ReedMullerGenerator rm61(6,1);
total = 1;
while (rm61.next()) {
total ++;
assert(rm61.get_boolean_fun()->get_degree() <= 1);
}
assert(total == (1<<7) );
cout << "End of test for rm61(6, 1)" << endl;
ReedMullerGenerator rm62(6,2);
total = 1;
while (rm62.next()) {
total ++;
assert(rm62.get_boolean_fun()->get_degree() <= 2);
}
assert(total == (1<<22) );
cout << "End of test for rm62(6, 2)" << endl;
ReedMullerGenerator rm70(7,0);
assert(rm70.get_boolean_fun()->get_anf() == "0");
assert(rm70.next());
assert(rm70.get_boolean_fun()->get_anf() == "1");
assert(rm70.next() == false);
cout << "End of test for rm70(7, 0)" << endl;
ReedMullerGenerator rm71(7,1);
total=1;
while (rm71.next()) {
total ++;
assert(rm71.get_boolean_fun()->get_degree() <= 1);
}
assert(total == (1<<8) );
cout << "End of test for rm71(7, 1)" << endl;
return 1;
}