public void LcPseudoRandomGenerator_Variant1_WritesToStreamWriter()
        {
            LcPseudoRandomGenerator.Generate(_variant1, _streamWriter);
            _streamWriter.Close();

            Assert.Equal("2, 64", new String(_memoryResult.ToArray().Select(b => (char)b).ToArray()));
        }
        public void LcPseudoRandomGenerator_PositiveCase_WritesToStringWriter(LcConstants constants, uint count, string expected)
        {
            LcPseudoRandomGenerator.Generate(constants, null, _stringWriter, count);
            _stringWriter.Close();

            Assert.Equal(expected, _stringResult.ToString());
        }
        public void Execute(object parameter)
        {
            var mainWindowViewModel = (MainWindowViewModel)parameter;
            var input  = mainWindowViewModel.InputParametersViewModel;
            var output = mainWindowViewModel.OutputViewModel;

            var lcParameter = new LcConstants
                              (
                uint.Parse(input.X0),
                uint.Parse(input.A),
                uint.Parse(input.C),
                uint.Parse(input.M)
                              );

            var stringBuilder = new StringBuilder();
            var stringWriter  = new StringWriter(stringBuilder);
            var streamWriter  = new StreamWriter(input.FilePath);

            var period = LcPseudoRandomGenerator.Generate
                         (
                lcParameter,
                streamWriter,
                _toConsole ? stringWriter : null,
                uint.Parse(input.Count)
                         );

            output.Period            = period.ToString();
            output.GeneratedSequence = _toConsole ? stringBuilder.ToString() : "";

            streamWriter.Close();
        }
        public void LcPseudoRandomGenerator_Variant1CountLowerThanPeriod_WritesToBothStreamAndStringWriter()
        {
            LcPseudoRandomGenerator.Generate(_variant1, _streamWriter, _stringWriter, 1);
            _streamWriter.Close();
            _stringWriter.Close();

            Assert.Equal("2", _stringResult.ToString());
            Assert.Equal("2, 64", new String(_memoryResult.ToArray().Select(b => (char)b).ToArray()));
        }
        public void LcPseudoRandomGenerator_PositiveCase_WritesLastNumberToStreamWriter(LcConstants variant, uint expectedPeriod, string expectedLastNumber)
        {
            var streamWriterMock = new StreamWriterMock(_memoryResult);

            var actualPeriod = LcPseudoRandomGenerator.Generate(variant, streamWriterMock);

            Assert.Equal(expectedLastNumber, streamWriterMock.LastWriteCall);
            Assert.Equal(expectedPeriod, actualPeriod);
        }
示例#6
0
        private byte[] GenerateVector()
        {
            var byteCount     = 2 * U;
            var constants     = new LcConstants((uint)Environment.TickCount, 16807, 28657, 2147483648);
            var stringWriter  = new StringWriter();
            var vector        = LcPseudoRandomGenerator.Generate(constants, null, stringWriter, (uint)byteCount / 4);
            var stringNumbers = stringWriter.ToString();
            var numbers       = stringNumbers.Split(", ").Select(UInt32.Parse).ToArray();
            var result        = new byte[2 * U];

            Buffer.BlockCopy(numbers, 0, result, 0, byteCount);
            return(result);
        }