<commit_before>var tests = {
	"basic": {
		"No template": ["test template", {}, "test template"],
		"Single brackets": ["{test}", {}, "{test}"],
		"HTML escape": ["{{data}}", {data:"this /& that &#38;"}, "this &#47;&#38; that &#38;"],
		"HTML unescape": ["{{&data}}", {data:"& \" < >"}, "& \" < >"],
		"Empty data": ["<p>{{data}}</p>", {}, "<p></p>"],
		"Integer": ["int {{data}}", {data:69}, "int 69"],
		"Float": ["float {{data}}", {data:3.141590}, "float 3.14159"],
		"Dots": ["my name is {{person.first}} {{person.middle.initial}} {{person.last}}", {person: {first: "H", middle: {initial: "A"}, last: "L"}}, "my name is <NAME> L"],
		
		"Broken Dots": ["{{a.b.c}}", {a: {}}, "", false]
	},
	"conditionals": {
		"If else": ["{{? email}}email:{{email}}{{?? false}}else{{?}}", {email: "<EMAIL>"}, "email:<EMAIL>"]
	},
	"iterators": {
		"Simple": ["{{~ loop}}{{this}}{{~}}", {loop: ["a", "b", "c"]}, "abc"],
		"Simple dot": ["{{~ loop}}{{.}}{{~}}", {loop: ["a", "b", "c"]}, "abc"],
		"Index": ["{{~ loop}}{{.key}}{{~}}", {loop: ["a", "b", "c"]}, "012"],
		"Array of objects": ["{{~ loop}}{{name}}{{~}}", 
			{loop: [
				{name:"a"},
				{name:"b"},
				{nope:"c"}
			]}, "ab"],
		"Object keys": ["{{~ obj}}{{this.key}}:{{this}},{{~}}", {obj: { name:"a", id:"b", yep:"c" }}, "name:a,id:b,yep:c,"],
		"Nested": ["{{~ loop}}{{~ inner}}{{this}}{{~}}{{~}}", 
			{loop: [
				{inner:["a", "b"]},
				{inner:["c", "d", "e"]},
				{inner:["f"]},
				{inner:[]},
				{nope:["g"]}]}, "abcdef"],
		"Parent context": ["{{~ loop}}{{../name}}-{{this}}.{{~}}", {name: "test", loop: ["a", "b", "c"]}, "test-a.test-b.test-c."],
		"Nested parent": ["{{~ l1}}{{~ l2}}{{~ l3}}{{../../../a}}{{../../b}}{{.}} {{~}}{{~}}{{~}}", 
			{a: "a", l1: [
				{b: "b", l2: [ {l3: [1, 2]} ]},
				{b: "bb", l2: [ {l3: [3]}, {l3: [4, 5]} ]}
			]},
			"ab1 ab2 abb3 abb4 abb5 "
		]
	}
};

function testCase(cases){
	return function(){
		for(var cn in cases){
			var c = cases[cn];<commit_msg>Update tests.js<commit_after>var tests = {
	"basic": {
		"No template": ["test template", {}, "test template"],
		"Single brackets": ["{test}", {}, "{test}"],
		"HTML escape": ["{{data}}", {data:"this /& that &#38;"}, "this &#47;&#38; that &#38;"],
		"HTML unescape": ["{{&data}}", {data:"& \" < >"}, "& \" < >"],
		"Empty data": ["<p>{{data}}</p>", {}, "<p></p>"],
		"Integer": ["int {{data}}", {data:69}, "int 69"],
		"Float": ["float {{data}}", {data:3.141590}, "float 3.14159"],
		"Dots": ["my name is {{person.first}} {{person.middle.initial}} {{person.last}}", {person: {first: "H", middle: {initial: "A"}, last: "L"}}, "my name is <NAME>"],
		
		"Broken Dots": ["{{a.b.c}}", {a: {}}, "", false]
	},
	"conditionals": {
		"If else": ["{{? email}}email:{{email}}{{?? false}}else{{?}}", {email: "<EMAIL>"}, "email:<EMAIL>"]
	},
	"iterators": {
		"Simple": ["{{~ loop}}{{this}}{{~}}", {loop: ["a", "b", "c"]}, "abc"],
		"Simple dot": ["{{~ loop}}{{.}}{{~}}", {loop: ["a", "b", "c"]}, "abc"],
		"Index": ["{{~ loop}}{{.key}}{{~}}", {loop: ["a", "b", "c"]}, "012"],
		"Array of objects": ["{{~ loop}}{{name}}{{~}}", 
			{loop: [
				{name:"a"},
				{name:"b"},
				{nope:"c"}
			]}, "ab"],
		"Nested": ["{{~ loop}}{{~ inner}}{{this}}{{~}}{{~}}", 
			{loop: [
				{inner:["a", "b"]},
				{inner:["c", "d", "e"]},
				{inner:["f"]},
				{inner:[]},
				{nope:["g"]}]}, "abcdef"],
		"Parent context": ["{{~ loop}}{{../name}}-{{this}}.{{~}}", {name: "test", loop: ["a", "b", "c"]}, "test-a.test-b.test-c."],
		"Nested parent": ["{{~ l1}}{{~ l2}}{{~ l3}}{{../../../a}}{{../../b}}{{.}} {{~}}{{~}}{{~}}", 
			{a: "a", l1: [
				{b: "b", l2: [ {l3: [1, 2]} ]},
				{b: "bb", l2: [ {l3: [3]}, {l3: [4, 5]} ]}
			]},
			"ab1 ab2 abb3 abb4 abb5 "
		]
	}
};

function testCase(cases){
	return function(){
		for(var cn in cases){
			var c = cases[cn];
{'fraction_non_alphanumeric': 0.40737812911725957, 'fraction_numerical': 0.02476943346508564, 'mean_word_length': 4.074866310160428, 'pattern_counts': {'":': 41, '<': 21, '<?xml version=': 0, '>': 21, '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': '53660', 'n_tokens_mistral': 1836, 'n_tokens_neox': 1646, 'n_words': 345}