1 /*
2  * Copyright (C) 2018-2021 Intel Corporation
3  *
4  * SPDX-License-Identifier: MIT
5  *
6  */
7 
8 #pragma once
9 #include "shared/source/utilities/timer_util.h"
10 
11 #include "gtest/gtest.h"
12 
13 #include <stdint.h>
14 
15 extern const char *perfLogPath;
16 extern long long refTime;
17 void setReferenceTime();
18 
19 bool getTestRatio(uint64_t hash, double &ratio);
20 
21 bool saveTestRatio(uint64_t hash, double ratio);
22 
23 bool isInRange(double data, double reference, double rangePercentage);
24 bool isLowerThanReference(double data, double reference, double rangePercentage);
25 
26 bool updateTestRatio(uint64_t hash, double ratio);
27 
28 template <typename T>
majorityVote(T time1,T time2,T time3)29 T majorityVote(T time1, T time2, T time3) {
30     T minTime1 = 0;
31     T minTime2 = 0;
32 
33     if (time1 < time2) {
34         minTime1 = time1;
35         minTime2 = time2;
36     } else {
37         minTime1 = time2;
38         minTime2 = time1;
39     }
40 
41     if (minTime2 > time3)
42         minTime2 = time3;
43 
44     return (minTime1 + minTime2) / 2;
45 }
46