Code Documentation 3.5
Social Network Visualizer
Loading...
Searching...
No Matches
cli_common.h
Go to the documentation of this file.
1#pragma once
2
3#include <QJsonObject>
4#include <QJsonArray>
5#include <QTextStream>
6#include <QString>
7
8namespace cli
9{
10
11 struct CliConfig
12 {
13 bool verbose = false;
14
15 QString inputPath;
16 int fileFormat = 0;
17 QString delimiter;
18 int twoMode = 0;
19 bool hasLabels = false;
20
22 bool considerWeights = false;
23 bool inverseWeights = true;
24 bool dropIsolates = false;
25
26 QString dumpJsonPath;
28
29 int benchRuns = 0; // 0 = off
30 QString kernel; // "distance", etc.
31 bool strict = false; // if true, timing regressions fail (exit non-zero)
32 };
33
34 // ---------------- printing ----------------
35
36 void printKV(const QString &k, double v);
37 void printKV(const QString &k, const QString &v);
38 void printKV(const QString &k, int v);
39 void printKV(const QString &k, qint64 v);
40
41 // ---------------- deterministic formatting ----------------
42
43 QString d2s(double v);
44
45 // ---------------- JSON I/O ----------------
46
47 bool writeJsonFile(const QString &path, const QJsonObject &obj, QString *err);
48 bool readJsonFile(const QString &path, QJsonObject *outObj, QString *err);
49
50 // ---------------- compare helpers ----------------
51
52 bool cmpStr(const QJsonObject &e, const QJsonObject &a, const QString &k, QTextStream &err);
53 bool cmpInt(const QJsonObject &e, const QJsonObject &a, const QString &k, QTextStream &err);
54 bool cmpBool(const QJsonObject &e, const QJsonObject &a, const QString &k, QTextStream &err);
55
56 bool almostEqual(double a, double b, double rel = 1e-15, double abs = 0.0);
57
58 bool cmpNumStrTol(const QJsonObject &e, const QJsonObject &a,
59 const QString &k, QTextStream &err,
60 double rel = 1e-15, double abs = 0.0);
61
62 bool cmpIntArray(const QJsonArray &e, const QJsonArray &a,
63 QTextStream &err, const QString &what);
64
65 bool cmpStrArray(const QJsonArray &e, const QJsonArray &a,
66 QTextStream &err, const QString &what);
67
68} // namespace cli
Definition cli_common.cpp:18
void printKV(const QString &k, double v)
Definition cli_common.cpp:22
bool cmpStr(const QJsonObject &e, const QJsonObject &a, const QString &k, QTextStream &err)
Definition cli_common.cpp:92
bool cmpInt(const QJsonObject &e, const QJsonObject &a, const QString &k, QTextStream &err)
Definition cli_common.cpp:104
bool almostEqual(double a, double b, double rel, double abs)
Definition cli_common.cpp:129
bool writeJsonFile(const QString &path, const QJsonObject &obj, QString *err)
Definition cli_common.cpp:52
bool readJsonFile(const QString &path, QJsonObject *outObj, QString *err)
Definition cli_common.cpp:66
bool cmpNumStrTol(const QJsonObject &e, const QJsonObject &a, const QString &k, QTextStream &err, double rel, double abs)
Definition cli_common.cpp:147
bool cmpStrArray(const QJsonArray &e, const QJsonArray &a, QTextStream &err, const QString &what)
Definition cli_common.cpp:194
QString d2s(double v)
Definition cli_common.cpp:44
bool cmpBool(const QJsonObject &e, const QJsonObject &a, const QString &k, QTextStream &err)
Definition cli_common.cpp:116
bool cmpIntArray(const QJsonArray &e, const QJsonArray &a, QTextStream &err, const QString &what)
Definition cli_common.cpp:174
Definition cli_common.h:12
int fileFormat
Definition cli_common.h:16
bool strict
Definition cli_common.h:31
QString dumpJsonPath
Definition cli_common.h:26
bool hasLabels
Definition cli_common.h:19
QString kernel
Definition cli_common.h:30
int benchRuns
Definition cli_common.h:29
bool verbose
Definition cli_common.h:13
bool inverseWeights
Definition cli_common.h:23
int twoMode
Definition cli_common.h:18
QString compareJsonPath
Definition cli_common.h:27
QString inputPath
Definition cli_common.h:15
bool considerWeights
Definition cli_common.h:22
bool dropIsolates
Definition cli_common.h:24
bool computeCentralities
Definition cli_common.h:21
QString delimiter
Definition cli_common.h:17