package net.northking.atp.element;

import static org.junit.Assert.assertTrue;

import com.alibaba.fastjson.JSON;
import net.northking.cctp.element.core.IExecuteContext;
import net.northking.cctp.element.core.Library;
import net.northking.cctp.element.core.annotation.Autowired;
import net.northking.cctp.element.core.keyword.KeywordArgument;
import net.northking.cctp.element.core.keyword.KeywordInfo;
import net.northking.cctp.element.scanner.JarLibraryScanner;
import net.northking.cctp.element.string.keywords.StringTools;
import net.northking.cctp.element.test.AbstractLibraryTest;
import net.northking.cctp.element.test.ParamsBuilder;
import net.northking.cctp.element.test.SampleExecuteContext;
import net.northking.cctp.element.test.junit.LibraryJUnit4ClassRunner;
import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
import org.junit.runner.RunWith;


import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

@RunWith(LibraryJUnit4ClassRunner.class)
public class StringLibraryTest extends AbstractLibraryTest {

	@Autowired
	private StringTools atpStringKeyword;

	//字符串小写转换
	@Test
	public void test() {
		System.out.println(new Date().getTime());
//		assertTrue("aaaaa".equals(atpStringKeyword.lowerCase("AAAAA")));
	}

	@Test
	public void scanTest(){
    	String saveName = "C:/work/testFile/tmp/NK.mobile-1.0.jar";
		try {
			//文件扫描-校验版本
			Library libraryInfo = JarLibraryScanner.scan(saveName);
			List<KeywordInfo> list = libraryInfo.getAllKeywords();
			for (KeywordInfo one : libraryInfo.getAllKeywords()) {
				for (KeywordArgument param : one.getKeywordArguments()) {
					if(!StringUtils.isEmpty(param.getEnumValues())){
						System.out.println(one.getKeywordName());
					}
				}
			}
			System.out.println("扫描成功：组件库名称为"+libraryInfo.getName());
		} catch (Exception e) {
			System.out.println("扫描失败"+e);
		}
	}

	//字符串大写转换
	@Test
	public void test2() throws Exception {
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("str", "aaa");
		Object result = this.library.runKeyword("upperCase", builder.build());
		assertTrue("AAA".equals(result.toString()));
		System.out.println(result);
		System.out.println(library.getChangeLog());
		System.out.println(JSON.toJSONString(library.getAllKeywords()));
	}

	//字符串去前后空格
	@Test
	public void trim1(){
//		atpStringKeyword.trim("        123sdff");
//		System.out.println(atpStringKeyword.trim("        123sdff"));
	}
	@Test
	public void trim() throws Exception{
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("str", "        aaa ");
		Object result = this.library.runKeyword("trim",builder.build());
		assertTrue("aaa".equals(result.toString()));
		System.out.println(result);
	}

	//字符串分割
	@Test
	public void split() throws Exception{
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("str", "helelo");
		builder.add("separator", "e");//以separator为分割点
		builder.add("max", "3");//数组的大小
		Object result = this.library.runKeyword("split",builder.build());
		System.out.println(result);
	}

	//字符串替换
	@Test
	public void  replace() throws Exception{
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("str", "AABBCC");
		builder.add("searchString", "A");
		builder.add("replacement", "B");
		builder.add("max", "-1");
		Object result = this.library.runKeyword("replace",builder.build());
		boolean equals = "BBBBCC".equals(result.toString());
		assertTrue(equals);
		System.out.println(result);
	}

	//字符串替换一次
	@Test
	public void replaceOnce() throws Exception{
//		atpStringKeyword.replaceOnce("AABBCC","A","B");
//		System.out.println(atpStringKeyword.replaceOnce("AABBCC","A","B"));
	}
	//字符串替换一次
	@Test
	public void replaceOnce1() throws Exception{
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("str", "AABBCC");
		builder.add("searchString", "A");
		builder.add("replacement", "B");
		Object result = this.library.runKeyword("replaceOnce",builder.build());
		System.out.println(result);
	}


	//除去输入字符
	@Test
	public void strip(){
//		atpStringKeyword.strip("AABBCC","A");
//		System.out.println(atpStringKeyword.strip("AABBCC","A"));
	}

	@Test
	public void strip2() throws Exception{
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("str", "AABBCC");
		builder.add("stripChars", "A");
		Object result = this.library.runKeyword("strip",builder.build());
		System.out.println(result);
	}

	// 开头除去输入字符
	@Test
	public void stripStart(){
//		atpStringKeyword.stripStart("AABBCC","A");
//		System.out.println(atpStringKeyword.stripStart("AABBCC","A"));
	}

	@Test
	public void  stripStart2() throws Exception{
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("str", "AABBCC");
		builder.add("stripChars", "A");
		Object result = this.library.runKeyword("stripStart",builder.build());
		System.out.println(result);
	}

	//结尾除去输入字符
	@Test
	public void stripEnd(){
//		atpStringKeyword.stripEnd("AABBCC","A");
//		System.out.println(atpStringKeyword.stripEnd("AABBCC","C"));
	}

	@Test
	public void   stripEnd2() throws Exception{
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("str", "AABBCC");
		builder.add("stripChars", "C");
		Object result = this.library.runKeyword("stripEnd",builder.build());
		System.out.println(result);
	}

	//字符串截取
	@Test
	public void substring(){
//		atpStringKeyword.substring("AABBCC",0,3);
//		System.out.println(atpStringKeyword.substring("AABBCC",0,3));
	}

	@Test
	public void   substring2() throws Exception{
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("str", "AABBCC");
		builder.add("start", "0");
		builder.add("end", "3");
		Object result = this.library.runKeyword("substring",builder.build());
		System.out.println(result);
	}

	//在XX字符串之前截取字符串
	@Test
	public void substringBefore(){
//		atpStringKeyword.substringBefore("ABC","B");
//		System.out.println(atpStringKeyword.substringBefore("ABC","B"));
	}

	@Test
	public void   substringBefore2() throws Exception{
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("str", "ABC");
		builder.add("separator", "B");
		Object result = this.library.runKeyword("substringBefore",builder.build());
		System.out.println(result);
	}

	//在XX字符串之后截取字符串
	@Test
	public void substringAfter(){
//		atpStringKeyword.substringAfter("ABCD","B");
//		System.out.println(atpStringKeyword.substringAfter("ABCD","B"));
	}

	@Test
	public void substringAfter2() throws Exception{
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("str", "ABCD");
		builder.add("separator", "B");
		Object result = this.library.runKeyword("substringAfter",builder.build());
		System.out.println(result);
	}

	//截取XX之后的字符串
	@Test
	public void substringAfterLast(){
//		atpStringKeyword.substringAfterLast("ABCD","A");
//		System.out.println(atpStringKeyword.substringAfterLast("ABCD","A"));
	}

	@Test
	public void substringAfterLast2() throws Exception{
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("str", "ABCD");
		builder.add("separator", "B");
		Object result = this.library.runKeyword("substringAfterLast",builder.build());
		System.out.println(result);
	}

	@Test
	public void join() throws Exception{
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("array", new Integer[]{1,2});
		builder.add("separator", ",");
		Object result = this.library.runKeyword("join",builder.build());
		System.out.println(result);
	}

	@Test
	public void remove() throws Exception{
		ParamsBuilder builder = new ParamsBuilder();
		builder.add("str", "queued");
		builder.add("remove", "eu");
		Object result = this.library.runKeyword("remove",builder.build());
		System.out.println(result);
	}

	@Test
	public void regular() {
//		String text = "A-1-B-2$A-11-B-22$";
//		System.out.println(StringTools.extractRegMatchText(text, "\\d+", 0, 2));
//		List<String> list = StringTools.extractRegMatchTexts(text, "(\\d+)", 1);
//		System.out.println(JSON.toJSONString(list));
	}

	@Test
	public void tes() {
		IExecuteContext build = new SampleExecuteContext.Builder().build();
		//compare
//		System.out.println(atpStringKeyword.compare("tes1","tes2",true,"#{aaa}",build));
//		System.out.println(atpStringKeyword.compare("Tes1","tes2",false,"#{aaa}",build));
//		System.out.println(atpStringKeyword.compare("tes1","tes1",true,"#{aaa}",build));
//		System.out.println(atpStringKeyword.compare("tes2","tes1",true,"#{aaa}",build));
		//indexOf
//		System.out.println(atpStringKeyword.indexOf("tes2","e",true,"#{aaa}",build));
//		System.out.println(atpStringKeyword.indexOf("tes2","E",false,"#{aaa}",build));
		//isEmpty
//		System.out.println(atpStringKeyword.isEmpty("tes2","#{aaa}",build));
//		System.out.println(atpStringKeyword.isEmpty("","#{aaa}",build));
//		System.out.println(atpStringKeyword.isEmpty(null,"#{aaa}",build));
		//contains
//		System.out.println(atpStringKeyword.contains("tes1","es",null,null,true,"0","#{aaa}",build));
//		System.out.println(atpStringKeyword.contains("tes1","1es",null,null,true,"0","#{aaa}",build));
//		System.out.println(atpStringKeyword.contains("tes1",null,"t",null,true,"1","#{aaa}",build));
//		System.out.println(atpStringKeyword.contains("tes1",null,"e",null,true,"1","#{aaa}",build));
//		System.out.println(atpStringKeyword.contains("tes1",null,null,"1",true,"2","#{aaa}",build));
//		System.out.println(atpStringKeyword.contains("tes1",null,null,null,false,"2","#{aaa}",build));
		//countMatches
//		System.out.println(atpStringKeyword.countMatches("tes1s","s","#{aaa}",build));
		//substring
//		System.out.println(atpStringKeyword.substring("tes1","0",0,2,null,null,null,"#{aaa}",build));
//		System.out.println(atpStringKeyword.substring("tes1","1",0,2,"e",null,null,"#{aaa}",build));
//		System.out.println(atpStringKeyword.substring("tes1","2",0,2,"e",null,null,"#{aaa}",build));
//		System.out.println(atpStringKeyword.substring("{\"result\":\"{\\\"statusCode\\\":200,\\\"responseTime\\\":48,\\\"context\\\":{\\\"headers\\\":{\\\"Accept-Ranges\\\":\\\"bytes\\\",\\\"Strict-Transport-Security\\\":\\\"max-age=15724800\\\",\\\"Server\\\":\\\"nginx/1.19.0\\\",\\\"ETag\\\":\\\"\\\\\\\"64391cf7-2222\\\\\\\"\\\",\\\"Connection\\\":\\\"keep-alive\\\",\\\"Vary\\\":\\\"Accept-Encoding\\\",\\\"Last-Modified\\\":\\\"Fri, 14 Apr 2023 09:29:27 GMT\\\",\\\"Content-Length\\\":\\\"8738\\\",\\\"Date\\\":\\\"Mon, 17 Apr 2023 03:31:09 GMT\\\",\\\"Content-Type\\\":\\\"text/html; charset=utf-8\\\"},\\\"body\\\":\\\"<!DOCTYPE html><html lang=\\\\\\\"zh-CN\\\\\\\"><head><meta charset=\\\\\\\"utf-8\\\\\\\"><meta http-equiv=\\\\\\\"X-UA-Compatible\\\\\\\" content=\\\\\\\"IE=edge\\\\\\\"><meta name=\\\\\\\"viewport\\\\\\\" content=\\\\\\\"width=device-width,initial-scale=1\\\\\\\"><link rel=\\\\\\\"icon\\\\\\\" href=\\\\\\\"/favicon.ico\\\\\\\"><link rel=\\\\\\\"manifest\\\\\\\" href=\\\\\\\"/manifest.json\\\\\\\"><title>app-base</title><script src=\\\\\\\"./microApps.js\\\\\\\"></script><script>document.title = plaformName</script><link href=\\\\\\\"/static/css/app~045280c8.ef3888e1.css\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"style\\\\\\\"><link href=\\\\\\\"/static/css/app~1359309b.1c868067.css\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"style\\\\\\\"><link href=\\\\\\\"/static/css/app~31ecd969.c2e63dbf.css\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"style\\\\\\\"><link href=\\\\\\\"/static/css/app~3be4f2ec.e8f05ff7.css\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"style\\\\\\\"><link href=\\\\\\\"/static/css/app~690cd1f9.572c0c58.css\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"style\\\\\\\"><link href=\\\\\\\"/static/css/app~699eb229.160bab50.css\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"style\\\\\\\"><link href=\\\\\\\"/static/css/app~6f6275ca.9622fc42.css\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"style\\\\\\\"><link href=\\\\\\\"/static/css/app~74226ea0.0a6868db.css\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"style\\\\\\\"><link href=\\\\\\\"/static/css/app~b76f0841.8014753d.css\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"style\\\\\\\"><link href=\\\\\\\"/static/css/app~efef2b7d.a249bea1.css\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"style\\\\\\\"><link href=\\\\\\\"/static/css/app~f3dcdbdd.9052d8e8.css\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"style\\\\\\\"><link href=\\\\\\\"/static/css/app~f890d285.c8ef32ca.css\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"style\\\\\\\"><link href=\\\\\\\"/static/css/app~ff89f506.774eef58.css\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"style\\\\\\\"><link href=\\\\\\\"/static/js/app~018d9a64.1ea85630.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~02a09273.3e5430df.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~045280c8.c9239740.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~070267c4.acb139d2.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~127b6cf7.6c82cb95.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~1359309b.cb9ca854.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~15e12130.bcb134d7.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~1e08ec82.dca59a33.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~1fa62d96.1752e646.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~2173b2c8.1d132645.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~21833f8f.c214c056.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~2bdc73e9.769d47b7.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~2e8035fa.e9432d0a.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~2feed8ba.20526fdb.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~31ecd969.fc78de28.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~34773d3a.ecd8150a.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~34e3d95a.a1a1dd8e.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~39840826.c29ba334.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~3be4f2ec.4cfe53b2.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~60b7866f.c734c023.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~6306072a.d6a4fe94.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~690cd1f9.edd5affe.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~699eb229.8298c3cb.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~6f6275ca.9a2722f8.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~715985a3.715ad8f3.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~72b5c8ba.59ea3ca9.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~74226ea0.1af8137f.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~85de788a.26cf3f57.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~8c192a9d.038d107a.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~8f4e3483.de545248.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~987e6011.41eed822.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~9c330761.bc764da1.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~af55af00.301e9cb8.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~b6908644.07afc021.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~b76f0841.57d6cca3.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~bf392976.14b8d4cf.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~c40d6694.84ced274.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~c7b8ce09.9952b0eb.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~d0ae3f07.7be99d8a.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~da1f90a2.1b9e2900.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~dafd0fc0.244af907.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~efef2b7d.4fc41fc1.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~f3dcdbdd.cbfdf083.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~f707b9cb.c09ae211.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~f890d285.b080912d.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~fbd904de.3e34b380.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/js/app~ff89f506.b79a73b4.js\\\\\\\" rel=\\\\\\\"preload\\\\\\\" as=\\\\\\\"script\\\\\\\"><link href=\\\\\\\"/static/css/app~699eb229.160bab50.css\\\\\\\" rel=\\\\\\\"stylesheet\\\\\\\"><link href=\\\\\\\"/static/css/app~6f6275ca.9622fc42.css\\\\\\\" rel=\\\\\\\"stylesheet\\\\\\\"><link href=\\\\\\\"/static/css/app~f890d285.c8ef32ca.css\\\\\\\" rel=\\\\\\\"stylesheet\\\\\\\"><link href=\\\\\\\"/static/css/app~74226ea0.0a6868db.css\\\\\\\" rel=\\\\\\\"stylesheet\\\\\\\"><link href=\\\\\\\"/static/css/app~b76f0841.8014753d.css\\\\\\\" rel=\\\\\\\"stylesheet\\\\\\\"><link href=\\\\\\\"/static/css/app~045280c8.ef3888e1.css\\\\\\\" rel=\\\\\\\"stylesheet\\\\\\\"><link href=\\\\\\\"/static/css/app~1359309b.1c868067.css\\\\\\\" rel=\\\\\\\"stylesheet\\\\\\\"><link href=\\\\\\\"/static/css/app~efef2b7d.a249bea1.css\\\\\\\" rel=\\\\\\\"stylesheet\\\\\\\"><link href=\\\\\\\"/static/css/app~690cd1f9.572c0c58.css\\\\\\\" rel=\\\\\\\"stylesheet\\\\\\\"><link href=\\\\\\\"/static/css/app~3be4f2ec.e8f05ff7.css\\\\\\\" rel=\\\\\\\"stylesheet\\\\\\\"><link href=\\\\\\\"/static/css/app~31ecd969.c2e63dbf.css\\\\\\\" rel=\\\\\\\"stylesheet\\\\\\\"><link href=\\\\\\\"/static/css/app~ff89f506.774eef58.css\\\\\\\" rel=\\\\\\\"stylesheet\\\\\\\"><link href=\\\\\\\"/static/css/app~f3dcdbdd.9052d8e8.css\\\\\\\" rel=\\\\\\\"stylesheet\\\\\\\"></head><body><noscript><strong>We're sorry but app-base doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=\\\\\\\"main_container\\\\\\\"></div><script src=\\\\\\\"/static/js/app~1e08ec82.dca59a33.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~699eb229.8298c3cb.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~6f6275ca.9a2722f8.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~f890d285.b080912d.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~8f4e3483.de545248.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~74226ea0.1af8137f.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~018d9a64.1ea85630.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~127b6cf7.6c82cb95.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~c40d6694.84ced274.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~c7b8ce09.9952b0eb.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~8c192a9d.038d107a.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~1fa62d96.1752e646.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~fbd904de.3e34b380.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~2e8035fa.e9432d0a.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~72b5c8ba.59ea3ca9.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~bf392976.14b8d4cf.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~60b7866f.c734c023.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~15e12130.bcb134d7.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~dafd0fc0.244af907.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~2173b2c8.1d132645.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~b76f0841.57d6cca3.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~f707b9cb.c09ae211.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~045280c8.c9239740.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~1359309b.cb9ca854.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~efef2b7d.4fc41fc1.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~690cd1f9.edd5affe.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~3be4f2ec.4cfe53b2.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~da1f90a2.1b9e2900.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~af55af00.301e9cb8.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~070267c4.acb139d2.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~02a09273.3e5430df.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~715985a3.715ad8f3.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~34e3d95a.a1a1dd8e.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~9c330761.bc764da1.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~b6908644.07afc021.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~2bdc73e9.769d47b7.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~6306072a.d6a4fe94.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~34773d3a.ecd8150a.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~d0ae3f07.7be99d8a.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~31ecd969.fc78de28.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~987e6011.41eed822.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~85de788a.26cf3f57.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~2feed8ba.20526fdb.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~39840826.c29ba334.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~21833f8f.c214c056.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~ff89f506.b79a73b4.js\\\\\\\"></script><script src=\\\\\\\"/static/js/app~f3dcdbdd.cbfdf083.js\\\\\\\"></script></body></html>\\\"}}\"","3",0,0,null,"static/js/","\\\\\\","#{aaa}",build));
//		System.out.println(atpStringKeyword.substring("tes1es1","4",0,2,"es",null,null,"#{aaa}",build));
//		System.out.println(atpStringKeyword.substring("tes1es1","5",0,2,"es",null,null,"#{aaa}",build));
		//extractRegMatchText
		System.out.println(atpStringKeyword.extractRegMatchText("123456", "[0-9]{4}", 0, 1,"#{aaa}",build));
		//split
//		System.out.println(atpStringKeyword.split("tes1es1", "e", 0,"#{aaa}",build));
//		System.out.println(atpStringKeyword.split("tes1es1", "e", 2,"#{aaa}",build));
		//join
//		System.out.println(atpStringKeyword.join(Arrays.asList("te","1e","1"), "s", "#{aaa}",build));
		//replace
//		System.out.println(atpStringKeyword.replace("tes1es1", "0","e","E",0, "#{aaa}",build));
//		System.out.println(atpStringKeyword.replace("tes1es1", "1","e","E",0, "#{aaa}",build));
//		System.out.println(atpStringKeyword.replace("tes1es1", "1","e","E",1, "#{aaa}",build));
		//hideSensitive
//		System.out.println(atpStringKeyword.hideSensitive("tes1es1", 0,6, "#{aaa}",build));
//		System.out.println(atpStringKeyword.hideSensitive("tes1es1", 6,8, "#{aaa}",build));
		//processString
//		System.out.println(atpStringKeyword.processString("tes1es1", "0",0, null,"#{aaa}",build));
//		System.out.println(atpStringKeyword.processString("Tes1es1", "1",0, null,"#{aaa}",build));
//		System.out.println(atpStringKeyword.processString("TES1ES1", "2",0, null,"#{aaa}",build));
//		System.out.println(atpStringKeyword.processString("tes1es1", "3",0, null,"#{aaa}",build));
//		System.out.println(atpStringKeyword.processString("tes1es1", "4",-1, "a","#{aaa}",build));
//		System.out.println(atpStringKeyword.processString("tes1es1", "5",-10, "a","#{aaa}",build));
	}

}