1 package civitas.crypto.votecapabilityshare;
2
3 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
4 import static org.junit.jupiter.api.Assertions.assertEquals;
5
6 import org.junit.jupiter.api.DisplayName;
7 import org.junit.jupiter.api.Test;
8 import org.mockito.InjectMocks;
9
10 import civitas.crypto.votecapability.VoteCapability;
11 import civitas.util.CivitasBigIntegerFactory;
12 import io.github.magwas.testing.TestBase;
13
14 class CombineVoteCapabilitySharesTest extends TestBase implements VoteCapabilityShareTestData {
15
16 @InjectMocks
17 CombineVoteCapabilityShares combineVoteCapabilityShares;
18
19 @Test
20 @DisplayName("multiplies each row of a matrix of vote capability shares")
21 void test() {
22 VoteCapability[] actual = combineVoteCapabilityShares.apply(CAPABILITY_SHARE_MATRIX, EL_GAMAL_PARAMETERS);
23 assertEquals(CivitasBigIntegerFactory.obtain(2 * 5), actual[0].m());
24 assertEquals(CivitasBigIntegerFactory.obtain(3 * 7), actual[1].m());
25 }
26
27 @Test
28 @DisplayName("returns empty array if the matrix is null")
29 void test1() {
30 assertArrayEquals(EMPTY_ARRAY, combineVoteCapabilityShares.apply(null, EL_GAMAL_PARAMETERS));
31 }
32
33 @Test
34 @DisplayName("returns empty array if the matrix contains null")
35 void test2() {
36 assertArrayEquals(
37 EMPTY_ARRAY,
38 combineVoteCapabilityShares.apply(new VoteCapabilityShare[][] {null}, EL_GAMAL_PARAMETERS));
39 }
40 }