<commit_before>using System;

namespace RawNet
{
    public class iPoint2D
    {
        public iPoint2D() { x = y = 0; }
        public iPoint2D(int a, int b) { x = a; y = b; }
        public iPoint2D(iPoint2D pt) { x = pt.x; y = pt.y; }
        static public iPoint2D operator -(iPoint2D a, iPoint2D b)
        {
            return new iPoint2D(a.x - b.x, a.y - b.y);
        }<commit_msg>Add missing method<commit_after>using System;

namespace RawNet
{
    public class iPoint2D
    {
        public override bool Equals(object obj)
        {
            if (obj is iPoint2D) return this == (iPoint2D)obj;
            return base.Equals(obj);
        }

        //TODO check
        public override int GetHashCode()
        {
            return x + y;
        }

        public iPoint2D() { x = y = 0; }
        public iPoint2D(int x, int y) { this.x = x; this.y = y; }
        public iPoint2D(iPoint2D pt) { x = pt.x; y = pt.y; }
        static public iPoint2D operator -(iPoint2D a, iPoint2D b)
        {
            return new iPoint2D(a.x - b.x, a.y - b.y);
        }
{'fraction_non_alphanumeric': 0.11245353159851301, 'fraction_numerical': 0.020446096654275093, 'mean_word_length': 1.6592592592592592, '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': '4992729', 'n_tokens_mistral': 389, 'n_tokens_neox': 381, 'n_words': 109}