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