public void Shake256_ShouldReturnCorrectHash_WithMessage30()
        {
            _shake = ShakePermutation.Shake256();
            _input = SpongeTests.Message30;
            var res = new BitString(_shake.Process(_input.Bytes, 4096, 30)).ToHexString();

            Assert.AreEqual("46 5D 08 1D FF 87 5E 39 62 00 E4 48 1A 3E 9D CD 88 D0 79 AA 6D 66 22 6C B6 BA 45 41 07 CB 81 A7 84 1A B0 29 60 DE 27 9C CB E3 4B 42 C3 65 85 AD 86 96 4D B0 DB 52 B6 E7 B4 36 9E CE 8F 72 48 58 9B A7 8A B1 82 8F FC 33 5C B1 23 97 11 9B FD 2B 87 EB 78 98 AE B9 56 B6 F2 3D DF 0B D4 00 43 86 A8 E5 26 55 4E F4 E4 83 FA CE E3 0D D3 2E 20 4F FF 8C 36 BB D6 02 A5 76 D1 39 08 9C 75 A8 05 02 66 FC BF 72 1E 44 43 DE 46 45 83 29 22 EB 8A AE 39 D1 F5 72 84 53 64 81 7B 00 33 54 38 99 94 00 23 F2 E9 65 A6 0A 80 EB 22 1E B1 9D C5 7B 12 12 91 56 4C 6F 69 35 83 B3 AC 7C 6F 27 2F 4F 67 A1 9A 76 78 D4 23 4B 0B F4 A2 EB C0 8A A2 35 B9 78 8D B7 87 16 1F 66 17 02 28 65 C0 EF 9A A5 33 80 2D 13 6C DB C7 AE BA 53 2A CF 1B E1 83 B0 29 5A B0 E3 3A 2E F6 9B E3 56 DA AF 30 96 87 15 3E 2F 99 A1 24 36 09 D6 03 12 6A 8C 82 3E 88 43 E4 59 BF C7 2B 30 69 1C DC C3 DD B2 7C F0 28 AF D5 1E 44 37 EE 3B 71 C0 C1 EC 87 A9 34 36 F0 C2 47 B7 E8 C5 0C E9 68 25 C9 70 29 99 7A 74 C3 18 AF AC AA 18 A0 18 0B C7 F2 F0 F1 C5 E7 EF 1A 2D 18 3A C7 EE 7E 49 15 C3 B6 8C 30 97 8A B6 C4 28 19 34 41 DF 47 05 B7 22 CE 25 A0 8A 1F AD CA 0E EF 1F AF E8 3A DF 13 02 1D 52 0D E5 C8 27 FF 9A 97 B7 55 46 19 3A 9B 92 3F 05 90 38 5D C4 BF F7 C4 9D 49 15 B5 A3 65 DB 4C 84 DD CB 18 5D E8 F9 EE B3 34 96 5A 42 F1 38 1C 8B AD C2 2B A1 F8 EE 4C 0E 4D AA F7 A8 8E 7F 42 DD B8 14 8F 3B F8 D3 B8 D7 4F 09 81 55 A3 7C B4 CB 27 87 6B 85 DA 60 2E 5C 78 9C 10 E0 3B E7 34 07 BA B8 C4 92 13 F8 C7 4E 12 66 CE 9B 11 28 6E 67 4C A9 C1 0C 9C 99 55 04 9A 66 E9 05 1D 9A 2B 1F C9 AF E2 67 98 E9 CE C6", res);
        }
        public void Shake256_ShouldReturnCorrectHash_WithMessage0()
        {
            _shake = ShakePermutation.Shake256();
            _input = SpongeTests.Message0;
            var res = new BitString(_shake.Process(_input.Bytes, 4096)).ToHexString();

            Assert.AreEqual("46 B9 DD 2B 0B A8 8D 13 23 3B 3F EB 74 3E EB 24 3F CD 52 EA 62 B8 1B 82 B5 0C 27 64 6E D5 76 2F D7 5D C4 DD D8 C0 F2 00 CB 05 01 9D 67 B5 92 F6 FC 82 1C 49 47 9A B4 86 40 29 2E AC B3 B7 C4 BE 14 1E 96 61 6F B1 39 57 69 2C C7 ED D0 B4 5A E3 DC 07 22 3C 8E 92 93 7B EF 84 BC 0E AB 86 28 53 34 9E C7 55 46 F5 8F B7 C2 77 5C 38 46 2C 50 10 D8 46 C1 85 C1 51 11 E5 95 52 2A 6B CD 16 CF 86 F3 D1 22 10 9E 3B 1F DD 94 3B 6A EC 46 8A 2D 62 1A 7C 06 C6 A9 57 C6 2B 54 DA FC 3B E8 75 67 D6 77 23 13 95 F6 14 72 93 B6 8C EA B7 A9 E0 C5 8D 86 4E 8E FD E4 E1 B9 A4 6C BE 85 47 13 67 2F 5C AA AE 31 4E D9 08 3D AB 4B 09 9F 8E 30 0F 01 B8 65 0F 1F 4B 1D 8F CF 3F 3C B5 3F B8 E9 EB 2E A2 03 BD C9 70 F5 0A E5 54 28 A9 1F 7F 53 AC 26 6B 28 41 9C 37 78 A1 5F D2 48 D3 39 ED E7 85 FB 7F 5A 1A AA 96 D3 13 EA CC 89 09 36 C1 73 CD CD 0F AB 88 2C 45 75 5F EB 3A ED 96 D4 77 FF 96 39 0B F9 A6 6D 13 68 B2 08 E2 1F 7C 10 D0 4A 3D BD 4E 36 06 33 E5 DB 4B 60 26 01 C1 4C EA 73 7D B3 DC F7 22 63 2C C7 78 51 CB DD E2 AA F0 A3 3A 07 B3 73 44 5D F4 90 CC 8F C1 E4 16 0F F1 18 37 8F 11 F0 47 7D E0 55 A8 1A 9E DA 57 A4 A2 CF B0 C8 39 29 D3 10 91 2F 72 9E C6 CF A3 6C 6A C6 A7 58 37 14 30 45 D7 91 CC 85 EF F5 B2 19 32 F2 38 61 BC F2 3A 52 B5 DA 67 EA F7 BA AE 0F 5F B1 36 9D B7 8F 3A C4 5F 8C 4A C5 67 1D 85 73 5C DD DB 09 D2 B1 E3 4A 1F C0 66 FF 4A 16 2C B2 63 D6 54 12 74 AE 2F CC 86 5F 61 8A BE 27 C1 24 CD 8B 07 4C CD 51 63 01 B9 18 75 82 4D 09 95 8F 34 1E F2 74 BD AB 0B AE 31 63 39 89 43 04 E3 58 77 B0 C2 8A 9B 1F D1 66 C7 96 B9 CC 25 8A 06 4A 8F 57 E2 7F 2A", res);
        }
        public void Shake256_ShouldReturnCorrectHash_WithMessage5()
        {
            _shake = ShakePermutation.Shake256();
            _input = SpongeTests.Message5;
            var res = new BitString(_shake.Process(_input.Bytes, 4096, 5)).ToHexString();

            Assert.AreEqual("48 A5 C1 1A BA EE FF 09 2F 36 46 EF 0D 6B 3D 3F F7 6C 2F 55 F9 C7 32 AC 64 70 C0 37 64 00 82 12 E2 1B 14 67 77 8B 18 19 89 F8 88 58 21 1B 45 DF 87 99 CF 96 1F 80 0D FA C9 9E 64 40 39 E2 97 9A 40 16 F5 45 6F F4 21 C5 B3 85 DA 2B 85 5D A7 E3 1C 8C 2E 8E 4B A4 1E B4 09 5C B9 99 D9 75 9C B4 03 58 DA 85 62 A2 E6 13 49 E0 5A 2E 13 F1 B7 4E C9 E6 9F 5B 42 6D C7 41 38 FF CD C5 71 C3 2B 39 B9 F5 55 63 E1 A9 9D C4 22 C3 06 02 6D 6A 0F 9D E8 51 62 B3 86 79 4C A0 68 8B 76 4B 3D 32 20 0C C4 59 74 97 32 A0 F3 A3 41 C0 EF C9 6A 22 C6 3B AD 7D 96 CC 9B A4 76 8C 6F CF A1 F2 00 10 7C F9 FA E5 C0 D7 54 95 8C 5A 75 6B 37 6A 3B E6 9F 88 07 4F 20 0E 9E 95 A8 CA 5B CF 96 99 98 DB 1D C3 7D 0D 3D 91 6F 6C AA B3 F0 37 82 C9 C4 4A 2E 14 E8 07 86 BE CE 45 87 B9 EF 82 CB F4 54 E0 E3 4B D1 75 AE 57 D3 6A F4 E7 26 B2 21 33 2C ED 36 C8 CE 2E 06 20 3C 65 6A E8 DA 03 7D 08 E7 16 0B 48 0C 1A 85 16 BF 06 DD 97 BF 4A A4 C0 24 93 10 DC 0B 06 5D C6 39 57 63 55 38 4D 16 5C 6A 50 9B 12 F7 BB D1 E1 5B 22 BC E0 2F A0 48 DD FA AC F7 41 5F 49 B6 32 4C 1D 06 7B 52 64 E1 12 5F 7F 75 42 7F 31 2B D9 34 6E B4 E4 00 B1 F7 CB 31 28 8C 9E 3F 73 5E CA 9C ED 0D B8 88 E2 E2 F4 02 24 3B D6 46 18 A2 3E 10 F9 C2 29 39 74 40 54 2D 0A B1 B2 E1 0D AC C5 C9 5E 59 7F 2C 7E A3 84 38 10 5F 97 80 3D BB 03 FC C0 FD 41 6B 09 05 A4 1D 18 4D EB 23 89 05 77 58 91 F9 35 01 FB 41 76 A3 BD 6C 46 44 61 D3 6E E8 B0 08 AA BD 9E 26 A3 40 55 E8 0C 8C 81 3E EB A0 7F 72 8A B3 2B 15 60 5A D1 61 A0 66 9F 6F CE 5C 55 09 FB B6 AF D2 4A EA CC 5F A4 A5 15 23 E6 B1 73 24 6E D4 BF A5 21 D7 4F C6 BB", res);
        }
        public void Shake128_ShouldReturnCorrectHash_WithMessage1605()
        {
            _shake = ShakePermutation.Shake128();
            _input = SpongeTests.Message1605;
            var res = new BitString(_shake.Process(_input.Bytes, 4096, 1605)).ToHexString();

            Assert.AreEqual("4A C3 8E BD 16 78 B4 A4 52 79 2C 56 73 F9 77 7D 36 B5 54 51 AA AE 24 24 92 49 42 D3 18 A2 F6 F5 1B BC 83 7D CC 70 22 C5 40 3B 69 D2 9A C9 9A 74 5F 06 D0 6F 2A 41 B0 CC 24 3C D2 70 FA 44 D4 30 65 AF 00 D2 AD 35 8B D5 A5 D0 6D 33 1B C2 30 CD 8D DA 46 55 62 8F 91 02 71 1A DA FB 76 36 C1 60 B2 D2 5E C6 23 5A 2F E0 F3 73 94 D8 7F C5 FF D7 DB F1 99 3E 55 8A EB EA 6C 61 E9 07 18 8C 61 F5 FC DE 27 8E 26 4F 95 8F FD 7B 33 82 DC 10 13 9B 62 5E 12 41 AB 5B BC 2A 1F BC AC 31 A3 35 CF C7 B2 0E 42 77 12 24 6C BB 55 23 22 59 A7 EF 16 02 BD 56 F6 56 7D 66 94 2D 4A 71 49 F4 22 22 10 B0 74 EA 54 15 4B 38 E8 FD FA 0D CF 4F A3 EC D2 15 4E 83 18 A6 57 8B 53 5D BC FC 21 7A 3C AB 52 53 29 65 84 6F 89 78 14 57 02 55 63 E2 DC 15 CC 3A F9 02 BA 2A D2 80 FF BB BF A4 C5 2B 60 FA 41 BA C2 1F 4A B2 35 36 26 81 19 FC 98 CD 98 2D A5 CD 5D A2 1E 1B 56 92 D4 71 05 DE 9F 1E 01 32 C6 FE 31 5D 67 FA 46 49 97 C2 AB 55 33 C7 9F 98 E6 E6 4F F8 08 02 A7 FE 96 CA 04 A8 1F 88 55 27 37 0A 22 06 B1 0B 39 36 DD 81 B8 24 63 53 F4 CD 90 51 10 89 26 8D 74 4F 21 0A C6 89 D4 9D 28 75 05 4A 72 7B 60 4D 13 D2 69 B3 71 90 D4 27 C7 D1 5C CC DC D7 87 0E 0B 8A DB EB 97 71 11 A9 BC F7 78 1A 16 13 56 A5 94 1C 79 99 07 EF 9D 3B 1A 44 1F 09 51 5F 28 31 C4 FA FD E3 DC 7C 1E 9B 5A A5 7D 3E 83 CD 67 34 DA 3D 8B 9E F3 FC 44 88 05 EA 29 C9 9C BA 6B 35 2B CA BE 2F D9 70 AE 95 80 D2 BF 25 15 2B 96 0E 6B 80 6D 87 D7 D0 60 8B 24 7F 61 08 9E 29 86 92 C2 7F 19 C5 2D 03 EB E3 95 A3 68 06 AD 54 0B EC 2D 04 6C 18 E3 55 FA F8 31 3D 2E F8 99 5E E6 AA E4 25 68 F3 14 93 3E 3A 21 E5 BE 40", res);
        }
        public void Shake128_ShouldReturnCorrectHash_WithMessage1630()
        {
            _shake = ShakePermutation.Shake128();
            _input = SpongeTests.Message1630;
            var res = new BitString(_shake.Process(_input.Bytes, 4096, 1630)).ToHexString();

            Assert.AreEqual("89 84 6D C7 76 AC 0F 01 45 72 EA 79 F5 60 77 34 51 00 29 38 24 8E 68 82 56 9A C3 2A EA B1 91 FC AC DE 68 EB 07 55 75 39 C4 84 5F B4 44 10 8E 6E 05 45 E7 31 FC CA 2D 4F 67 A3 BF D4 1C FF 3E AF 35 EE FB 53 44 11 77 96 5B B5 16 95 0C F5 DC B2 AA FC BB C6 30 0E 8E EF D9 BC D0 E5 F3 2D 1A 4E 87 2E 0F 1D BD 8F 8E 00 CB B8 78 69 8C 58 83 E3 CA 18 4B 94 90 38 9E 46 00 2C 08 A0 B1 6B 05 A3 6B 2C B5 A1 CA E0 8E 11 AD 97 2F D2 4A F7 01 01 CE 47 46 C8 4F 16 71 87 7F 0D F6 C4 15 D1 67 0F F4 0B 8D DE DD 89 CC 3E 65 6D B9 05 80 49 D6 09 B6 78 4C C9 D0 5E 60 CC 6A C9 C8 19 49 93 BA 29 15 8F D4 DB 8C F2 25 E9 57 4F 18 A7 7F 66 EC 10 52 BF 17 99 3B DA 20 6A 17 73 7D 78 5B D4 C1 8C EE 4C 76 AA 57 35 A5 22 3F 3C 55 E7 9D AE C1 3D 4B F6 0F 15 62 E0 AD 0F A3 B5 58 EC CF A8 AB 3E EF 61 47 4D 57 6E 8C AF 4C 11 E4 DE 5C CB 36 D7 DF 7D 89 2C 1F CA 20 17 BE 8B BD A5 A4 71 95 44 8C C6 7A 07 8E 62 8A 2E F7 63 FF E1 DC 9D 9D 6F F7 8E 68 96 1C 33 FF D9 00 0C 11 DE E7 F7 40 8D 8D A5 C6 05 B0 B4 D5 6B B5 5E 93 64 C7 7B FA D9 C8 19 1E D6 E1 FE 7B 7A 93 7C 6D 07 09 5F E5 EA 91 A7 00 B4 BD FC 17 B4 28 D0 36 92 2A A8 AB 5E 2C D5 85 84 6F B8 1F C6 93 B8 D5 9B F8 5C 74 BC 70 0C D2 BC 3E 6A AB 43 7D 93 D8 A3 0F 1C F6 92 EF EF 43 60 20 28 E0 CE 57 42 EB 3F 4F 4D 5B 02 91 58 DD 68 96 AC B5 E3 A7 F6 84 D9 AA 89 14 E7 09 74 B2 23 A6 FE C3 8D 76 C7 47 3E 86 E4 B9 B3 2C 62 1E 20 15 C5 5E 94 7D D0 16 C6 75 C8 23 68 CE 26 FB 45 6A 5B 65 88 1A F5 13 BF DC 88 68 7C 63 81 67 6A BB D2 D9 10 4E D2 3A 9E 89 31 02 46 B0 26 CE DD 57 59 5B 1A B6 FE 88 A7 84 BE 0C 06", res);
        }
        public void Shake128_ShouldReturnCorrectHash_WithMessage30()
        {
            _shake = ShakePermutation.Shake128();
            _input = SpongeTests.Message30;
            var res = new BitString(_shake.Process(_input.Bytes, 4096, 30)).ToHexString();

            Assert.AreEqual("6D 5D 39 C5 5F 3C CA 56 7F EA F4 22 DC 64 BA 17 40 1D 07 75 6D 78 B0 FA 3D 54 6D 66 AF C2 76 71 E0 01 06 85 FC 69 A7 EC 3C 53 67 B8 FA 5F DA 39 D5 7C E5 3F 15 3F A4 03 1D 27 72 06 77 0A EC 6B 2D DF 16 AE FA B6 69 11 0D 6E 4A 29 6A 14 FB 14 86 B0 84 6B 69 05 43 E4 05 7F 7F 42 AA 8C 0E 6A 5A 56 B6 0B 68 8D 55 A1 96 DF 6F 39 76 E3 06 88 CB B6 AF D4 85 25 D7 64 90 35 7F 3F D8 97 BA FC 87 36 D9 07 B9 BA C8 16 59 1F C2 4E 79 36 0B E3 A7 FF A6 29 82 C4 5A BB 0E 58 4C 07 EC 93 A1 95 30 50 9D 9F 81 62 15 D7 27 7B B9 99 43 7C 82 14 50 F0 75 92 81 CD 8E 16 A3 48 3E 3C C7 52 09 1B 7A AE 92 90 9D 2F 50 1E F7 DC E9 89 75 98 91 B3 37 7C EA B4 93 FF E4 96 01 0A 0C 7E 51 95 99 94 F5 6F 56 5E 63 3A F6 09 3A C6 E1 E0 F0 04 88 71 EC 47 78 F4 8E F8 BD 5B CB 80 EA 7D F9 FF 47 11 C8 1E 24 C0 22 1C 2A D9 74 4F BA 79 35 EA EC A1 14 22 4F D1 08 EF C5 AC 74 C6 62 52 08 92 75 B4 27 76 73 70 8C 4A F9 2F 88 13 B1 93 59 9F D6 4B D7 48 4F 2E 5E C3 69 E3 64 64 99 76 8E 58 1D D0 53 AA 48 14 D8 BF 1A CF F5 FD 77 45 19 A7 49 BE 66 75 47 41 EB C5 36 22 12 A9 FE A8 A8 14 E9 E0 10 BC 27 20 B3 B7 D9 4F AB 74 BC 7F 92 3E 10 72 B8 A5 DD DD A8 3B A0 15 7D 8C BA 55 C1 92 DF 69 65 CB 7D BA 46 A3 34 0D F8 C3 FA 89 C7 C4 DB 53 9D 38 DC 40 6F 1D 2C F5 4E 59 05 58 0B 44 04 BF D7 B3 71 95 61 C5 A5 9D 5D FD B1 BF 93 DF 13 82 52 25 ED CC E0 FA 7D 87 EF CD 23 9F EB 49 FC 9E 2D E9 D8 28 FE EB 1F 2C F5 79 B9 5D D0 50 AB 2C A4 71 05 A8 D3 0F 3F D2 A1 15 4C 15 F8 7F B3 7B 2C 71 56 BD 7F 3C F2 B7 45 C9 12 A4 0B C1 B5 59 B6 56 E3 E9 03 CC 57 33 E8 6B A1 5D FE F7 06 78", res);
        }
        public void Shake128_ShouldReturnCorrectHash_WithMessage1600()
        {
            _shake = ShakePermutation.Shake128();
            _input = SpongeTests.Message1600;
            var res = new BitString(_shake.Process(_input.Bytes, 4096)).ToHexString();

            Assert.AreEqual("13 1A B8 D2 B5 94 94 6B 9C 81 33 3F 9B B6 E0 CE 75 C3 B9 31 04 FA 34 69 D3 91 74 57 38 5D A0 37 CF 23 2E F7 16 4A 6D 1E B4 48 C8 90 81 86 AD 85 2D 3F 85 A5 CF 28 DA 1A B6 FE 34 38 17 19 78 46 7F 1C 05 D5 8C 7E F3 8C 28 4C 41 F6 C2 22 1A 76 F1 2A B1 C0 40 82 66 02 50 80 22 94 FB 87 18 02 13 FD EF 5B 0E CB 7D F5 0C A1 F8 55 5B E1 4D 32 E1 0F 6E DC DE 89 2C 09 42 4B 29 F5 97 AF C2 70 C9 04 55 6B FC B4 7A 7D 40 77 8D 39 09 23 64 2B 3C BD 05 79 E6 09 08 D5 A0 00 C1 D0 8B 98 EF 93 3F 80 64 45 BF 87 F8 B0 09 BA 9E 94 F7 26 61 22 ED 7A C2 4E 5E 26 6C 42 A8 2F A1 BB EF B7 B8 DB 00 66 E1 6A 85 E0 49 3F 07 DF 48 09 AE C0 84 A5 93 74 8A C3 DD E5 A6 D7 AA E1 E8 B6 E5 35 2B 2D 71 EF BB 47 D4 CA EE D5 E6 D6 33 80 5D 2D 32 3E 6F D8 1B 46 84 B9 3A 26 77 D4 5E 74 21 C2 C6 AE A2 59 B8 55 A6 98 FD 7D 13 47 7A 1F E5 3E 5A 4A 61 97 DB EC 5C E9 5F 50 5B 52 0B CD 95 70 C4 A8 26 5A 7E 01 F8 9C 0C 00 2C 59 BF EC 6C D4 A5 C1 09 25 89 53 EE 5E E7 0C D5 77 EE 21 7A F2 1F A7 01 78 F0 94 6C 9B F6 CA 87 51 79 34 79 F6 B5 37 73 7E 40 B6 ED 28 51 1D 8A 2D 7E 73 EB 75 F8 DA AC 91 2F F9 06 E0 AB 95 5B 08 3B AC 45 A8 E5 E9 B7 44 C8 50 6F 37 E9 B4 E7 49 A1 84 B3 0F 43 EB 18 8D 85 5F 1B 70 D7 1F F3 E5 0C 53 7A C1 B0 F8 97 4F 0F E1 A6 AD 29 5B A4 2F 6A EC 74 D1 23 A7 AB ED DE 6E 2C 07 11 CA B3 6B E5 AC B1 A5 A1 1A 4B 1D B0 8B A6 98 2E FC CD 71 69 29 A7 74 1C FC 63 AA 44 35 E0 B6 9A 90 63 E8 80 79 5C 3D C5 EF 32 72 E1 1C 49 7A 91 AC F6 99 FE FE E2 06 22 7A 44 C9 FB 35 9F D5 6A C0 A9 A7 5A 74 3C FF 68 62 F1 7D 72 59 AB 07 52 16 C0 69 95 11 64 3B 64 39", res);
        }
        public void Shake128_ShouldReturnCorrectHash_WithMessage5()
        {
            _shake = ShakePermutation.Shake128();
            _input = SpongeTests.Message5;
            var res = new BitString(_shake.Process(_input.Bytes, 4096, 5)).ToHexString();

            Assert.AreEqual("2E 0A BF BA 83 E6 72 0B FB C2 25 FF 6B 7A B9 FF CE 58 BA 02 7E E3 D8 98 76 4F EF 28 7D DE CC CA 3E 6E 59 98 41 1E 7D DB 32 F6 75 38 F5 00 B1 8C 8C 97 C4 52 C3 70 EA 2C F0 AF CA 3E 05 DE 7E 4D E2 7F A4 41 A9 CB 34 FD 17 C9 78 B4 2D 5B 7E 7F 9A B1 8F FE FF C3 C5 AC 2F 3A 45 5E EB FD C7 6C EA EB 0A 2C CA 22 EE F6 E6 37 F4 CA BE 5C 51 DE D2 E3 FA D8 B9 52 70 A3 21 84 56 64 F1 07 D1 64 96 BB 7A BF BE 75 04 B6 ED E2 E8 9E 4B 99 6F B5 8E FD C4 18 1F 91 63 38 1C BE 7B C0 06 A7 A2 05 98 9C 52 6C D1 BD 68 98 36 93 B4 BD C5 37 28 B2 41 C1 CF F4 2B B6 11 50 2C 35 20 5C AB B2 88 75 56 55 D6 20 C6 79 94 F0 64 51 18 7F 6F D1 7E 04 66 82 BA 12 86 06 3F F8 8F E2 50 8D 1F CA F9 03 5A 12 31 AD 41 50 A9 C9 B2 4C 9B 2D 66 B2 AD 1B DE 0B D0 BB CB 8B E0 5B 83 52 29 EF 79 19 73 73 23 42 44 01 E1 D8 37 B6 6E B4 E6 30 FF 1D E7 0C B3 17 C2 BA CB 08 00 1D 34 77 B7 A7 0A 57 6D 20 86 90 33 58 9D 85 A0 1D DB 2B 66 46 C0 43 B5 9F C0 11 31 1D A6 66 FA 5A D1 D6 38 7F A9 BC 40 15 A3 8A 51 D1 DA 1E A6 1D 64 8D C8 E3 9A 88 B9 D6 22 BD E2 07 FD AB C6 F2 82 7A 88 0C 33 0B BF 6D F7 33 77 4B 65 3E 57 30 5D 78 DC E1 12 F1 0A 2C 71 F4 CD AD 92 ED 11 3E 1C EA 63 B9 19 25 ED 28 19 1E 6D BB B5 AA 5A 2A FD A5 1F C0 5A 3A F5 25 8B 87 66 52 43 55 0F 28 94 8A E2 B8 BE B6 BC 9C 77 0B 35 F0 67 EA A6 41 EF E6 5B 1A 44 90 9D 1B 14 9F 97 EE A6 01 39 1C 60 9E C8 1D 19 30 F5 7C 18 A4 E0 FA B4 91 D1 CA DF D5 04 83 44 9E DC 0F 07 FF B2 4D 2C 6F 9A 9A 3B FF 39 AE 3D 57 F5 60 65 4D 7D 75 C9 08 AB E6 25 64 75 3E AC 39 D7 50 3D A6 D3 7C 2E 32 E1 AF 3B 8A EC 8A E3 06 9C D9", res);
        }
        public void Shake128_ShouldReturnCorrectHash_WithMessage0()
        {
            _shake = ShakePermutation.Shake128();
            _input = SpongeTests.Message0;
            var res = new BitString(_shake.Process(_input.Bytes, 4096)).ToHexString();

            Assert.AreEqual("7F 9C 2B A4 E8 8F 82 7D 61 60 45 50 76 05 85 3E D7 3B 80 93 F6 EF BC 88 EB 1A 6E AC FA 66 EF 26 3C B1 EE A9 88 00 4B 93 10 3C FB 0A EE FD 2A 68 6E 01 FA 4A 58 E8 A3 63 9C A8 A1 E3 F9 AE 57 E2 35 B8 CC 87 3C 23 DC 62 B8 D2 60 16 9A FA 2F 75 AB 91 6A 58 D9 74 91 88 35 D2 5E 6A 43 50 85 B2 BA DF D6 DF AA C3 59 A5 EF BB 7B CC 4B 59 D5 38 DF 9A 04 30 2E 10 C8 BC 1C BF 1A 0B 3A 51 20 EA 17 CD A7 CF AD 76 5F 56 23 47 4D 36 8C CC A8 AF 00 07 CD 9F 5E 4C 84 9F 16 7A 58 0B 14 AA BD EF AE E7 EE F4 7C B0 FC A9 76 7B E1 FD A6 94 19 DF B9 27 E9 DF 07 34 8B 19 66 91 AB AE B5 80 B3 2D EF 58 53 8B 8D 23 F8 77 32 EA 63 B0 2B 4F A0 F4 87 33 60 E2 84 19 28 CD 60 DD 4C EE 8C C0 D4 C9 22 A9 61 88 D0 32 67 5C 8A C8 50 93 3C 7A FF 15 33 B9 4C 83 4A DB B6 9C 61 15 BA D4 69 2D 86 19 F9 0B 0C DF 8A 7B 9C 26 40 29 AC 18 5B 70 B8 3F 28 01 F2 F4 B3 F7 0C 59 3E A3 AE EB 61 3A 7F 1B 1D E3 3F D7 50 81 F5 92 30 5F 2E 45 26 ED C0 96 31 B1 09 58 F4 64 D8 89 F3 1B A0 10 25 0F DA 7F 13 68 EC 29 67 FC 84 EF 2A E9 AF F2 68 E0 B1 70 0A FF C6 82 0B 52 3A 3D 91 71 35 F2 DF F2 EE 06 BF E7 2B 31 24 72 1D 4A 26 C0 4E 53 A7 5E 30 E7 3A 7A 9C 4A 95 D9 1C 55 D4 95 E9 F5 1D D0 B5 E9 D8 3C 6D 5E 8C E8 03 AA 62 B8 D6 54 DB 53 D0 9B 8D CF F2 73 CD FE B5 73 FA D8 BC D4 55 78 BE C2 E7 70 D0 1E FD E8 6E 72 1A 3F 7C 6C CE 27 5D AB E6 E2 14 3F 1A F1 8D A7 EF DD C4 C7 B7 0B 5E 34 5D B9 3C C9 36 BE A3 23 49 1C CB 38 A3 88 F5 46 A9 FF 00 DD 4E 13 00 B9 B2 15 3D 20 41 D2 05 B4 43 E4 1B 45 A6 53 F2 A5 C4 49 2C 1A DD 54 45 12 DD A2 52 98 33 46 2B 71 A4 1A 45 BE 97 29 0B 6F", res);
        }
        public void Shake256_ShouldReturnCorrectHash_WithMessage1630()
        {
            _shake = ShakePermutation.Shake256();
            _input = SpongeTests.Message1630;
            var res = new BitString(_shake.Process(_input.Bytes, 4096, 1630)).ToHexString();

            Assert.AreEqual("8A 83 25 07 9B 0F C3 26 5D 52 F5 98 55 CA FE 65 5D F4 38 AA 63 9F 6F EC 99 1F 24 94 33 0C E3 2F A3 7F 7D B9 0F 69 66 D8 E4 A4 6E 50 C5 ED E5 7B 9B 8F 08 2A 96 62 7F 73 04 75 02 9A 61 92 29 D8 4F 43 2E D6 9F D0 59 23 4D 4D 7D D3 58 E8 39 3F 6A 36 A4 5C CF 04 1F 90 FC 0A 4E 58 02 D7 30 63 D3 65 31 33 6A 00 90 EC FE 1A 4D 4D 29 AA 82 4B A4 2B 49 37 B4 BB 98 F4 F3 3A 0E 3B D8 B5 11 E6 95 28 D5 95 37 11 0D 75 21 FB 78 AC A0 18 DF 76 16 0F 54 A3 42 1B 84 14 92 64 ED 03 2F 6D CE 46 7A 73 1A 8E 34 04 8E 3A 46 E9 80 39 DF 3C 32 8D EB FB E5 D1 BC 8B E7 FF 4E F8 91 7B 01 F0 B7 89 36 72 49 2D 6E E5 C7 1D F2 D0 53 1F 8B 68 47 64 BA 0A 2B 57 EC 6A 4F 60 BA 4F 36 FE 2D B0 E6 5A D7 AA 5F 14 F3 EF 9F 34 A0 AB 5B C3 3D 48 87 33 BA 36 BF 4B 2B 4F CE 02 8E FF 8C 6C E0 3B 19 2C F0 75 CC 9F 00 D2 9C 0E 06 C3 5C 44 89 D2 7F 07 FA 49 A9 1C A9 24 71 E3 4D AB 77 87 AE 24 A6 E0 F3 09 EF 0B A5 3F 7C 8B 29 92 52 0A 07 BE DD 50 9A 0B 6D BE A5 70 A5 96 0E D6 24 82 6D D8 EC D1 91 5C 87 32 7E 74 49 1C 40 5A 74 11 C1 2C 0D 44 97 51 26 89 BD 7F 5A DB ED B0 2C 6D 2E 68 47 4E 8B F3 1B 88 40 40 81 8F 4B CA 03 A4 52 17 EA C7 08 3A D3 A3 3C B8 47 7A 04 C9 E3 26 6A 13 34 77 DE 45 E7 18 30 A4 0E B0 D0 75 AF CC FC D9 DC 54 8D 0D 52 94 60 EA 7A C2 AD AC 72 2E 76 78 EF 59 7D D3 B4 95 BD 7D 1A 8F F3 94 48 BB AB 1D C6 A8 84 81 80 1C F5 A8 01 0E 87 3C 31 E4 79 A5 E3 DB 3D 4E 67 D1 D9 48 E6 7C C6 6F D7 5A 4A 19 C1 20 66 2E F5 59 77 BD DB AC 07 21 C8 0D 69 90 26 93 C8 3D 5E F7 BC 27 EF A3 93 AF 4C 43 9F C3 99 58 E0 E7 55 37 35 88 02 EF 08 53 B7 47 0B 0F 19 AC", res);
        }
        public void Shake256_ShouldReturnCorrectHash_WithMessage1605()
        {
            _shake = ShakePermutation.Shake256();
            _input = SpongeTests.Message1605;
            var res = new BitString(_shake.Process(_input.Bytes, 4096, 1605)).ToHexString();

            Assert.AreEqual("98 D0 93 B0 67 47 57 60 12 4F FB 92 04 A5 B3 27 C6 BB 05 C5 4F F2 34 F0 B4 3F AC 72 40 41 51 66 A8 C7 05 EA 0D 73 9F 08 08 B0 65 76 D9 96 66 2C 1F 37 66 94 D9 8F 51 57 19 B6 64 07 72 0D CF 78 1C 51 CD 56 EF 8B 61 0C 66 8D DC 1A C1 C2 C4 29 EA 4D 6F 27 4A A7 A7 73 BF 8B 0C AB 30 6F 1E EE 2A 17 1B 91 33 4E A0 FA CD 2A AC 1F 51 D4 D5 EB 0E 63 A4 E6 75 4E CA FE EC 24 6B 7A AF 58 D0 E0 A9 74 C7 FF 40 58 BD BD ED B3 3E D0 4B 0F A4 5D 70 C7 C8 4F 3D A1 3E 4F 7D 1B ED DB 53 4D 37 E5 AB DF B2 9F 2B 44 C4 FB 0D 6C CA B8 31 D9 0B A4 6A 00 53 06 62 F9 07 DE DD 47 9E 9B 54 28 E5 E2 DB 80 40 B0 E2 B1 F1 74 CE 34 7F 32 A0 6A 5A C2 2B 19 AA FE 92 7B 88 78 D0 C8 10 3A 4D 2F 19 E3 23 36 C6 4C FA DC 1B 9A CB 39 78 A8 29 85 71 DC D8 9C 36 A6 56 92 81 6D 0C 61 CE 0E D1 79 42 36 70 17 BD 40 F5 9D FB AE 34 63 58 27 92 0A FE 7A 27 BF 56 70 09 A1 38 40 3F 06 B6 E4 DE 94 DA 07 7D B4 97 73 C2 35 46 61 19 42 6F 79 88 8D 3A 81 B4 07 DF EB A8 7E 01 CD 48 F9 0E 01 B6 F9 02 43 C4 01 25 DE 47 E8 C8 F3 E6 EA 33 88 CB FE EB 36 54 1E F2 3D 2C 83 48 45 8E A2 8C AA 50 66 F4 98 37 76 F0 CB 2F DC 66 04 9C F8 8A C8 EA E5 12 12 AA CE 86 7B EA 4C 3C AE E4 4F 14 7A 9B F9 9D 04 87 4E 87 22 D0 3D 3F 5F F6 EF 3B EB E7 64 2F E4 91 6C 5F 10 FF 3F D6 13 87 D5 D9 1B CD 32 F9 E8 E4 59 3D CA AD 23 EC CC 05 D2 FC 9B E2 C1 CD 63 0E A1 23 DC A9 CB 69 38 D6 0C DD ED C1 1E 1E 9B C9 D2 68 A5 45 6B A9 CC FF 18 59 7C 5F F9 73 57 08 41 3B 9D 84 B9 F4 72 19 37 CC 65 95 71 27 97 53 2B 48 D6 F1 A2 D1 72 3B 07 D5 46 0B C1 39 16 D9 6E 88 18 07 13 AC 33 D2 C2 32 E3 5E 76 4E 04", res);
        }
        public void Shake256_ShouldReturnCorrectHash_WithMessage1600()
        {
            _shake = ShakePermutation.Shake256();
            _input = SpongeTests.Message1600;
            var res = new BitString(_shake.Process(_input.Bytes, 4096)).ToHexString();

            Assert.AreEqual("CD 8A 92 0E D1 41 AA 04 07 A2 2D 59 28 86 52 E9 D9 F1 A7 EE 0C 1E 7C 1C A6 99 42 4D A8 4A 90 4D 2D 70 0C AA E7 39 6E CE 96 60 44 40 57 7D A4 F3 AA 22 AE B8 85 7F 96 1C 4C D8 E0 6F 0A E6 61 0B 10 48 A7 F6 4E 10 74 CD 62 9E 85 AD 75 66 04 8E FC 4F B5 00 B4 86 A3 30 9A 8F 26 72 4C 0E D6 28 00 1A 10 99 42 24 68 DE 72 6F 10 61 D9 9E B9 E9 36 04 D5 AA 74 67 D4 B1 BD 64 84 58 2A 38 43 17 D7 F4 7D 75 0B 8F 54 99 51 2B B8 5A 22 6C 42 43 55 6E 69 6F 6B D0 72 C5 AA 2D 9B 69 73 02 44 B5 68 53 D1 69 70 AD 81 7E 21 3E 47 06 18 17 80 01 C9 FB 56 C5 4F EF A5 FE E6 7D 2D A5 24 BB 3B 0B 61 EF 0E 91 14 A9 2C DB B6 CC CB 98 61 5C FE 76 E3 51 0D D8 8D 1C C2 8F F9 92 87 51 2F 24 BF AF A1 A7 68 77 B6 F3 71 98 E3 A6 41 C6 8A 7C 42 D4 5F A7 AC C1 0D AE 5F 3C EF B7 B7 35 F1 2D 4E 58 9F 7A 45 6E 78 C0 F5 E4 C4 47 1F FF A5 E4 FA 05 14 AE 97 4D 8C 26 48 51 3B 5D B4 94 CE A8 47 15 6D 27 7A D0 E1 41 C2 4C 78 39 06 4C D0 88 51 BC 2E 7C A1 09 FD 4E 25 1C 35 BB 0A 04 FB 05 B3 64 FF 8C 4D 8B 59 BC 30 3E 25 32 8C 09 A8 82 E9 52 51 8E 1A 8A E0 FF 26 5D 61 C4 65 89 69 73 D7 49 04 99 DC 63 9F B8 50 2B 39 45 67 91 B1 B6 EC 5B CC 5D 9A C3 6A 6D F6 22 A0 70 D4 3F ED 78 1F 5F 14 9F 7B 62 67 5E 7D 1A 4D 6D EC 48 C1 C7 16 45 86 EA E0 6A 51 20 8C 0B 79 12 44 D3 07 72 65 05 C3 AD 4B 26 B6 82 23 77 25 7A A1 52 03 75 60 A7 39 71 4A 3C A7 9B D6 05 54 7C 9B 78 DD 1F 59 6F 2D 4F 17 91 BC 68 9A 0E 9B 79 9A 37 33 9C 04 27 57 33 74 01 43 EF 5D 2B 58 B9 6A 36 3D 4E 08 07 6A 1A 9D 78 46 43 6E 4D CA 57 28 B6 F7 60 EE F0 CA 92 BF 0B E5 61 5E 96 95 9D 76 71 97 A0 BE EB", res);
        }