aboutsummaryrefslogtreecommitdiff
path: root/test/src/gen/test_equation.c
blob: c66d28b3e5423c3d9a477881b33b35ea25788542 (plain)
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
116
117
118
119
120
/*
 * ecgen, tool for generating Elliptic curve domain parameters
 * Copyright (C) 2017 J08nY
 */
#include <criterion/criterion.h>
#include "gen/equation.h"
#include "test/default.h"
#include "test/input.h"

void equation_setup() {
	default_setup();
	input_setup();
}

void equation_teardown() {
	default_teardown();
	input_teardown();
}

TestSuite(equation, .init = equation_setup, .fini = equation_teardown);

Test(equation, test_a_gen_random) {
	curve_t curve = {.field = stoi(19)};

	int ret = a_gen_random(&curve, NULL, OFFSET_A);
	cr_assert_eq(ret, 1, );
	cr_assert_not_null(curve.a, );
}

Test(equation, test_a_gen_input) {
	curve_t curve = {.field = stoi(19)};
	cfg->bits = 10;

	unsigned int i = 7;
	fprintf(write_in, "%u\n", i);
	int ret = a_gen_input(&curve, NULL, OFFSET_A);
	cr_assert_eq(ret, 1, );
	cr_assert(gequal(modsi(i, curve.field), curve.a), );
}

Test(equation, test_a_gen_once) {
	curve_t curve = {.field = stoi(19)};
	cfg->bits = 10;

	unsigned int i = 7;
	GEN modi = modsi(i, curve.field);
	fprintf(write_in, "%u\n", i);
	int ret = a_gen_once(&curve, NULL, OFFSET_A);
	cr_assert_eq(ret, 1, );
	cr_assert(gequal(modi, curve.a), );

	ret = a_gen_once(&curve, NULL, OFFSET_A);
	cr_assert_eq(ret, 1, );
	cr_assert(gequal(modi, curve.a), );
	equation_quit();
}

Test(equation, test_a_gen_zero) {
	curve_t curve = {0};
	int ret = a_gen_zero(&curve, NULL, OFFSET_A);
	cr_assert_eq(ret, 1, );
	cr_assert(gequal(gen_0, curve.a), );
}

Test(equation, test_a_gen_one) {
	curve_t curve = {0};
	int ret = a_gen_one(&curve, NULL, OFFSET_A);
	cr_assert_eq(ret, 1, );
	cr_assert(gequal(gen_1, curve.a), );
}

Test(equation, test_b_gen_random) {
	curve_t curve = {.field = stoi(19)};

	int ret = b_gen_random(&curve, NULL, OFFSET_B);
	cr_assert_eq(ret, 1, );
	cr_assert_not_null(curve.b, );
}

Test(equation, test_b_gen_input) {
	curve_t curve = {.field = stoi(19)};
	cfg->bits = 10;

	unsigned int i = 7;
	fprintf(write_in, "%u\n", i);
	int ret = b_gen_input(&curve, NULL, OFFSET_B);
	cr_assert_eq(ret, 1, );
	cr_assert(gequal(modsi(i, curve.field), curve.b), );
}

Test(equation, test_b_gen_once) {
	curve_t curve = {.field = stoi(19)};
	cfg->bits = 10;

	unsigned int i = 7;
	GEN modi = modsi(i, curve.field);
	fprintf(write_in, "%u\n", i);
	int ret = b_gen_once(&curve, NULL, OFFSET_B);
	cr_assert_eq(ret, 1, );
	cr_assert(gequal(modi, curve.b), );

	ret = b_gen_once(&curve, NULL, OFFSET_B);
	cr_assert_eq(ret, 1, );
	cr_assert(gequal(modi, curve.b), );
	equation_quit();
}

Test(equation, test_b_gen_zero) {
	curve_t curve = {0};
	int ret = b_gen_zero(&curve, NULL, OFFSET_B);
	cr_assert_eq(ret, 1, );
	cr_assert(gequal(gen_0, curve.b), );
}

Test(equation, test_b_gen_one) {
	curve_t curve = {0};
	int ret = b_gen_one(&curve, NULL, OFFSET_B);
	cr_assert_eq(ret, 1, );
	cr_assert(gequal(gen_1, curve.b), );
}