示例#1
0
        public ActionResult Index()
        {
            var variants = new List <SelectListItem>();

            for (int i = 1; i < 26; i++)
            {
                variants.Add(new SelectListItem
                {
                    Text  = EnumValuesParser.GetVariantModel(i).Caption,
                    Value = i.ToString()
                });
            }

            ViewBag.Variants = variants;

            var model = new InputViewModel
            {
                Variant     = 1,
                InputType   = true,
                ManualInput = new InputModel(),
                OutputSize  = 190
            };

            return(View(model));
        }
示例#2
0
        public JsonResult InputData(InputViewModel model)
        {
            if (model.InputType)
            {
                var variant = EnumValuesParser.GetVariantModel(model.Variant);
                Data = new InputModel
                {
                    A  = variant.A,
                    C  = variant.C,
                    M  = variant.M,
                    X0 = variant.X0
                };
            }
            else
            {
                if (model.ManualInput.A >= model.ManualInput.M ||
                    model.ManualInput.C >= model.ManualInput.M ||
                    model.ManualInput.X0 >= model.ManualInput.M)
                {
                    return(Json(new
                    {
                        Success = false,
                        ErrorMessage = "Incorrect input data."
                    }, JsonRequestBehavior.AllowGet));
                }

                Data = new InputModel
                {
                    A  = model.ManualInput.A,
                    C  = model.ManualInput.C,
                    M  = model.ManualInput.M,
                    X0 = model.ManualInput.X0
                };
            }

            PageSize          = model.OutputSize;
            GeneratingResults = GeneratorService.GenerateSequence(Data);

            return(Json(new
            {
                Success = true,
                Period = GeneratingResults.Period,
                PagesCount = (GeneratingResults.Period + 1) % PageSize == 0 ?
                             (GeneratingResults.Period + 1) / PageSize :
                             (GeneratingResults.Period + 1) / PageSize + 1
            }, JsonRequestBehavior.AllowGet));
        }
示例#3
0
        private static void TestcaseParse(string code, params string[] expectedEnumValues)
        {
            var reader       = ReaderFromCode(code);
            var parser       = new EnumValuesParser(null, -1);
            var actualValues = new List <FieldInfo>();

            while (!reader.IsEndOfLines)
            {
                if (parser.TryParse(reader, out var values))
                {
                    actualValues.AddRange(values);
                }
                else
                {
                    reader.TryRead(out var _);
                }
            }

            actualValues.Select(v => v.Name).IsCollection(expectedEnumValues);
        }
示例#4
0
        static void GetPeriod(ValuesA a, ValuesC c, ValuesM m, ValuesX0 x0)
        {
            var generator = new RandomSequenceGenerator
                            (
                EnumValuesParser.GetValueA(a),
                EnumValuesParser.GetValueC(c),
                EnumValuesParser.GetValueM(m),
                EnumValuesParser.GetValueX0(x0)
                            );

            //FileWriter.WritePartOfSequenceToFile(filePath, generator.GetNextSequencePart());

            while (!generator.IsEnded)
            {
                generator.GetNextSequencePart();
            }

            Console.WriteLine($"{count++}) Period: {generator.Period}");
            Console.WriteLine();
        }