CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
components.js77 linesDownload Raw Back to test
1import { emojiComponents } from "../data.js";2import { getEmojiSequenceKeyword } from "../format.js";3/**4* Map components from test data5*/6function mapEmojiTestDataComponents(testSequences) {7	const results = {8		converted: /* @__PURE__ */ new Map(),9		items: /* @__PURE__ */ new Map(),10		names: /* @__PURE__ */ new Map(),11		types: {},12		keywords: {}13	};14	for (const key in emojiComponents) {15		const type = key;16		const range = emojiComponents[type];17		for (let number = range[0]; number < range[1]; number++) {18			const keyword = getEmojiSequenceKeyword([number]);19			const item = testSequences[keyword];20			if (!item) throw new Error(`Missing emoji component in test sequence: "${keyword}"`);21			results.converted.set(number, keyword);22			results.items.set(number, item);23			results.items.set(keyword, item);24			const name = item.name;25			results.names.set(number, name);26			results.names.set(keyword, name);27			results.types[name] = type;28			results.keywords[name] = keyword;29		}30	}31	return results;32}33/**34* Convert to string35*/36function emojiSequenceWithComponentsToString(sequence) {37	return sequence.map((item) => typeof item === "number" ? item.toString(16) : item).join("-");38}39/**40* Find variations in sequence41*/42function findEmojiComponentsInSequence(sequence) {43	const components = [];44	for (let index = 0; index < sequence.length; index++) {45		const code = sequence[index];46		for (const key in emojiComponents) {47			const type = key;48			const range = emojiComponents[type];49			if (code >= range[0] && code < range[1]) {50				components.push({51					index,52					type53				});54				break;55			}56		}57	}58	return components;59}60/**61* Replace components in sequence62*/63function replaceEmojiComponentsInCombinedSequence(sequence, values) {64	const indexes = {65		"hair-style": 0,66		"skin-tone": 067	};68	return sequence.map((item) => {69		if (typeof item === "number") return item;70		const index = indexes[item]++;71		const list = values[item];72		if (!list || !list.length) throw new Error(`Cannot replace ${item}: no valid values provided`);73		return list[index >= list.length ? list.length - 1 : index];74	});75}76export { emojiSequenceWithComponentsToString, findEmojiComponentsInSequence, mapEmojiTestDataComponents, replaceEmojiComponentsInCombinedSequence };77 
basant307/AI_Governance_Project · CoolFace