<commit_before>using System;

namespace Takenet.Elephant.Tests
{
    public class Item
    {
        public string StringProperty { get; set; }

        public int IntegerProperty { get; set; }

        public Guid GuidProperty { get; set; }

        public Uri UriProperty { get; set; }

        public DateTime DateProperty { get; set; }

        public override string ToString()
        {
            return $"{StringProperty};{IntegerProperty};{GuidProperty};{UriProperty};{DateProperty}";
        }

        public static Item Parse(string s)
        {
            if (s == null) throw new ArgumentNullException(nameof(s));

            var values = s.Split(';');
            return new Item
            {
                StringProperty = values[0],
                IntegerProperty = int.Parse(values[1]),
                GuidProperty = Guid.Parse(values[2]),
                UriProperty = new Uri(values[3]),
                DateProperty = DateTime.Parse(values[4])
            };
        }

        public override bool Equals(object obj)
        {
            if (ReferenceEquals(null, obj)) return false;
            if (ReferenceEquals(this, obj)) return true;
            if (obj.GetType() != this.GetType()) return false;
            return Equals((Item) obj);
        }

        protected bool Equals(Item other)
        {
            return string.Equals(StringProperty, other.StringProperty) && 
                IntegerProperty == other.IntegerProperty && 
                GuidProperty.Equals(other.GuidProperty) &&
                UriProperty.Equals(other.UriProperty);
        }

        public override int GetHashCode()
        {
            unchecked
            {
                var hashCode = (StringProperty != null ? StringProperty.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ IntegerProperty;
                hashCode = (hashCode * 397) ^ GuidProperty.GetHashCode();
                hashCode = (hashCode * 397) ^ UriProperty.GetHashCode();
                hashCode = (hashCode * 397) ^ DateProperty.GetHashCode();
                return hashCode;
            }
        }
    }
}<commit_msg>Added datetime to the equality comparer<commit_after>using System;

namespace Takenet.Elephant.Tests
{
    public class Item
    {
        public string StringProperty { get; set; }

        public int IntegerProperty { get; set; }

        public Guid GuidProperty { get; set; }

        public Uri UriProperty { get; set; }

        public DateTime DateProperty { get; set; }

        public override string ToString()
        {
            return $"{StringProperty};{IntegerProperty};{GuidProperty};{UriProperty};{DateProperty}";
        }

        public static Item Parse(string s)
        {
            if (s == null) throw new ArgumentNullException(nameof(s));

            var values = s.Split(';');
            return new Item
            {
                StringProperty = values[0],
                IntegerProperty = int.Parse(values[1]),
                GuidProperty = Guid.Parse(values[2]),
                UriProperty = new Uri(values[3]),
                DateProperty = DateTime.Parse(values[4])
            };
        }

        public override bool Equals(object obj)
        {
            if (ReferenceEquals(null, obj)) return false;
            if (ReferenceEquals(this, obj)) return true;
            if (obj.GetType() != this.GetType()) return false;
            return Equals((Item) obj);
        }

        protected bool Equals(Item other)
        {
            return string.Equals(StringProperty, other.StringProperty) &&
                   IntegerProperty == other.IntegerProperty &&
                   GuidProperty.Equals(other.GuidProperty) &&
                   UriProperty.Equals(other.UriProperty) &&
                   DateProperty.ToLongDateString().Equals(other.DateProperty.ToLongDateString());
        }

        public override int GetHashCode()
        {
            unchecked
            {
                var hashCode = (StringProperty != null ? StringProperty.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ IntegerProperty;
                hashCode = (hashCode * 397) ^ GuidProperty.GetHashCode();
                hashCode = (hashCode * 397) ^ UriProperty.GetHashCode();
                hashCode = (hashCode * 397) ^ DateProperty.ToLongDateString().GetHashCode();
                return hashCode;
            }
        }
    }
}
{'fraction_non_alphanumeric': 0.10094850948509485, 'fraction_numerical': 0.008130081300813009, 'mean_word_length': 1.7698561601000626, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5881046', 'n_tokens_mistral': 1176, 'n_tokens_neox': 1069, 'n_words': 264}