12 const size_t SIZE = 10;
13 auto poly = Polynomial::random(SIZE, 1);
16 auto poly_shifted = poly.shifted();
18 EXPECT_EQ(poly_shifted.size(), poly.size());
21 for (
size_t i = 0; i < poly_shifted.size() - 1; ++i) {
22 EXPECT_EQ(poly_shifted.get(i), poly.get(i + 1));
27 for (
size_t i = 0; i < poly_shifted.size() - 1; ++i) {
28 EXPECT_EQ(poly_shifted.get(i), poly.get(i + 1));
37 const size_t SIZE = 10;
38 const size_t VIRTUAL_SIZE = 20;
39 const size_t START_IDX = 2;
40 const size_t END_IDX = SIZE + START_IDX;
41 const size_t SHIFT_MAGNITUDE = 5;
42 auto poly = Polynomial::random(SIZE, VIRTUAL_SIZE, START_IDX);
45 auto poly_shifted = poly.right_shifted(SHIFT_MAGNITUDE);
47 EXPECT_EQ(poly_shifted.size(), poly.size());
48 EXPECT_EQ(poly_shifted.virtual_size(), poly.virtual_size());
51 for (
size_t i = 0; i < END_IDX; ++i) {
52 EXPECT_EQ(poly_shifted.get(i + SHIFT_MAGNITUDE), poly.get(i));
57 for (
size_t i = 0; i < END_IDX; ++i) {
58 EXPECT_EQ(poly_shifted.get(i + SHIFT_MAGNITUDE), poly.get(i));
67 const size_t SIZE = 10;
68 const size_t VIRTUAL_SIZE = 20;
69 const size_t START_IDX = 2;
70 const size_t END_IDX = SIZE + START_IDX;
71 auto poly = Polynomial::random(SIZE, VIRTUAL_SIZE, START_IDX);
74 auto poly_reversed = poly.reverse();
76 EXPECT_EQ(poly_reversed.size(), poly.size());
77 EXPECT_EQ(poly_reversed.virtual_size(), poly.end_index());
80 for (
size_t i = 0; i < END_IDX; ++i) {
81 EXPECT_EQ(poly_reversed.get(END_IDX - 1 - i), poly.get(i));
85 FF initial_value = poly.at(3);
87 EXPECT_EQ(poly_reversed.at(END_IDX - 4), initial_value);
95 const size_t SIZE = 10;
96 auto poly = Polynomial::random(SIZE);
99 auto poly_clone = poly.share();
102 EXPECT_EQ(poly_clone, poly);
106 EXPECT_EQ(poly_clone, poly);
108 poly_clone.at(2) = 13;
109 EXPECT_EQ(poly_clone, poly);
113 auto poly2 = Polynomial::random(SIZE);
114 poly = poly2.share();
116 EXPECT_NE(poly_clone, poly);