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