static public void IsTrue(bool value){
Console.WriteLine("Expected True, but was False");
static public void IsFalse(bool value){
Console.WriteLine("Expected False, but was True");
static bool canUseES18(string userAgent){
var geckoType = userAgent.IndexOf("(KHTML, like Gecko) ");
var chrome = userAgent.IndexOf("Chrome/", geckoType);
version = Int32.Parse(userAgent.Substring(chrome, userAgent.IndexOf(".", chrome) - chrome));
var safari = userAgent.IndexOf("Version/", geckoType);
version = Int32.Parse(userAgent.Substring(safari, userAgent.IndexOf(".", safari) - safari));
var crios = userAgent.IndexOf("CriOS/", geckoType);
version = Int32.Parse(userAgent.Substring(crios, userAgent.IndexOf(".", crios) - crios));
var fireFox = userAgent.IndexOf("Firefox/");
version = Int32.Parse(userAgent.Substring(fireFox, userAgent.IndexOf(".", fireFox) - fireFox));
public static void Main()
Assert.IsTrue(canUseES18("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"));
Assert.IsTrue(canUseES18("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.4638.69 Safari/537.36"));
Assert.IsTrue(canUseES18("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"));
Assert.IsTrue(canUseES18("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"));
Assert.IsTrue(canUseES18("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0"));
Assert.IsTrue(canUseES18("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/78.0"));
Assert.IsFalse(canUseES18("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.4638.69 Safari/537.36"));
Assert.IsFalse(canUseES18("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/2.0.4638.69 Safari/537.36"));
Assert.IsFalse(canUseES18("Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2"));
Assert.IsFalse(canUseES18("Mozilla/5.0 (iPad; CPU OS 10_3_4 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G61 Safari/602.1"));
Assert.IsFalse(canUseES18("Mozilla/5.0 (iPad; CPU OS 10_3_3 like Mac OS X) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.0 Mobile/14G60 Safari/602.1"));
Assert.IsFalse(canUseES18("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/77.0"));
Assert.IsFalse(canUseES18("Mozilla/5.0 (iPad; CPU OS 10_3_4 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) CriOS/71.0.3578.89 Mobile/14G61 Safari/602.1"));