Esempio n. 1
0
        public void GroupConsecutiveElementsWhileWorks()
        {
            var groups = new Group[] {
                new NumGroup()
                {
                    Value = 1
                },
                new StringGroup()
                {
                    Value = "ha"
                },
                new NumGroup()
                {
                    Value = 3
                },
                new StringGroup()
                {
                    Value = "ha"
                },
                new StringGroup()
                {
                    Value = "ha"
                }
            };
            var result = GroupGroup.GroupConsecutiveElementsWhile(groups,
                                                                  (a, b) => a.GetType() == b.GetType());

            result.Should().BeEquivalentTo(new Group[] {
                new NumGroup()
                {
                    Value = 1
                },
                new StringGroup()
                {
                    Value = "ha"
                },
                new NumGroup()
                {
                    Value = 3
                },
                new GroupGroup()
                {
                    Groups = new Group[] {
                        new StringGroup()
                        {
                            Value = "ha"
                        },
                        new StringGroup()
                        {
                            Value = "ha"
                        }
                    }
                }
            }, opts => opts.RespectingRuntimeTypes().WithStrictOrdering());
        }
Esempio n. 2
0
        public void GroupConsecutiveElementsContiguous()
        {
            var groups = new Group[] {
                new NumGroup()
                {
                    Value = 1
                },
                new NumGroup()
                {
                    Value = 2
                },
                new NumGroup()
                {
                    Value = 3
                },
                new NumGroup()
                {
                    Value = 10
                },
                new NumGroup()
                {
                    Value = 11
                },
                new NumGroup()
                {
                    Value = 12
                },
            };
            var result = GroupGroup.GroupConsecutiveElementsWhile(groups,
                                                                  (a, b) => ((NumGroup)a).Value - 1 == ((NumGroup)b).Value);

            result.Should().BeEquivalentTo(new Group[] {
                new GroupGroup()
                {
                    Groups = new Group[] {
                        new NumGroup {
                            Value = 1
                        },
                        new NumGroup {
                            Value = 2
                        },
                        new NumGroup {
                            Value = 3
                        }
                    }
                },
                new GroupGroup()
                {
                    Groups = new Group[] {
                        new NumGroup()
                        {
                            Value = 10
                        },
                        new NumGroup()
                        {
                            Value = 11
                        },
                        new NumGroup()
                        {
                            Value = 12
                        }
                    }
                }
            }, opts => opts.RespectingRuntimeTypes().WithStrictOrdering());
        }