<commit_before>/**************************************************************************************
 nexl-engine-system-function

 Copyright (c) 2016-2017 <NAME>
 License : Apache 2.0

 Set of utility functions to enhance nexl expressions functionality
 **************************************************************************************/

const j79 = require('j79-utils');

///////////////////////////////////////////////////////////////////////////////////////////
// helper functions
///////////////////////////////////////////////////////////////////////////////////////////

// replace all in array or string
function replaceAll4Array(entity, searchItem, replace) {
	for (var index = 0; index < entity.length; index++) {
		if (entity[index] === searchItem) {
			entity[index] = replace;
		}
	}

	return entity;
}


///////////////////////////////////////////////////////////////////////////////////////////
// functions to assign to context
///////////////////////////////////////////////////////////////////////////////////////////

// is string or array contains value
function isContains(entity, item) {
	if (j79.isArray(entity) || j79.isString(entity)) {
		return entity.indexOf(item) >= 0;
	}

	return entity;
}

// replaces items in array or string
function replaceAll(entity, searchItem, replace) {
	if (j79.isArray(entity)) {
		return replaceAll4Array(entity, searchItem, replace);
	}

	if (j79.isString(entity)) {
		return entity.replace(new RegExp(searchItem, 'g'), replace);
	}

	return entity;
}

function test() {
	return 'Zhenya+';
}

function not(param) {
	if (j79.isBool(param)) {
		return !param;
	} else {
		return param;
	}
}

function ifif(condition, thenIf, elseIf) {
	if (j79.isBool(condition)) {
		return condition ? thenIf : elseIf;
	}
}

///////////////////////////////////////////////////////////////////////////////////////////
// assigning system functions to nexl context
///////////////////////////////////////////////////////////////////////////////////////////
module.exports.assign = function (context) {
	context.nexl.functions.system.test = test;
	context.nexl.functions.system.isContains = isContains;
	context.nexl.functions.system.replaceAll = replaceAll;
	context.nexl.functions.system.not = not;
	context.nexl.functions.system.if = ifif;
};<commit_msg>- added isEquals() function;<commit_after>/**************************************************************************************
 nexl-engine-system-function

 Copyright (c) 2016-2017 <NAME>
 License : Apache 2.0

 Set of utility functions to enhance nexl expressions functionality
 **************************************************************************************/

const j79 = require('j79-utils');

///////////////////////////////////////////////////////////////////////////////////////////
// helper functions
///////////////////////////////////////////////////////////////////////////////////////////

// replace all in array or string
function replaceAll4Array(entity, searchItem, replace) {
	for (var index = 0; index < entity.length; index++) {
		if (entity[index] === searchItem) {
			entity[index] = replace;
		}
	}

	return entity;
}


///////////////////////////////////////////////////////////////////////////////////////////
// functions to assign to context
///////////////////////////////////////////////////////////////////////////////////////////

// is string or array contains value
function isContains(entity, item) {
	if (j79.isArray(entity) || j79.isString(entity)) {
		return entity.indexOf(item) >= 0;
	}

	return entity;
}

// replaces items in array or string
function replaceAll(entity, searchItem, replace) {
	if (j79.isArray(entity)) {
		return replaceAll4Array(entity, searchItem, replace);
	}

	if (j79.isString(entity)) {
		return entity.replace(new RegExp(searchItem, 'g'), replace);
	}

	return entity;
}

function test() {
	return 'Zhenya+';
}

function not(param) {
	if (j79.isBool(param)) {
		return !param;
	} else {
		return param;
	}
}

function isEquals(entity1, entity2, thenIf, elseIf) {
	return entity1 === entity2 ? thenIf : elseIf;
}

///////////////////////////////////////////////////////////////////////////////////////////
// assigning system functions to nexl context
///////////////////////////////////////////////////////////////////////////////////////////
module.exports.assign = function (context) {
	context.nexl.functions.system.test = test;
	context.nexl.functions.system.isContains = isContains;
	context.nexl.functions.system.replaceAll = replaceAll;
	context.nexl.functions.system.not = not;
	context.nexl.functions.system.isEquals = isEquals;
};
{'fraction_non_alphanumeric': 0.39909051537462104, 'fraction_numerical': 0.013425725422260719, 'mean_word_length': 1.7043325526932085, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, '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': '2887905', 'n_tokens_mistral': 1148, 'n_tokens_neox': 1067, 'n_words': 275}