<commit_before>class Direct {
	versor;
	constructor(origin, destiny = undefined){
        if(!origin) throw new Error("Origin of versor or degrees must be provided.");
		if(destiny === undefined){ //Means I've got degrees
			var angle = origin * Math.PI / 180;
			this.versor = { x: Math.cos(angle), y: Math.sin(angle) };
		} else if (!origin.x) { //Means I've got numbers
			this.versor = Direct.versorFor({ x: origin, y: destiny });
		} else { //Means i've got points or objects with x and y
			this.versor = Direct.versorFor({ x: destiny.x - origin.x, y: destiny.y - origin.y });
		}
	}

	static versorFor(vector){
		var norm = Math.sqrt(Math.pow(vector.x,2) + Math.pow(vector.y,2));
		return { x: vector.x/norm, y: vector.y/norm };
	}

	destinyFrom(point, distance){
		return {x: point.x + (this.versor.x * distance),
				y: point.y + (this.versor.y * distance) }
	}
}

/**<commit_msg>Arreglado chequeo parámetros de Direct, que metía bug<commit_after>class Direct {
	versor;
	constructor(origin, destiny = undefined){
        if(!origin && origin !== 0) throw new Error("Origin of versor or degrees must be provided.");
		if(destiny === undefined){ //Means I've got degrees
			var angle = origin * Math.PI / 180;
			this.versor = { x: Math.cos(angle), y: Math.sin(angle) };
		} else if (!origin.x) { //Means I've got numbers
			this.versor = Direct.versorFor({ x: origin, y: destiny });
		} else { //Means i've got points or objects with x and y
			this.versor = Direct.versorFor({ x: destiny.x - origin.x, y: destiny.y - origin.y });
		}
	}

	static versorFor(vector){
		var norm = Math.sqrt(Math.pow(vector.x,2) + Math.pow(vector.y,2));
		return { x: vector.x/norm, y: vector.y/norm };
	}

	destinyFrom(point, distance){
		return {x: point.x + (this.versor.x * distance),
				y: point.y + (this.versor.y * distance) }
	}
}

/**
{'fraction_non_alphanumeric': 0.16575790621592149, 'fraction_numerical': 0.0059978189749182115, 'mean_word_length': 3.307511737089202, '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': '3601290', 'n_tokens_mistral': 713, 'n_tokens_neox': 651, 'n_words': 183}