~verifypn-cpn/verifypn/unitTest

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef STOPWATCH_H
#define STOPWATCH_H

#include <ctime>
#include <sstream>

using namespace std;

class stopwatch {
    bool _running = false;
    clock_t _start;
    clock_t _stop;

public:
    double started() const { return _start; }
    double stopped() const { return _stop; }
    bool running() const { return _running; }
    void start() {
        _running = true;
        _start = clock();
    }
    void stop() {
        _stop = clock();
        _running = false;
    }
    double duration() const { return ( (double(_stop - _start))*1000)/CLOCKS_PER_SEC; }

    ostream &operator<<(ostream &os){
        os << duration() << " ms";
        return os;
    }

    std::string toString(){
        stringstream ss;
        ss << this;
        return ss.str();
    }
};

#endif // STOPWATCH_H