示例#1
0
        static IEnumerable <HashAnalysisResult> BenchmarkSymmetricalCases()
        {
            var manuals = (
                from a in MoreEnumerable.Generate(-5100, a => a + 5).TakeWhile(a => a < 5100)
                from b0 in MoreEnumerable.Generate(int.MaxValue, c => (int)(c * 0.95)).TakeWhile(c => c > 0)
                from sign in new[] { -1, 1 }
                let b = sign * b0
                        from swap in new[] { true, false }
                select new IntPairManual {
                A = swap ? a : b,
                B = swap ? b : a,
            }
                ).Distinct().ToArray();

            var valueObjects = manuals.Select(m => m.ToValueObject()).ToArray();
            var tuples       = manuals.Select(m => m.ToTuple()).ToArray();
            var structs      = manuals.Select(m => m.ToStruct()).ToArray();
            var anonymous    = manuals.Select(m =>
                                              new {
                m.A,
                m.B,
            }).ToArray();

            yield return(ProcessList(manuals));

            yield return(ProcessList(valueObjects));

            yield return(ProcessList(tuples));

            yield return(ProcessList(structs));

            yield return(ProcessList(anonymous));
        }
示例#2
0
 public void UnfoldIsLazy()
 {
     MoreEnumerable.Unfold(0, BreakingFunc.Of <int, (int, int)>(),
                           BreakingFunc.Of <(int, int), bool>(),
                           BreakingFunc.Of <(int, int), int>(),
                           BreakingFunc.Of <(int, int), int>());
 }
        public ProjectMapPopupViewData(Models.Project project, bool showDetailedInformation)
        {
            //Project = project;
            DisplayNameAsUrlBlankTarget = project.DisplayNameAsUrlBlankTarget;
            KeyPhoto           = project.KeyPhoto;
            Duration           = project.Duration;
            ProjectStage       = project.ProjectStage;
            ProjectType        = project.ProjectType;
            EstimatedTotalCost = project.EstimatedTotalCost.HasValue ? project.EstimatedTotalCost.ToStringCurrency() : "Unknown";
            var leadImplementerOrg =
                project.ProjectOrganizations.FirstOrDefault(po => po.RelationshipTypeID == 33);

            LeadImplementerOrganizationName =
                leadImplementerOrg != null?leadImplementerOrg.Organization.GetDisplayNameAsUrlBlankTarget() : new HtmlString(string.Empty);

            var dict = new Dictionary <Models.ClassificationSystem, string>();

            MoreEnumerable.ForEach(project.ProjectClassifications.Select(x => x.Classification.ClassificationSystem).Distinct(), x => dict.Add(x, string.Join(", ", project.ProjectClassifications.Select(y => y.Classification).Where(y => y.ClassificationSystem == x).Select(y => y.DisplayName).ToList())));
            ClassificationsBySystem = dict;

            ProjectDisplayName   = project.DisplayName;
            ProjectDetailUrl     = project.GetDetailUrl();
            FactSheetUrl         = project.GetFactSheetUrl();
            DetailLinkDescriptor = project.IsProposal() ? $"This {Models.FieldDefinition.Project.GetFieldDefinitionLabel()} is a proposal. For description and expected results, see the" : $"For {Models.FieldDefinition.Project.GetFieldDefinitionLabel()} information & results, see the";
            InitializeDisplayNames();
            TaxonomyLevel = MultiTenantHelpers.GetTaxonomyLevel();

            ShowDetailedInformation = showDetailedInformation;
        }
示例#4
0
            public void WithComparerReturnsMinimum()
            {
                using var strings = SampleData.Strings.AsTestingSequence();
                var minima = strings.MinBy(s => s.Length, Comparable <int> .DescendingOrderComparer);

                Assert.That(MoreEnumerable.First(minima), Is.EqualTo("hello"));
            }
示例#5
0
        static IEnumerable <HashAnalysisResult> BenchmarkNastyNestedCases()
        {
            var manuals = (
                from a in MoreEnumerable.Generate(-10000, a => a + 6).TakeWhile(a => a < 14100)
                from b0 in MoreEnumerable.Generate(int.MaxValue, c => (int)(c * 0.95)).TakeWhile(c => c > 0)
                from sign in new[] { -1, 1 }
                let b = sign * b0
                        select new NastyNestedManual {
                Nested = new NastyNestedManual {
                    A = b,
                    B = a,
                },
                A = a,
                B = b,
            }
                ).ToArray();

            var valueObjects = manuals.Select(m => m.ToValueObject()).ToArray();
            var tuples       = manuals.Select(m => m.ToTuple()).ToArray();
            var cs7tuples    = manuals.Select(m => m.ToCs7Tuple()).ToArray();

            yield return(ProcessList(manuals));

            yield return(ProcessList(valueObjects));

            yield return(ProcessList(tuples));

            yield return(ProcessList(cs7tuples));
        }
示例#6
0
            public void ReturnsMinimum()
            {
                using var strings = SampleData.Strings.AsTestingSequence();
                var minima = strings.MinBy(s => s.Length);

                Assert.That(MoreEnumerable.LastOrDefault(minima), Is.EqualTo("az"));
            }
示例#7
0
            public void WithEmptySourceWithComparerReturnsDefault()
            {
                using var strings = Enumerable.Empty <string>().AsTestingSequence();
                var minima = strings.MinBy(s => s.Length, Comparable <int> .DescendingOrderComparer);

                Assert.That(MoreEnumerable.LastOrDefault(minima), Is.Null);
            }
示例#8
0
        public void FillForwardWithFillSelectorButNullSequence()
        {
            var e = Assert.Throws <ArgumentNullException>(() =>
                                                          MoreEnumerable.FillForward <object>(null, _ => false, delegate { return(null); }));

            Assert.That(e.ParamName, Is.EqualTo("source"));
        }
示例#9
0
        private List <int> GetMarks(Vec center, int localityRadius)
        {
            var marks    = new List <int>();
            var mark     = new Dictionary <Vec, int>();
            var nextMark = 1;
            var cuboid   = new Cuboid(toFill.R).Intersect(new Cuboid(center, localityRadius));

            foreach (var p in cuboid.AllPoints())
            {
                if (p == center || filled[p])
                {
                    continue;
                }
                if (!mark.ContainsKey(p))
                {
                    mark[p] = nextMark;
                    var component = MoreEnumerable.TraverseDepthFirst(p, cur => cur.GetMNeighbours().Where(next => cuboid.Contains(next) && !filled[next] && !mark.ContainsKey(next)));
                    foreach (var componentItem in component)
                    {
                        mark[componentItem] = nextMark;
                    }
                    nextMark++;
                }
                marks.Add(mark[p]);
            }
            return(marks);
        }
示例#10
0
        public void TestNegativeMaxValueException()
        {
            const int maxValue = -10;

            Assert.Less(maxValue, 0);
            MoreEnumerable.Random(maxValue);
        }
示例#11
0
        public static Capture Expression(IEnumerable <string> names, Func <PList, EType> signature, Func <PList, string> compiletime, Func <PList, string> runtime = null)
        {
            var nameList = names.ToList();

            return(new Capture("Expressions", $"[ {string.Join(" ", nameList)} ]",
                               func => MoreEnumerable.ForEach(nameList, name => Expression(name, signature, compiletime, runtime).Interpret(func))));
        }
示例#12
0
        public void TestNullGeneratorException2()
        {
            const int maxValue = 10;

            Assert.Greater(maxValue, 0);
            MoreEnumerable.Random(null, maxValue);
        }
示例#13
0
        public object SolveGenerateByIndex()
        {
            // using MoreLinq GenerateByIndex
            var sum = MoreEnumerable.GenerateByIndex(x => (x % 3 == 0) || (x % 5 == 0) ? x : 0).Take(1000).Sum();

            return(sum);
        }
示例#14
0
        static IEnumerable <HashAnalysisResult> BenchmarkIntPairCases()
        {
            var manuals = (
                from a in MoreEnumerable.Generate(-8000, a => a + 4).TakeWhile(a => a < 8000)
                from b0 in MoreEnumerable.Generate(int.MaxValue, c => (int)(c * 0.95)).TakeWhile(c => c > 0)
                from sign in new[] { -1, 1 }
                let b = sign * b0
                        select new IntPairManual {
                A = a,
                B = b,
            }
                ).ToArray();

            var valueObjects = manuals.Select(m => m.ToValueObject()).ToArray();
            var tuples       = manuals.Select(m => m.ToTuple()).ToArray();
            var cs7tuples    = manuals.Select(m => m.ToCs7Tuple()).ToArray();
            var structs      = manuals.Select(m => m.ToStruct()).ToArray();
            var anonymous    = manuals.Select(m =>
                                              new {
                m.A,
                m.B,
            }).ToArray();

            yield return(ProcessList(manuals));

            yield return(ProcessList(valueObjects));

            yield return(ProcessList(tuples));

            yield return(ProcessList(cs7tuples));

            yield return(ProcessList(structs));

            yield return(ProcessList(anonymous));
        }
示例#15
0
        public IEnumerable <NeuralNetwork> BuildNetworks()
        {
            while (true)
            {
                var graph  = new AdjacencyGraph <INeuron, Connection>();
                var inputs = MoreEnumerable.GenerateByIndex(_ => new NeuronWithInput()).Take(_inputSize).ToArray();
                var mid    =
                    MoreEnumerable.GenerateByIndex(_ => new BasicNeuron(new ThFunction()))
                    .Take(_random.Next(_outputSize, _inputSize))
                    .ToArray();
                var outputs =
                    MoreEnumerable.GenerateByIndex(_ => new BasicNeuron(new ThFunction())).Take(_outputSize).ToArray();

                foreach (var i in inputs)
                {
                    foreach (var m in mid)
                    {
                        var weight = _random.NextDouble();
                        graph.AddVerticesAndEdge(new Connection(i, m, weight));
                    }
                }

                foreach (var m in mid)
                {
                    foreach (var o in outputs)
                    {
                        var weight = _random.NextDouble();
                        graph.AddVerticesAndEdge(new Connection(m, o, weight));
                    }
                }

                yield return(new NeuralNetwork(graph, inputs, outputs));
            }
        }
示例#16
0
        public WeeksViewModel(DateTimeOffset startDate, LocationHistory.Entry[] entries)
        {
            StartDate = startDate;
            EndDate   = startDate.AddDays(6);
            var dayNames = CultureInfo.CurrentCulture.DateTimeFormat.AbbreviatedDayNames;

            Entries = entries;
            Chart   = new BarChart
            {
                MaxValue              = 24,
                AnimationDuration     = TimeSpan.FromMilliseconds(300),
                ValueLabelOrientation = Orientation.Horizontal,
                LabelOrientation      = Orientation.Horizontal,
                Entries = MoreEnumerable.Sequence(0, 6).Select(x =>
                {
                    var day   = StartDate.AddDays(x);
                    var entry = entries.FirstOrDefault(e => e.Day == day) ??
                                new LocationHistory.Entry()
                    {
                        Day = day
                    };

                    var dayOfWeek = (int)entry.DayOfWeek;
                    return(new Entry(entry.HoursAtHome)
                    {
                        ValueLabel = entry.HoursAtHome.ToString(),
                        Label = dayNames[dayOfWeek],
                        Color = SKColor.Parse("#2196F3"),
                    });
                })
            };
        }
示例#17
0
 public void UnfoldIsLazy()
 {
     MoreEnumerable.Unfold(0, BreakingFunc.Of <int, Tuple <int, int> >(),
                           BreakingFunc.Of <Tuple <int, int>, bool>(),
                           BreakingFunc.Of <Tuple <int, int>, int>(),
                           BreakingFunc.Of <Tuple <int, int>, int>());
 }
示例#18
0
            public void WithComparerReturnsMaximumPerComparer()
            {
                using var strings = SampleData.Strings.AsTestingSequence();
                var maxima = strings.MaxBy(s => s.Length, Comparable <int> .DescendingOrderComparer);

                Assert.That(MoreEnumerable.LastOrDefault(maxima), Is.EqualTo("az"));
            }
示例#19
0
            public void WithEmptySourceReturnsDefault()
            {
                using var strings = Enumerable.Empty <string>().AsTestingSequence();
                var minima = strings.MinBy(s => s.Length);

                Assert.That(MoreEnumerable.LastOrDefault(minima), Is.Null);
            }
示例#20
0
            public void ReturnsMaximum()
            {
                using var strings = SampleData.Strings.AsTestingSequence();
                var maxima = strings.MaxBy(s => s.Length);

                Assert.That(MoreEnumerable.First(maxima), Is.EqualTo("hello"));
            }
示例#21
0
            public void ReturnsMinimum()
            {
                using var strings = SampleData.Strings.AsTestingSequence();
                var minima = MoreEnumerable.First(strings.MinBy(s => s.Length));

                Assert.That(minima, Is.EqualTo("ax"));
            }
示例#22
0
    	private void test()
		{
			DateTime startDate = DateTime.Now.AddDays(-29);
			DateTime endDate = DateTime.Now.AddDays(1);
			using (var dc = new DataContext())
			{
				//get database sales from 29 days ago at midnight to the end of today
				var salesForPeriod = dc.Orders.Where(b => b.OrderDateTime > startDate.Date  && b.OrderDateTime <= endDate.Date);
        
				var allDays = MoreEnumerable.GenerateByIndex(i => startDate.AddDays(i)).Take(30);
				var salesByDay = from s in salesForPeriod
							group s by s.OrderDateTime.Date into g
							select new {Day = g.Key, totalSales = g.Sum(x=>(decimal)x.OrderPrice};
				
				var query = from d in allDays
							join s in salesByDay on s.Day equals d
							select new {Day = s.Day , totalSales = (s != null) ? s.totalSales : 0m;
 
                foreach (var item in query)
                {
                    Response.Write("Date: " +item.Day.ToString() " Sales: " + String.Format("{0:0.00}", item.totalSales) + "<br>");
                }
 
			}
		}
    }
示例#23
0
        public void SequenceWithDescendingRangeDescendigStep(int start, int stop, int step)
        {
            var result       = MoreEnumerable.Sequence(start, stop, step);
            var expectations = Enumerable.Range(stop, start - stop + 1).Reverse().TakeEvery(Math.Abs(step));

            Assert.That(result, Is.EqualTo(expectations));
        }
示例#24
0
        public void SequenceWithDescendingRangeAscendingStep(int start, int stop, int step)
        {
            var result       = MoreEnumerable.Sequence(start, stop, step);
            var expectations = Enumerable.Empty <int>();

            Assert.That(result, Is.EqualTo(expectations));
        }
示例#25
0
            public void Solve()
            {
                var salt = ReadLine();

                void InitArrays()
                {
                    _mpValToIndexRepeating5 = Enumerable.Repeat(-1, 16).ToList();
                    _nextCheck = 0;
                    _md5Cache  = new List <byte[]>(23000);
                }

                InitArrays();

                WriteLine(MoreEnumerable
                          .Generate(0, i => i + 1)
                          .Where(n => IsKey(salt, n, false))
                          .Take(64)
                          .Last());

                InitArrays();
                Write(MoreEnumerable
                      .Generate(0, i => i + 1)
                      .Where(n => IsKey(salt, n, true))
                      .Take(64)
                      .Last());

                _md5Cache = null;                       // Free up this memory
            }
示例#26
0
        public void SequenceWithAscendingRangeAscendingStep(int start, int stop, int step)
        {
            var result       = MoreEnumerable.Sequence(start, stop, step);
            var expectations = Enumerable.Range(start, stop - start + 1).TakeEvery(step);

            Assert.That(result, Is.EqualTo(expectations));
        }
示例#27
0
        public void SequenceWithStartEqualsStop(int start, int stop, int?step)
        {
            var result = step.HasValue ? MoreEnumerable.Sequence(start, stop, step.Value)
                                       : MoreEnumerable.Sequence(start, stop);

            Assert.That(start, Is.EqualTo(result.Single()));
        }
示例#28
0
        public static void Main(string[] args)
        {
            //MoreLinq
            Console.WriteLine(MoreEnumerable.Random().First());
            //Newtonsoft
            Console.WriteLine(JObject.Parse(@"{""foo"":42}"));
            //Mathnet
            var x = Expr.Symbol("x");

            Console.WriteLine(Infix.Format(x + x));
            //DynamicExpresso
            Console.WriteLine(new Interpreter().Eval("2+2"));
            //NDesk.Options
            Console.WriteLine(new OptionSet {
                { "v", v => {} }
            }.Parse(new[] { "-v", "foo" })[0]);
            //System.Memory
            Console.WriteLine(new Span <int>(new[] { 42 })[0]);
            //System.Collections.Immutable
            Console.WriteLine(new[] { 12 }.ToImmutableArray()[0]);
            //Microsoft.Z3
            try {
                Console.WriteLine($"Z3: {Microsoft.Z3.Version.ToString()}");
            } catch (DllNotFoundException) {
                Console.WriteLine($"Warning, native Z3 library not detected");
            }
        }
示例#29
0
 public void FallbackIfEmptyWithNullSequence()
 {
     Assert.ThrowsArgumentNullException("source", () => MoreEnumerable.FallbackIfEmpty(null, 1));
     Assert.ThrowsArgumentNullException("source", () => MoreEnumerable.FallbackIfEmpty(null, 1, 2));
     Assert.ThrowsArgumentNullException("source", () => MoreEnumerable.FallbackIfEmpty(null, 1, 2, 3));
     Assert.ThrowsArgumentNullException("source", () => MoreEnumerable.FallbackIfEmpty(null, 1, 2, 3, 4));
     Assert.ThrowsArgumentNullException("source", () => MoreEnumerable.FallbackIfEmpty(null, 1, 2, 3, 4, 5));
 }
示例#30
0
        public void ConcatWithNullHead()
        {
            var    tail  = new[] { "second", "third" };
            string head  = null;
            var    whole = MoreEnumerable.Concat(head, tail);

            whole.AssertSequenceEqual(null, "second", "third");
        }