public void BirthDate_Method()
    {
      Assert.Throws<ArgumentNullException>(() => IDeputyInfoExtensions.BirthDate<IDeputyInfo>(null));

      Assert.Throws<ArgumentNullException>(() => ((IEnumerable<IDeputyInfo>) null).BirthDate());

      Assert.False(Enumerable.Empty<IDeputyInfo>().BirthDate().Any());

      var date = new DateTime(2000, 1, 1);

      var first = new DeputyInfo { BirthDate = DateTime.MinValue };
      var second = new DeputyInfo { BirthDate = date };
      var third = new DeputyInfo { BirthDate = DateTime.MaxValue };

      var deputies = new[] { null, first, second, third };
      Assert.True(deputies.BirthDate(date).SequenceEqual(new[] { second, third }));
      Assert.True(deputies.BirthDate(null, date).SequenceEqual(new[] { first, second }));
      Assert.True(deputies.BirthDate(DateTime.MinValue, DateTime.MaxValue).SequenceEqual(new[] { first, second, third }));
    }
    public void birth_date_enumerable()
    {
      Assert.Throws<ArgumentNullException>(() => ((IEnumerable<Person>)null).BirthDate());

      var people = new[] { null, new Person(), new Person { BirthDate = new DateTime(2000, 1, 1) }, new Person { BirthDate = new DateTime(2000, 1, 2) } };
      Assert.Equal(3, people.BirthDate().Count());
      Assert.Equal(2, people.BirthDate(new DateTime(1999, 1, 31)).Count());
      Assert.Empty(people.BirthDate(new DateTime(2000, 1, 3)));
      Assert.Equal(1, people.BirthDate(new DateTime(1999, 1, 31), new DateTime(2000, 1, 1)).Count());
      Assert.Equal(2, people.BirthDate(new DateTime(2000, 1, 1), new DateTime(2000, 1, 2)).Count());
      Assert.Empty(people.BirthDate(to: new DateTime(1999, 12, 31)));
      Assert.Equal(1, people.BirthDate(to: new DateTime(2000, 1, 1)).Count());
      Assert.Equal(2, people.BirthDate(to: new DateTime(2000, 1, 3)).Count());
    }