public void ReverseUtils_ConvertBooleanToStringYN2()
        {
            bool?  boolean = false;
            string result  = ReverseUtils.ConvertBooleanToStringYN(boolean);

            Assert.AreEqual("N", result);
        }
        public void ReverseUtils_ConvertBooleanToStringYN3()
        {
            bool?  boolean = null;
            string result  = ReverseUtils.ConvertBooleanToStringYN(boolean);

            Assert.AreEqual(null, result);
        }
        public void ReverseUtils_ConvertBooleanToStringON1()
        {
            bool?  boolean = true;
            string result  = ReverseUtils.ConvertBooleanToStringON(boolean);

            Assert.AreEqual("O", result);
        }
        public void ReverseUtils_ConvertStringToBooleanYN4()
        {
            string stringValue = null;
            bool?  result      = ReverseUtils.ConvertStringToBooleanYN(stringValue);

            Assert.AreEqual(null, result);
        }
        public void ReverseUtils_IsStringLowValue4()
        {
            string s      = "a" + '\u0000';
            bool?  result = ReverseUtils.IsStringLowValue(s);

            Assert.IsNotNull(result);
            Assert.AreEqual(false, result.Value);
        }
        public void ReverseUtils_IsStringHighValue3()
        {
            string s      = "a";
            bool?  result = ReverseUtils.IsStringHighValue(s);

            Assert.IsNotNull(result);
            Assert.AreEqual(false, result.Value);
        }
        public void ReverseUtils_IsStringHighValue2()
        {
            string s      = "" + '\u009F' + '\u009F';
            bool?  result = ReverseUtils.IsStringHighValue(s);

            Assert.IsNotNull(result);
            Assert.AreEqual(true, result.Value);
        }
        public void ReverseUtils_IsCharLowValue2()
        {
            char character = '!';
            bool?result    = ReverseUtils.IsCharLowValue(character);

            Assert.IsNotNull(result);
            Assert.AreEqual(false, result.Value);
        }
        public void ReverseUtils_IsCharLowValue1()
        {
            char character = '\u0000';
            bool?result    = ReverseUtils.IsCharLowValue(character);

            Assert.IsNotNull(result);
            Assert.AreEqual(true, result.Value);
        }
        public void ReverseUtils_IsSpaces6()
        {
            object objet  = new object();
            bool?  result = ReverseUtils.IsSpaces(objet);

            Assert.IsNotNull(result);
            Assert.AreEqual(true, result.Value);
        }
        public void ReverseUtils_ConvertStringToBooleanYN3()
        {
            string stringValue = "Y";
            bool?  result      = ReverseUtils.ConvertStringToBooleanYN(stringValue);

            Assert.IsNotNull(result);
            Assert.AreEqual(true, result.Value);
        }
        public void ReverseUtils_ConvertStringToBooleanON1()
        {
            string stringValue = "N";
            bool?  result      = ReverseUtils.ConvertStringToBooleanON(stringValue);

            Assert.IsNotNull(result);
            Assert.AreEqual(false, result.Value);
        }
        public WavFileGenerationResult WriteSoundData(int divider, bool doReverse, BackgroundWorker worker,
                                                      DoWorkEventArgs args)
        {
            //Leaving all parameters in this method - we might want to pass them from the UI with eventArgs
            int   sampleRate       = 44100;
            short channels         = 6;
            int   columnOffset     = 3;
            int   precision        = 1000;
            int   maxPossibleValue = 20;
            var   header           = CreateHeader(channels, sampleRate);

            int linesCount = GetSourceFileLinesCount(_fileName, worker);
            int linesinCsv = linesCount - channels;



            string srcFileName = doReverse
                ? ReverseUtils.ReverseCsvFile(_fileName, linesinCsv, channels, _encoding)
                : _fileName;

            string dstFileName = srcFileName + "." + divider + ".wav";

            using var reader = new StreamReader(new BufferedStream(new FileStream(srcFileName, FileMode.Open)),
                                                _encoding);

            SkipCsvHeader(channels, reader);

            using var writer =
                      new BinaryWriter(new BufferedStream(new FileStream(dstFileName, FileMode.Create)));

            writer.Write(header);

            string line;
            int    fileLenBytes   = header.Length;
            int    linesProcessed = 0;

            while ((line = reader.ReadLine()) != null && !worker.CancellationPending)
            {
                var data         = processLine(line, channels, columnOffset, precision, divider, maxPossibleValue);
                var bytesWritten = WriteSingleSample(1, sampleRate, writer, data);
                fileLenBytes += bytesWritten;
                linesProcessed++;
                worker.ReportProgress(linesProcessed * 100 / linesinCsv);
            }

            WriteHeader(AddFileLengthToHeader(header, fileLenBytes), writer);

            args.Cancel = worker.CancellationPending;
            return(new WavFileGenerationResult(dstFileName, fileLenBytes));
        }