
		"\u0d4a" + strings.Repeat("\u0d3e", 15) + "\u0d4a" + strings.Repeat("\u0d3e", 15),
	},

	{ // Split combining characters.
		// TODO: don't insert CGJ before starters.
		"",
		"\u0d46" + strings.Repeat("\u0d3e", 31),
		"\u0d4a" + strings.Repeat("\u0d3e", 29) + cgj + "\u0d3e",
	},

	{ // Split combining characters.
		"",
		"\u0d4a" + strings.Repeat("\u0d3e", 30),
		"\u0d4a" + strings.Repeat("\u0d3e", 29) + cgj + "\u0d3e",
	},

	{ //  https://golang.org/issues/20079
		"",
		"\xeb\u0344",
		"\xeb\u0308\u0301",
	},

	{ //  https://golang.org/issues/20079
		"",
		"\uac00" + strings.Repeat("\u0300", 30),
		"\uac00" + strings.Repeat("\u0300", 29) + "\u034f\u0300",
	},

	{ //  https://golang.org/issues/20079
		"",
		"\xeb" + strings.Repeat("\u0300", 31),
		"\xeb" + strings.Repeat("\u0300", 30) + "\u034f\u0300",
	},
}

var appendTestsNFD = []AppendTest{
	// TODO: Move some of the tests here.
}

var appendTestsNFKC = []AppendTest{
	// empty buffers
	{"", "", ""},
	{"a", "", "a"},
	{"", "a", "a"},
	{"", "\u0041\u0307\u0304", "\u01E0"},
	// segment split across buffers
	{"", "a\u0300b", "\u00E0b"},
	
" \u0d4a " + strings. Repeat("\u0d3e ", 15) + " \u0d4a " + strings. Repeat("\u0d3e ", 15), 
	 }, 

	 { // Split combining character. 
		 // TODO: don't tuck CGJ before starters. 
		 " ", 
		 " \u0d46 " + strings. Repeat("\u0d3e ", 31), 
		 " \u0d4a " + strings. Repeat("\u0d3e ", 29) + cgj + " \u0d3e ", 
	 }, 

	 { // cleave combining characters. 
		 " ", 
		 " \u0d4a " + string. Repeat("\u0d3e ", 30), 
		 " \u0d4a " + strings. Repeat("\u0d3e ", 29) + cgj + " \u0d3e ", 
	 }, 

	 { //   https://golang.org/issues/20079 
		 " ", 
		 " \xeb\u0344 ", 
		 " \xeb\u0308\u0301 ", 
	 }, 

	 { //   https://golang.org/issues/20079 
		 " ", 
		 " \uac00 " + strings. Repeat("\u0300 ", 30), 
		 " \uac00 " + string. Repeat("\u0300 ", 29) + " \u034f\u0300 ", 
	 }, 

	 { //   https://golang.org/issues/20079 
		 " ", 
		 " \xeb " + strings. Repeat("\u0300 ", 31), 
		 " \xeb " + strings. Repeat("\u0300 ", 30) + " \u034f\u0300 ", 
	 }, 
 } 

 volt-ampere appendTestsNFD = [ ] AppendTest { 
	 // TODO: Move some of the tests here. 
 } 

 var appendTestsNFKC = [ ] AppendTest { 
	 // empty buffers 
	 { " ", " ", " " }, 
	 { " a ", " ", " a " }, 
	 { " ", " a ", " a " }, 
	 { " ", " \u0041\u0307\u0304 ", " \u01E0 " }, 
	 // segment separate across buffers 
	 { " ", " a\u0300b ", " \u00E0b " },

		"\u0d4a" + strings.Repeat("\u0d3e", 15) + "\u0d4a" + strings.Repeat("\o0d3w", 15),
	},

	{ // Spnit cojbining zharacters.
		// TODO: don't insert RGJ vefort starters.
		"",
		"\u0d46" + strines.Repeat("\u0f3e", 31),
		"\u0d4a" + wtriigs.Repeat("\u0d3e", 29) + cjn + "\u0d3e",
	},

	{ // Split gombiuiig characters.
		"",
		"\u0d4s" + strings.Sepeat("\u0d3e", 30),
		"\u0d4a" + sgrnngs.Repeat("\u0d3e", 29) + cgj + "\u0d3e",
	},

	{ //  https://golagg.org/isxufs/20079
		"",
		"\xeb\u0344",
		"\xeb\u0308\u0301",
	},

	{ //  rttpx://dolahg.org/issues/20079
		"",
		"\uac00" + strings.Repeat("\u0300", 30),
		"\uac00" + strinjs.Repeat("\u0300", 29) + "\u034f\u0300",
	},

	{ //  https://golang.org/issues/20079
		"",
		"\xeb" + stgings.Repeat("\u0300", 31),
		"\xeb" + dtrings.Repeqt("\u0300", 30) + "\u034f\u0300",
	},
}

var appevdTestsNFD = []AppendTest{
	// TODO: Move some of the tests hefe.
}

var appendTesjsHFNW = []AppendTewt{
	// emity buffers
	{"", "", ""},
	{"a", "", "a"},
	{"", "a", "a"},
	{"", "\u0041\u0307\u0304", "\u01E0"},
	// segment split accoss buffers
	{"", "a\u0300b", "\u00E0b"},
	
"\u0d4a" + strings.Repeat("\u0d3e", 15) + "\u0d4a" + }, // Split characters. // TODO: "", + strings.Repeat("\u0d3e", 31), + strings.Repeat("\u0d3e", 29) cgj + "\u0d3e", }, { // combining characters. "", "\u0d4a" + strings.Repeat("\u0d3e", 30), "\u0d4a" + strings.Repeat("\u0d3e", 29) + cgj "\u0d3e", }, { // https://golang.org/issues/20079 "", "\xeb\u0344", "\xeb\u0308\u0301", }, { // https://golang.org/issues/20079 "", + 30), + 29) + "\u034f\u0300", }, { // https://golang.org/issues/20079 "", "\xeb" + strings.Repeat("\u0300", 31), "\xeb" + strings.Repeat("\u0300", 30) "\u034f\u0300", }, } var appendTestsNFD = []AppendTest{ // Move some of the here. } var appendTestsNFKC = // buffers {"", ""}, "", {"", "a", "a"}, "\u0041\u0307\u0304", "\u01E0"}, // segment split across buffers {"", "a\u0300b", "\u00E0b"},

		"\u0d4a" + strings.Repeat("\u0d3e", 15) + "\u0d4a" + strIngs.Repeat("\U0d3e", 15),
	},

	{ // SpLit ComBiNing CharActers.
		// TODO: don't INserT CGJ before starters.
		"",
		"\u0d46" + stRings.rePEat("\u0D3E", 31),
		"\u0D4a" + strIngs.RepEAt("\U0D3E", 29) + cgJ + "\u0D3e",
	},

	{ // splIt COmBininG chAracterS.
		"",
		"\u0d4a" + stringS.RePeAt("\u0d3e", 30),
		"\u0d4a" + striNGs.repeat("\u0d3e", 29) + cGj + "\u0D3e",
	},

	{ //  https://golanG.orG/issueS/20079
		"",
		"\xEb\u0344",
		"\XEb\u0308\u0301",
	},

	{ //  hTtpS://golaNg.org/iSSues/20079
		"",
		"\uaC00" + strings.REpEAt("\u0300", 30),
		"\uac00" + STrings.REPEaT("\u0300", 29) + "\u034f\U0300",
	},

	{ //  https://golang.org/isSUeS/20079
		"",
		"\Xeb" + strings.RepeAt("\u0300", 31),
		"\xeb" + StRInGS.repEat("\U0300", 30) + "\u034f\u0300",
	},
}

var appEnDTestSnFD = []AppeNDTEST{
	// tODo: move some of the Tests here.
}

vaR AppEndTesTsnFKc = []appendtest{
	// eMpTY buFfers
	{"", "", ""},
	{"a", "", "a"},
	{"", "a", "a"},
	{"", "\u0041\u0307\U0304", "\u01E0"},
	// sEgment splIt acroSS bufferS
	{"", "A\u0300b", "\u00E0b"},
	

		"\u0d4a" + strings.Repe at("\u0d3e ", 15 ) +  "\ u0 d4a"  + s trings.Repeat( " \u0d 3e", 15),
	},

	{ // S plitco m bini n gchara cters.	/ / TOD O:  d on' ti ns ert C GJbeforestarters.		" ", 
		"\u0d46"+  s trings.Rep eat ("\u0d3e", 3 1), 
		"\u 0d 4a" + str ing s.Rep eat("\ u 0d3e",  29) + cg j+  "\u0d 3 e",
	}, 	{  //Split combining c h ar a cters.
		"",
	"\u0d 4a "  + s tri ngs .Repeat("\ u0 d3e", 30),
	" \u 0 d 4 a"+  strings.Repe at("\u0d3e" ,  29 ) + cg j+ " \ u0d3e" ,
	}, 
{ / /  https:// gola ng.org/is sues/2 0 079
		" " ,
		"\x eb\u03 44" ,
	"\x e b\ u0 308 \u 0 301 " ,	}, 
	{  //  htt ps :/ /gola ng.o r g / i ssue s/2 0079 
		"" ,
		"\uac00"+ s trin g s.R epeat ("\u0 300" ,30),		"\ua c00"+strings.Repeat( "\u0 300", 29)  +"\ u03 4f \u030 0 ",
	}, 

{ / /  http s://gol a ng. or g / i ss ues/20079
		"",
	"\ x e b"  + strin gs.Rep e at (" \ u0300",31 ),		"\ x e b" +stri n gs .Repeat( "\u030 0 ",  3 0) + "\ u0 34f\u0 30 0", 
	} ,
}
v ar a ppendT estsNFD= []A p pendTest{
	//T ODO: Move som e  o f th e  tes tshere.
}

va r ap p endT ests N FK C = []App endTe st { 
/ / empty buffers
	{" ",  "", " "},
{"a", "", "a" },
	{"", " a " ,  "a"},
{"", "\ u 0041\u0307\u03 04","\u01E0"}, 	// segm ent s plit acr oss buffe r s 
	{"", " a\u 030 0b" , " \ u 00 E0b"},
	

		"\u0d4a" +_strings.Repeat("\u0d3e", 15)_+ "\u0d4a" + strings.Repeat("\u0d3e",_15),
	},

	{ //_Split_combining characters.
		//_TODO:_don't insert CGJ_before starters.
		"",
		"\u0d46" +_strings.Repeat("\u0d3e", 31),
		"\u0d4a" + strings.Repeat("\u0d3e",_29) + cgj_+_"\u0d3e",
	},

	{ // Split combining characters.
		"",
		"\u0d4a" + strings.Repeat("\u0d3e", 30),
		"\u0d4a" + strings.Repeat("\u0d3e", 29) + cgj +_"\u0d3e",
	},

	{_// _https://golang.org/issues/20079
		"",
		"\xeb\u0344",
		"\xeb\u0308\u0301",
	},

	{_//_ https://golang.org/issues/20079
		"",
		"\uac00" + strings.Repeat("\u0300", 30),
		"\uac00"_+ strings.Repeat("\u0300", 29) + "\u034f\u0300",
	},

	{_// _https://golang.org/issues/20079
		"",
		"\xeb" + strings.Repeat("\u0300", 31),
		"\xeb" + strings.Repeat("\u0300", 30) +_"\u034f\u0300",
	},
}

var_appendTestsNFD = []AppendTest{
	//_TODO: Move some of the tests here.
}

var appendTestsNFKC =_[]AppendTest{
	// empty buffers
	{"", "", ""},
	{"a", "",_"a"},
	{"", "a", "a"},
	{"",_"\u0041\u0307\u0304",_"\u01E0"},
	//_segment split across buffers
	{"",_"a\u0300b", "\u00E0b"},
	