public void FileIsCopiedCorrectlyForNumberOfBitsBetween8And32()
        {
            var stopWatch = new Stopwatch();

            using (var fileReader = new FileReader(filePathSource, new Buffer()))
            {
                using (var fileWriter = new FileWriter(filePathDestination, new Buffer()))
                {
                    stopWatch.Start();

                    while (!fileReader.ReachedEndOfFile)
                    {
                        var random       = new Random();
                        var numberOfBits = fileReader.BitsLeft < 32
                            ? (byte)fileReader.BitsLeft
                            : (byte)random.Next(8, 32);

                        var readStuff = fileReader.ReadBits(numberOfBits);

                        fileWriter.WriteValueOnBits(readStuff, numberOfBits);
                    }

                    stopWatch.Stop();
                }
            }
            Console.WriteLine($"File copying in '{TestMethods.GetCurrentMethodName()}' took {stopWatch.ElapsedMilliseconds} ms for {originalFileSizeInBytes} bytes");

            Assert.IsTrue(TestMethods.FilesHaveTheSameContent(filePathSource, filePathDestination));
        }