@@ -1799,3 +1799,255 @@ func TestEvaluator_JSONVariation(t *testing.T) {
17991799 })
18001800 }
18011801}
1802+
1803+ // BENCHMARK
1804+ func BenchmarkEvaluateClause_NilClause (b * testing.B ) {
1805+ evaluator := Evaluator {}
1806+ var clause * rest.Clause = nil
1807+ target := & Target {
1808+ Identifier : "harness" ,
1809+ }
1810+ for i := 0 ; i < b .N ; i ++ {
1811+ evaluator .evaluateClause (clause , target )
1812+ }
1813+ }
1814+
1815+ func BenchmarkEvaluateClause_EmptyOperator (b * testing.B ) {
1816+ evaluator := Evaluator {}
1817+ clause := & rest.Clause {
1818+ Op : "" ,
1819+ Values : []string {"harness" },
1820+ }
1821+ for i := 0 ; i < b .N ; i ++ {
1822+ evaluator .evaluateClause (clause , nil )
1823+ }
1824+ }
1825+
1826+ func BenchmarkEvaluateClause_NilValues (b * testing.B ) {
1827+ evaluator := Evaluator {}
1828+ clause := & rest.Clause {
1829+ Values : nil ,
1830+ }
1831+ for i := 0 ; i < b .N ; i ++ {
1832+ evaluator .evaluateClause (clause , nil )
1833+ }
1834+ }
1835+
1836+ func BenchmarkEvaluateClause_EmptyValues (b * testing.B ) {
1837+ evaluator := Evaluator {}
1838+ clause := & rest.Clause {
1839+ Values : []string {},
1840+ }
1841+ for i := 0 ; i < b .N ; i ++ {
1842+ evaluator .evaluateClause (clause , nil )
1843+ }
1844+ }
1845+
1846+ func BenchmarkEvaluateClause_WrongOperator (b * testing.B ) {
1847+ evaluator := Evaluator {}
1848+ clause := & rest.Clause {
1849+ Attribute : "identifier" ,
1850+ Op : "greaterthan" ,
1851+ Values : []string {"harness" },
1852+ }
1853+ target := & Target {
1854+ Identifier : "harness" ,
1855+ }
1856+ for i := 0 ; i < b .N ; i ++ {
1857+ evaluator .evaluateClause (clause , target )
1858+ }
1859+ }
1860+
1861+ func BenchmarkEvaluateClause_EmptyAttribute (b * testing.B ) {
1862+ evaluator := Evaluator {}
1863+ clause := & rest.Clause {
1864+ Attribute : "" ,
1865+ Op : "equalOperator" ,
1866+ Values : []string {"harness" },
1867+ }
1868+ target := & Target {
1869+ Identifier : "harness" ,
1870+ }
1871+ for i := 0 ; i < b .N ; i ++ {
1872+ evaluator .evaluateClause (clause , target )
1873+ }
1874+ }
1875+
1876+ func BenchmarkEvaluateClause_MatchOperator (b * testing.B ) {
1877+ evaluator := Evaluator {}
1878+ clause := & rest.Clause {
1879+ Attribute : "identifier" ,
1880+ Op : "matchOperator" ,
1881+ Values : []string {"^harness$" },
1882+ }
1883+ target := & Target {
1884+ Identifier : "harness" ,
1885+ }
1886+ for i := 0 ; i < b .N ; i ++ {
1887+ evaluator .evaluateClause (clause , target )
1888+ }
1889+ }
1890+
1891+ func BenchmarkEvaluateClause_MatchOperatorError (b * testing.B ) {
1892+ evaluator := Evaluator {}
1893+ clause := & rest.Clause {
1894+ Attribute : "identifier" ,
1895+ Op : "matchOperator" ,
1896+ Values : []string {"^harness(wings$" },
1897+ }
1898+ target := & Target {
1899+ Identifier : "harness" ,
1900+ }
1901+ for i := 0 ; i < b .N ; i ++ {
1902+ evaluator .evaluateClause (clause , target )
1903+ }
1904+ }
1905+
1906+ func BenchmarkEvaluateClause_InOperator (b * testing.B ) {
1907+ evaluator := Evaluator {}
1908+ clause := & rest.Clause {
1909+ Attribute : "identifier" ,
1910+ Op : "inOperator" ,
1911+ Values : []string {"harness" , "wings-software" },
1912+ }
1913+ target := & Target {
1914+ Identifier : "harness" ,
1915+ }
1916+ for i := 0 ; i < b .N ; i ++ {
1917+ evaluator .evaluateClause (clause , target )
1918+ }
1919+ }
1920+
1921+ func BenchmarkEvaluateClause_InOperatorNotFound (b * testing.B ) {
1922+ evaluator := Evaluator {}
1923+ clause := & rest.Clause {
1924+ Attribute : "identifier" ,
1925+ Op : "inOperator" ,
1926+ Values : []string {"harness1" , "wings-software" },
1927+ }
1928+ target := & Target {
1929+ Identifier : "harness" ,
1930+ }
1931+ for i := 0 ; i < b .N ; i ++ {
1932+ evaluator .evaluateClause (clause , target )
1933+ }
1934+ }
1935+
1936+ func BenchmarkEvaluateClause_EqualOperator (b * testing.B ) {
1937+ evaluator := Evaluator {}
1938+ clause := & rest.Clause {
1939+ Attribute : "identifier" ,
1940+ Op : "equalOperator" ,
1941+ Values : []string {"harness" },
1942+ }
1943+ target := & Target {
1944+ Identifier : "harness" ,
1945+ }
1946+ for i := 0 ; i < b .N ; i ++ {
1947+ evaluator .evaluateClause (clause , target )
1948+ }
1949+ }
1950+
1951+ func BenchmarkEvaluateClause_EqualSensitiveOperator (b * testing.B ) {
1952+ evaluator := Evaluator {}
1953+ clause := & rest.Clause {
1954+ Attribute : "identifier" ,
1955+ Op : "equalSensitiveOperator" ,
1956+ Values : []string {"harness" },
1957+ }
1958+ target := & Target {
1959+ Identifier : "Harness" ,
1960+ }
1961+ for i := 0 ; i < b .N ; i ++ {
1962+ evaluator .evaluateClause (clause , target )
1963+ }
1964+ }
1965+
1966+ func BenchmarkEvaluateClause_GTOperator (b * testing.B ) {
1967+ evaluator := Evaluator {}
1968+ clause := & rest.Clause {
1969+ Attribute : "identifier" ,
1970+ Op : "gtOperator" ,
1971+ Values : []string {"A" },
1972+ }
1973+ target := & Target {
1974+ Identifier : "B" ,
1975+ }
1976+ for i := 0 ; i < b .N ; i ++ {
1977+ evaluator .evaluateClause (clause , target )
1978+ }
1979+ }
1980+
1981+ func BenchmarkEvaluateClause_GTOperatorNegative (b * testing.B ) {
1982+ evaluator := Evaluator {}
1983+ clause := & rest.Clause {
1984+ Attribute : "identifier" ,
1985+ Op : "gtOperator" ,
1986+ Values : []string {"B" },
1987+ }
1988+ target := & Target {
1989+ Identifier : "A" ,
1990+ }
1991+ for i := 0 ; i < b .N ; i ++ {
1992+ evaluator .evaluateClause (clause , target )
1993+ }
1994+ }
1995+
1996+ func BenchmarkEvaluateClause_StartsWithOperator (b * testing.B ) {
1997+ evaluator := Evaluator {}
1998+ clause := & rest.Clause {
1999+ Attribute : "identifier" ,
2000+ Op : "startsWithOperator" ,
2001+ Values : []string {"harness" },
2002+ }
2003+ target := & Target {
2004+ Identifier : "harness - wings software" ,
2005+ }
2006+ for i := 0 ; i < b .N ; i ++ {
2007+ evaluator .evaluateClause (clause , target )
2008+ }
2009+ }
2010+
2011+ func BenchmarkEvaluateClause_EndsWithOperator (b * testing.B ) {
2012+ evaluator := Evaluator {}
2013+ clause := & rest.Clause {
2014+ Attribute : "identifier" ,
2015+ Op : "endsWithOperator" ,
2016+ Values : []string {"harness" },
2017+ }
2018+ target := & Target {
2019+ Identifier : "wings software - harness" ,
2020+ }
2021+ for i := 0 ; i < b .N ; i ++ {
2022+ evaluator .evaluateClause (clause , target )
2023+ }
2024+ }
2025+
2026+ func BenchmarkEvaluateClause_ContainsOperator (b * testing.B ) {
2027+ evaluator := Evaluator {}
2028+ clause := & rest.Clause {
2029+ Attribute : "identifier" ,
2030+ Op : "containsOperator" ,
2031+ Values : []string {"harness" },
2032+ }
2033+ target := & Target {
2034+ Identifier : "wings harness software" ,
2035+ }
2036+ for i := 0 ; i < b .N ; i ++ {
2037+ evaluator .evaluateClause (clause , target )
2038+ }
2039+ }
2040+
2041+ func BenchmarkEvaluateClause_SegmentMatchOperator (b * testing.B ) {
2042+ evaluator := Evaluator {query : testRepo }
2043+ clause := & rest.Clause {
2044+ Op : "segmentMatchOperator" ,
2045+ Values : []string {"beta" },
2046+ }
2047+ target := & Target {
2048+ Identifier : "harness" ,
2049+ }
2050+ for i := 0 ; i < b .N ; i ++ {
2051+ evaluator .evaluateClause (clause , target )
2052+ }
2053+ }
0 commit comments