@@ -1799,3 +1799,255 @@ func TestEvaluator_JSONVariation(t *testing.T) {
1799
1799
})
1800
1800
}
1801
1801
}
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