1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.rng.core.source32;
18
19 import org.apache.commons.rng.core.RandomAssert;
20 import org.junit.jupiter.api.Test;
21
22 class MultiplyWithCarry256Test {
23
24 private static final int SEED_SIZE = 257;
25
26 @Test
27 void testMarsaglia() {
28 final int[] seed = {
29 0x000587c4,
30 0xff710353, 0x1b427020, 0xc9c59991, 0x96e511e0, 0xf1d06013, 0xe0216c68, 0x98999e3d, 0xce158f68,
31 0xb8d320ef, 0x905ddbf0, 0xda9717c9, 0x78498c30, 0x4681a0ab, 0x781347a8, 0x62eafcb5, 0x0a9bdc68,
32 0x6229d227, 0x74066600, 0x8bed09c1, 0xed6e6c00, 0xdd94abc3, 0x250f7008, 0x035bdded, 0x156c4108,
33 0x0f74e6ff, 0xa6921870, 0x81da1839, 0x7779efb0, 0xfecbd75b, 0x5af100c8, 0xa40fd3e5, 0x02a06008,
34 0x310f4db7, 0xaabaa6e0, 0xfb7c2331, 0x73b1aa60, 0x7ce8d2f3, 0x0217d868, 0x4f98355d, 0x435302e8,
35 0x1f47130f, 0x3e1c62f0, 0x69ac8aa9, 0xd8da50b0, 0xebe8414b, 0x39059928, 0x497a4c55, 0x049ae8e8,
36 0x4b0e81c7, 0xdb024540, 0x05aed2a1, 0xd29e4e40, 0x8d4aad23, 0xcf594e48, 0x30490d8d, 0xc36989c8,
37 0x6104809f, 0x97a6af70, 0xcd2f1b19, 0x0bf3d7b0, 0x0099c97b, 0xbe921008, 0xda423c85, 0x3604eec8,
38 0x92516757, 0xfdefd9e0, 0xe8adc411, 0x6313a060, 0x7fa3e4d3, 0x28314068, 0xa0f0807d, 0xd0a9d668,
39 0x008045af, 0xc25245f0, 0x2691e189, 0x9ff794b0, 0x25869f6b, 0xd347d828, 0xd4666475, 0x74179e68,
40 0x69c57a67, 0x1ccfc380, 0x7ac37381, 0xa9325780, 0x6ab03683, 0xfcaeeb88, 0xb892adad, 0x62b41888,
41 0xf28a1fbf, 0x27122d70, 0x16c8a0f9, 0xb6543630, 0x01cb9c1b, 0x052baec8, 0x277db425, 0x19cb1c88,
42 0x96061ff7, 0x9d030ae0, 0x10cbd8f1, 0x6a334960, 0x0501d233, 0x1b7f7568, 0xff5da59d, 0x5eadf9e8,
43 0x26ec97cf, 0xe208d2f0, 0xe934e169, 0xb7bd6930, 0xc1dc400b, 0xdc45f6a8, 0xe89ab515, 0x710932e8,
44 0xcac46e07, 0x44b63440, 0xc8e42c61, 0xde16e540, 0x96e107e3, 0x565bfd48, 0x5738cf4d, 0x70a49bc8,
45 0x85136f5f, 0xaab3e670, 0x4eb1efd9, 0xbc5bb630, 0x2f30423b, 0x4a1e8f88, 0xe8d40ec5, 0xbe50f9c8,
46 0xe7284f97, 0x15c447e0, 0xf2c741d1, 0x30f93360, 0xc04c1c13, 0xcbf14d68, 0xcfe94abd, 0x31a9d268,
47 0x7e17986f, 0x5e877ff0, 0xb1998449, 0xf7f8ed30, 0xdca7b22b, 0xf55427a8, 0xe153b735, 0xc2530968,
48 0x0586f4a7, 0xdb458d00, 0xb11dbd41, 0xc6fb9b00, 0x6fd5e143, 0x61b28708, 0xd013196d, 0x10b75a08,
49 0x00f40c7f, 0x40db3370, 0x126992b9, 0x793f35b0, 0xdb6d62db, 0x255836c8, 0x19d12e65, 0x3821a508,
50 0x9d468137, 0x373a0ce0, 0xe81672b1, 0x9c18e560, 0x56f7fe73, 0xfb2c4768, 0x05a599dd, 0x461c6ee8,
51 0x1f93d48f, 0x5ac9a8f0, 0x0a82c329, 0x0d28c0b0, 0xbfae26cb, 0x47dba628, 0xf6ec80d5, 0xdf6548e8,
52 0x67487247, 0xa1110e40, 0x718f7621, 0xbed4b940, 0xc8d2b3a3, 0x25d50d48, 0x29e6110d, 0x5ac1a1c8,
53 0x1aca0b1f, 0xb968e470, 0x3e051999, 0x4edb95b0, 0x9de098fb, 0x757ff708, 0x39054205, 0xfc9190c8,
54 0x3594dad7, 0xc5ffd9e0, 0x9baeeb91, 0xd5285f60, 0xab207853, 0xe4805f68, 0x50a9befd, 0x7d6f7768,
55 0xf8fec52f, 0xc8bdf5f0, 0xbeb6c609, 0xc00f94b0, 0xb13438eb, 0x911af728, 0x99d4b2f5, 0x5f7b7f68,
56 0xe27118e7, 0x8f6a1780, 0x07f36701, 0xfd3f3f80, 0xc88fce03, 0x4c7fcb88, 0x0038712d, 0xc7b12488,
57 0xd88e773f, 0xac980870, 0x57124b79, 0x87709b30, 0xbc032b9b, 0x2d2356c8, 0x9050c0a5, 0xcb59de88,
58 0xba506177, 0x0b157ee0, 0x2f9ebc71, 0x09974060, 0xb308d7b3, 0xfbfa7c68, 0x587a6c1d, 0xea8397e8,
59 0x6b187d4f, 0xdcbbfef0, 0xb42825e9, 0x8a4b3230, 0x1f528b8b, 0x41e03ea8, 0xa8d73195, 0x5e1b94e8,
60 0x7e990087, 0x92526740, 0xd1747fe1, 0xbb8a2c40, 0xd062bc63, 0x4eec1048, 0xaa5c52cd, 0x5875e7c8,
61 0x11ace7df, 0x919ee970, 0x0f2e2259, 0x55c10b30, 0xd60ae1bb, 0x2ab27788, 0xcda47a45, 0x667acdc8,
62 };
63
64
65
66
67
68 final int[] expectedSequence = {
69 0x257c6890, 0x2a638c7d, 0x24e92547, 0x3f021e24, 0x59cd3f37, 0x92c71967, 0x6d55aab2, 0xa662f2ad,
70 0x8633e15a, 0x19d38d42, 0xbbe8381e, 0x8312f976, 0xee4b2e57, 0xbe88c5d5, 0xb291b54e, 0x531ab614,
71 0xb6627311, 0x8ca090fd, 0x27e62e4a, 0x57b6879b, 0xce50ecc1, 0x41cf8cc8, 0x5a12c57a, 0xf0d9051d,
72 0x6cd3bdda, 0xa41671c6, 0x642bd28c, 0x1cce0718, 0x31dfe0b6, 0xd3733244, 0xa1c1b352, 0x54d4408b,
73 0xa8f4eba7, 0x02e1397c, 0xeac4aad4, 0x46a63278, 0x98d27010, 0x4036a1f1, 0xe902f641, 0x26b14aa6,
74 0xaeafe31c, 0x66a327ad, 0x3683346f, 0x661f8efe, 0x997da2b7, 0x5f6bb2e9, 0x0d5b7307, 0x5a70c604,
75 0xef321a16, 0xdd3260c6, 0xd23a8c99, 0xbaf20620, 0xeda3454a, 0x80e40950, 0xaf7dca32, 0xc80c8c58,
76 0x513bf771, 0xb8754759, 0xf41dbf72, 0x3f8c1c68, 0x26a6e60e, 0x7044afb5, 0xda8b1683, 0xee1b21dd,
77 0x814c5f27, 0xcc0dd2ea, 0x61da4c4c, 0x5851b922, 0x3d042fee, 0xb4840125, 0x294f93e7, 0x086be5e9,
78 0x5aa1c3fb, 0x9fa95c59, 0xf6b2daba, 0xb1c9204d, 0x4baf6c0d, 0x9cc31c15, 0x2257fb1b, 0xd6a9c727,
79 0x2c71d6b1, 0x6fd0d553, 0x30d58655, 0x5370f15f, 0xb926edc9, 0x8835266c, 0x389d4d27, 0xe763f62e,
80 0x0b97f8a9, 0x3a731321, 0xf8c581b7, 0x71b7c8bf, 0x3904345a, 0x1bcaad61, 0xcc3abf3f, 0x91a26d23,
81 0x1f8e89ee, 0x8833e2c1, 0x04c11554, 0x39136f32, 0xd2b9856c, 0x9d00cc24, 0x4d760374, 0xc65ae148,
82 0xad1a9df0, 0xde1dd1c7, 0xdadb106c, 0x7b081b19, 0x6e65ee75, 0x009c5298, 0xb8b82940, 0xd6181fc3,
83 0x3692c0b2, 0xa03d1e1f, 0xb35a1df5, 0x784bdfc0, 0xa431fe7f, 0x00c6d1ad, 0x7ef0f3ef, 0x68945b04,
84 0x8dcc4d02, 0x2d334d53, 0xe7751bb6, 0x911f4622, 0x703e8049, 0xed071832, 0xc4c0b6f2, 0x9449ba2d,
85 0x6537639f, 0x47d7b18e, 0x92a6650f, 0x8d42c84b, 0x4f2ce769, 0xe1d0247c, 0xc7fba06b, 0x198c07d9,
86 0xb81fd816, 0xcab28386, 0x17a2b884, 0xdbf55e34, 0x134179f7, 0x0088523b, 0x808fd3b8, 0x5736a030,
87 0x061abf09, 0xdffd5db5, 0x2858f517, 0x2f3709b5, 0xc56e87f0, 0xa29aa85b, 0xb64befc8, 0x89649761,
88 0x3b5d0058, 0xb026a416, 0xe9deb08c, 0x4c99a0fb, 0xee323b43, 0x3234a297, 0xfc7d8a82, 0xb5941989,
89 0x4a61ddbf, 0xadcac556, 0x8b7a2731, 0x5b12c8ad, 0xb3b327c5, 0x88cb626c, 0xc14ad815, 0xf3054fd7,
90 0x0faf1cbc, 0x3b1db6d4, 0x01e6e03e, 0x58c214ce, 0x35819aee, 0x238aa2aa, 0x62d94d21, 0xb0ba531e,
91 0xc2e4d6f2, 0x6f01d233, 0xd82461e2, 0x1ccfd5b2, 0xa516f619, 0x717ca8f1, 0x16c2200a, 0x8694cb14,
92 0x39212bc5, 0x76a261ba, 0xbe6cafdf, 0x1ab30291, 0x61aeca24, 0xff55bc4c, 0x4d71915c, 0x2ad797e7,
93 0x83e01a94, 0xc2d3ac81, 0x47a0ea0e, 0xa8137f15, 0x48e12d0e, 0xe654097d, 0x436bee53, 0xc8dfe9b3,
94 0xe7b51a7c, 0xdba4ea69, 0x0e5d71ca, 0xaad571d6, 0xe8f3f5c4, 0x60c3fb0b, 0x72bac665, 0x844e1404,
95 0x516839de, 0x7039fd09, 0xa089303c, 0xc42555ab, 0xc02120b8, 0x31d9a671, 0x7da2f597, 0x0047e938,
96 0xf3365c4a, 0x8a2c6c60, 0xff6e5799, 0x2c5f7a74, 0x9d3cfe7b, 0xc8c57f3d, 0x1d3473f6, 0xe75bcc43,
97 0xdd33ba4f, 0x90668ad4, 0xf67ef996, 0x300fe9a4, 0x584059ef, 0x8fbe8104, 0x3e259db6, 0x9df0b7fb,
98 0x52746195, 0x6a417ef5, 0x3ff9ad21, 0x8102516f, 0xda054624, 0x2477abf6, 0x1d8e5443, 0xdaaa5259,
99 0x07d015e3, 0x27d68c1b, 0x930689a9, 0x075ba657, 0x915f2f8a, 0xc1911283, 0x391af175, 0xfcd2a3bc,
100 0xe566bb6a, 0x5f6b4191, 0xd4b80bd2, 0x686cc681, 0x46eb852b, 0x8a6cba82, 0x873d26fe, 0x7fd36f7b,
101 0x638c020e, 0xe547311d, 0x280e508d, 0x88c9cc68, 0xc9cb9d3a, 0x50256a56, 0xd7a2e984, 0x1322e7d2,
102 0x016952e5, 0xadaee9e3, 0x040ad740, 0xe7b210ae, 0x659e8e59, 0x6cf0b4be, 0x367c7bf5, 0xa98bb1f8,
103 0xaf8492cd, 0x793b43cc, 0xc2255740, 0xdb3efd85, 0x351b4ade, 0xa3386b57, 0xa53856e2, 0xb0a74272,
104 0xffde7652, 0x3bcf325d, 0xc12b43d6, 0xaf84cfcb, 0x6bdac7e8, 0x15ff5fe2, 0x724c469d, 0xe19896ea,
105 0x43cd6aa6, 0x2b7260db, 0x041c1d52, 0xd5ec2c45, 0xa1e12fc9, 0x6be494a0, 0xc64f6ef0, 0x26eea794,
106 0xdfe7e36c, 0xc7d53723, 0xaca00dd0, 0x4affdf5d, 0xbd9f0df6, 0x75382815, 0x25c57824, 0x31ba4039,
107 0x6c75480c, 0xa0fa2bfa, 0xbba48f53, 0x09db90e9, 0x1dc1dc19, 0xe4663531, 0xdf3d2ed7, 0x6f54e741,
108 0xe6082c01, 0x2baabe7e, 0x67b2086c, 0x95d8ec2b, 0x7b4d87af, 0x43e3aae5, 0x1787dfba, 0xcc2eb97a,
109 0x3428f0df, 0x1e406776, 0x485ac033, 0xccee0de0, 0xa7010382, 0x0f96c5ed, 0x8c80257b, 0x0d983da2,
110 0xa7fcb482, 0xe5d0f841, 0x72b4b4fe, 0x18e06be1, 0xd98f371d, 0x040f8016, 0x7ee5b27f, 0x189be27f,
111 0x179ddbba, 0x107b6e08, 0x3ea4ee95, 0x54d8d162, 0xff8b29fe, 0x562d0834, 0x87f37d17, 0x88391d07,
112 0x5812f518, 0xf34be33f, 0xa9c4f645, 0x1c89446b, 0xf2111482, 0xf9ee61f8, 0x129603f8, 0x3e2e086a,
113 0xecd0a435, 0x9840d54c, 0xf9664d4b, 0xce6730f8, 0xbc9ce06b, 0x0aa150d7, 0x5bbe5e90, 0xe2564486,
114 0x66105cce, 0x7f38b7f3, 0xe63d1130, 0x62ac16ee, 0x77c57e00, 0x3b0226a1, 0x72ec3aea, 0x36019afc,
115 0xc645ff0d, 0x974f4880, 0x91da1212, 0xe370db8b, 0xadcf17e4, 0x944ab002, 0x5b0d716c, 0xbc01086d,
116 0x27211776, 0x652a32d4, 0x16be38e1, 0x6f2ea0bd, 0xd8858d93, 0x216a458c, 0x78bae9e0, 0xad14557e,
117 0xbba176e8, 0x45c0d59d, 0xa6ec2833, 0x9a72408d, 0x68582f7b, 0x1631f9f8, 0x215abad0, 0x17be213c,
118 0x05746888, 0x9779a0df, 0x0d9d28cf, 0x1d253cd7, 0xd06c9962, 0x00a84316, 0xc7a7ebce, 0xa4f1cb0f,
119 0x08028d29, 0xaebf1b50, 0x5782537b, 0xd4d7e06b, 0x846524e3, 0x9b82ab20, 0x49288ba5, 0x58734936,
120 0xc17aa021, 0xa8fd173d, 0xc20fbc6e, 0x8bbd9a5a, 0x7da87b4e, 0xafc23110, 0xdc727d0a, 0x5ede2442,
121 0xfd185051, 0x18dc56ec, 0x4a0a814c, 0x906f8016, 0xda39909b, 0xd664ebf5, 0x9e58b3fd, 0x09769997,
122 0x4656559e, 0x25980db9, 0x99ad5e86, 0xdda9fff3, 0x4b3b5c51, 0x85f75ff2, 0xe2712e34, 0x2d3dcaa7,
123 0xcdbe3226, 0x8b709d9a, 0x6f6a35cf, 0x5dada053, 0xc81e3023, 0xa2d20dc8, 0xedb116c2, 0xaca74c89,
124 0xeedeb314, 0xb865935f, 0xb9e99d2a, 0x23b1517b, 0x97cdd346, 0x4a14886e, 0x28195367, 0xaeed6a06,
125 0x902e40ec, 0x4f9d50a4, 0xfcad4859, 0x8ec8d46b, 0x950f385d, 0xae293d56, 0x8eba6d86, 0xf4c7b9f0,
126 0xa7e44d23, 0x340f66d9, 0xe04962b1, 0x3a6cb3b1, 0x51f0f544, 0x2102ade1, 0xdb72bac5, 0x7d754363,
127 0x9c3d6466, 0xceaa6494, 0x55431cfc, 0xc6905603, 0x6f0726ba, 0xb08a516e, 0x1c501439, 0x1323c172,
128 0x2bcdef90, 0xf8bf1c92, 0x4b6db4b4, 0x3d4e76f2, 0x823060d9, 0x80886870, 0x2e44e197, 0xb0f6a034,
129 0x409d98d2, 0x52f8c0de, 0xd30cdebf, 0x179757c5, 0xf5bb5dad, 0x49c600bb, 0x712f9419, 0xe5aa8c01,
130 0x6694ccc6, 0x6cad53a2, 0x4db659ae, 0x41d7b9c5, 0x26f5c897, 0xfe3df467, 0x8ed323bf, 0xbf8127b2,
131 0x81d40377, 0x00e447b3, 0xf1ca1e7d, 0xb4ae053c, 0xd815cd65, 0xd522eaf4, 0x0d300f47, 0x23204bf1,
132 0x3e86d3ed, 0x269c4485, 0x18bae574, 0x63f7157f, 0xeb56b507, 0x0e4e9f1d, 0xc162a93e, 0xa3f08b8b,
133 0xb595246c, 0xd02701fe, 0x13a054c5, 0x2cd29d84, 0x66fc748d, 0x23029126, 0x022bd7bc, 0xff04526e,
134 0xac70e3d3, 0x60dfbb69, 0x6beffb09, 0xae396478, 0x23507c03, 0x6d508bbd, 0xdd4b9a03, 0xefd11007,
135 0xde7026de, 0x68129e59, 0x0ab76704, 0x16f918de, 0xacc2b388, 0xf5f666fc, 0x1b519c64, 0x2cc36ca7,
136 0xe9dc07d6, 0x4a670a68, 0x6c797bb1, 0x813b77d8, 0x0decd048, 0x6fe1157d, 0x6725a946, 0xb131c2dc,
137 0x0dc96308, 0x4ed6b9d7, 0xc3cd7a9f, 0x886b41b6, 0x3d886073, 0x414b66d2, 0x0c8db580, 0x6e11a51e,
138 0x647dfd2e, 0x57df7d76, 0x4d679969, 0x36a61424, 0x34b45092, 0x6f0aa0a3, 0xfe52c2e4, 0x10aa6aee,
139 0xb1bb73ab, 0x30ddbfde, 0x22898b9d, 0x21ba51b2, 0x927e526c, 0xe1a0a535, 0xd0355862, 0xb296051b,
140 0x2258e82a, 0x2f017185, 0x4e037f71, 0x455e9f7b, 0x70be2aaa, 0x14f7dd2d, 0x8fe5a857, 0x888251af,
141 0x41887950, 0xb1cd8c85, 0xcf88077a, 0x658834ed, 0x6de3ae38, 0xb49fa2b4, 0xbba5c792, 0xf382f47f,
142 0xa829d21f, 0x35f31d13, 0xc645243f, 0xde1ee296, 0x20cb92b5, 0xcf66d510, 0x05e80309, 0x5f9f1ed0,
143 0x0b5b7f0e, 0x6a53938f, 0x5e0abcb5, 0x73ff6593, 0x004d4dca, 0x39997c7b, 0x23a78298, 0xc7c08cb3,
144 0xff1ee291, 0xea40f316, 0x69132b3e, 0x164b6b39, 0x0ebc2fb1, 0xe5adc964, 0xb234bed6, 0xc8bb950c,
145 0xd4cbdbfc, 0xdcc3f925, 0x99772a38, 0xe7cc4d82, 0xaa5747a6, 0x7bf358a9, 0x32f37e61, 0xb1ee2868,
146 0x1b432ed6, 0x8458ebc1, 0xbf116582, 0x3715233e, 0xf3917de9, 0x0e96120f, 0x105ed566, 0x359abd45,
147 0x8e892c78, 0x6ea63f81, 0xce1e1d0d, 0x89732bc3, 0xdb135bf7, 0x07622b9a, 0x467b58f1, 0x71ec958f,
148 0xe2e235d6, 0x7bbb202e, 0x9c854a05, 0x0f89d960, 0xbd09bcd1, 0x482a48cf, 0xb05afb69, 0x913bf292,
149 0x489b5bd6, 0x8d68812b, 0xf8a3720a, 0x0c87aef4, 0x76823918, 0x05e3a35a, 0xcf0486e7, 0x53c02103,
150 0xde9dd286, 0xf54f6fdb, 0xefa7877b, 0xb4661141, 0xf9d2581c, 0x4bbca497, 0xcbd2d029, 0xfab736a2,
151 0x7f90c973, 0x64d0e7cc, 0xb1882fa3, 0xec5b23eb, 0xf388dbb6, 0x352b7f43, 0x4a0021b3, 0xb25f8a02,
152 0xccc29b12, 0xa3573f70, 0x13c86bd1, 0xb9a1ea5b, 0x04bbff46, 0x234ca740, 0x64d36324, 0xc1c7b698,
153 0xd0b3b0c0, 0x27470071, 0x86b6c003, 0x55daab1d, 0x3ae11383, 0x9ddde0b4, 0x4cbfa4e3, 0xc45b229f,
154 0xe62999ce, 0xcf388be2, 0x76cf1184, 0x016c2c30, 0xafd34574, 0xb98a148f, 0x05277b87, 0x5562a329,
155 0x366be4b5, 0xcaa8ac90, 0x23339579, 0x31ad226a, 0x8a72f170, 0x3945e5e9, 0x34238130, 0xf5647741,
156 0x74b2be0a, 0x3168c90d, 0x1f7e75b1, 0x3001deaf, 0xf23a0992, 0x10ac859d, 0xc980d2af, 0xbffeda39,
157 0x7254660b, 0xb0fa2a45, 0xa72b1d49, 0x06919c1f, 0x33ae4774, 0x3b35137a, 0xb13998d9, 0x08df0a6a,
158 0x3e09ef58, 0xe1c0da12, 0x004520c8, 0x0e3e1a83, 0x75be6d84, 0xdef828b4, 0x02ba1195, 0xc0723e50,
159 0x2b576c84, 0x32a75f93, 0xc787fa9d, 0x072eaeac, 0x4c28c3fe, 0x0c96e328, 0xc32ac0a4, 0x5b39b458,
160 0x1362cf03, 0x42b7d8e3, 0x95098036, 0xcbdd6d82, 0x4b177650, 0x7b170cec, 0xf009e03b, 0x1d6b3ce6,
161 0x598bc6ed, 0x6d83457e, 0x9b9d7632, 0x371eb318, 0x0a0b504b, 0x8a5fc450, 0x342cddb7, 0x27abdd43,
162 0x1e5619a1, 0xe1b0d98a, 0x060538a1, 0x7e4c3af6, 0x88327248, 0x3973708b, 0x98461e31, 0xe986a6b0,
163 0x5773b681, 0xb62f0d41, 0x6700f403, 0xa4b1d0e1, 0x80b4d98b, 0x2c4132ee, 0xa658d3b3, 0xba1b770e,
164 0x60904cfd, 0xc445a139, 0xdb0ef27a, 0x4ace46cf, 0x2f8ac09e, 0x9dd71d29, 0x0fed2a2c, 0x29df377a,
165 0x79d096da, 0xd5b3c519, 0xcc6b5755, 0xd4b4d312, 0x811fb101, 0xcae0d28a, 0x674d1b64, 0x19e985cf,
166 0xcb2d22e6, 0x2785cedc, 0x518f9239, 0x1a66e5a1, 0xc25a529c, 0x8ddf8919, 0x557e2d1a, 0x601958fa,
167 0x2cec958b, 0x2c4a1996, 0xceebe93a, 0x15583c2f, 0x16915c85, 0x38625bb7, 0xc40c45b6, 0x695f4ca6,
168 0x3300a3c0, 0x5a10cc45, 0x1285f17e, 0x86d60d0e, 0x61894067, 0x98ef1dd5, 0x66d410df, 0x25896c66,
169 0xf33d63ce, 0x9c28db0b, 0x8f50b049, 0x3d5fbf07, 0x898c4ab2, 0x16ecf2b9, 0x391cc660, 0xc83caf84,
170 0xf839ad80, 0xab64b874, 0x220839a9, 0x43aa4e89, 0xbd89da32, 0xa43b21ed, 0x1c01bfb6, 0xbcda7042,
171 0x00beab05, 0x93fa2926, 0xf7f38a29, 0xcba3e372, 0x3646218d, 0xbede27dd, 0xe5ee44a1, 0x01e0eb66,
172 0x9982c956, 0x08f74ba4, 0x908297b2, 0x7b8c6ad9, 0x2ff6d71b, 0x5593404d, 0xcdf14fe5, 0x3ea33f7c,
173 0x2640eb50, 0xcb2fcd6f, 0x4a2586b1, 0x63f225e8, 0x1a106462, 0xc7e0f101, 0xb86af8bc, 0x78f359e2,
174 0x784f946c, 0x90add600, 0x24c61b14, 0x6445fd9d, 0xcd0e503e, 0x2b28f79d, 0x51b832bb, 0xb42e3783,
175 0x62b5de9f, 0x150cfa4c, 0x30d9624d, 0x7b722b66, 0xd2f64f21, 0x9ab71b02, 0x4973968d, 0xac292292,
176 0x7752d5e3, 0x5ae44d00, 0x453fb388, 0x582db40a, 0x4e70c468, 0x87d5b7cf, 0x6fba662f, 0x5fc7b4c7,
177 0xec7e3a56, 0x75bd65f5, 0xcddcd8bd, 0xb7cee4ca, 0x9f808f92, 0x6eef126b, 0x87e5710f, 0x7b27b3c3,
178 0x1d8b7f60, 0x36e849f8, 0xbfc46814, 0x5ab00b3b, 0x12e30b30, 0x67b46983, 0x6cbe95ea, 0x498b8bcf,
179 0x553caec8, 0x48dd6ee0, 0xd4896ff7, 0x42242b53, 0xa5346f85, 0xabbd2373, 0xc00c2318, 0xc6f283f3,
180 0x89fd13d3, 0x5a4d8bfc, 0x94125136, 0xedeacd7d, 0x741b5462, 0x1b40489f, 0x25aceb45, 0xdf0538c4,
181 0x58af3fa8, 0x78118eaa, 0xc15e746f, 0xe890d26f, 0x826645b6, 0x315f7310, 0xf0ce725b, 0x837f8cd0,
182 0xaf55bdd8, 0xa7f19807, 0x605b6830, 0x7393a6c7, 0x1726f278, 0xc9f01a15, 0x3e6d7040, 0x5ce86985,
183 0xeb0ac581, 0xaea9aee0, 0x52fc0e08, 0x7ec22c7e, 0x5173aedd, 0x6add6fca, 0x0ac5043b, 0xa5ff3c54,
184 0x907c747c, 0xd9ada8bb, 0xf2fa68f9, 0x1521e21b, 0x4e32b234, 0xf96826ce, 0x4c89a35f, 0x628be219,
185 0x9dfeb826, 0xb5b8475f, 0x74dec36b, 0x8a3e92ba, 0xf619f494, 0xe3ffe1d6, 0x5ad677ff, 0x3a2678d2,
186 0x5f562dba, 0xd7509de3, 0xea134b0d, 0x16df70e0, 0xa5de499f, 0xf61461bd, 0xbadcb3c5, 0xef72eaaa,
187 0xc22faf5c, 0x248875f7, 0x250f026a, 0xcf929df9, 0xc2374a6a, 0xfc4ec03d, 0x38d46c25, 0x0a3d64ea,
188 0x6d82727b, 0x1c15f45a, 0x88cd0860, 0x424ef845, 0x953ad237, 0xf6d9487c, 0x83d1c69a, 0x9e1133d5,
189 0x553bd331, 0x168bdfac, 0x307d610b, 0x813c7fab, 0xbb9f9a78, 0x80c2d8a9, 0xad830f8f, 0x75c24862,
190 0xb29f399c, 0xee3a4a5d, 0x031a7f0d, 0x10727cb0, 0x08a85558, 0x5f94fb2b, 0xc064ee4d, 0x88ba1026,
191 0xcc3366b7, 0x76ecfdb2, 0x78ad049a, 0xcdb88483, 0x4419b7b7, 0x5706ae34, 0xcb3b2f6d, 0x0182cbaf,
192 0x9f52c655, 0x6d1029da, 0xe7bf2f32, 0xfb8dbe3a, 0x55e30359, 0x5534ed84, 0x690b0d1c, 0xeada16ac,
193 0xc1f43f00, 0x07af318c, 0xb5d2f6a3, 0xf3786fa8, 0x3f086f0a, 0xef283067, 0xb9a86d48, 0x6c619d98,
194 };
195
196 RandomAssert.assertEquals(expectedSequence, new MultiplyWithCarry256(seed));
197 }
198
199 @Test
200 void testConstructorWithZeroSeedIsNonFunctional() {
201 RandomAssert.assertNextIntZeroOutput(new MultiplyWithCarry256(new int[SEED_SIZE]), 2 * SEED_SIZE);
202 }
203
204 @Test
205 void testConstructorWithSingleBitSeedIsFunctional() {
206 RandomAssert.assertIntArrayConstructorWithSingleBitSeedIsFunctional(MultiplyWithCarry256.class, SEED_SIZE);
207 }
208 }