Code Documentation 3.7
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 QString connectivityType = "weak"; // "weak"|"strong", for --kernel connectivity on directed graphs
34
35 QString connMode = "global"; // "local"|"global", for --kernel vertex_connectivity
36 int connSource = -1; // required for connMode == "local"
37 int connTarget = -1; // required for connMode == "local"
38
39 qreal katzAlpha = -1; // >= 0 enables Katz Centrality for --kernel prominence
40
41 qreal bonacichAlpha = -1; // >= 0 enables Bonacich Power Centrality for --kernel prominence
42 qreal bonacichBeta = 0;
43 };
44
45 // ---------------- printing ----------------
46
47 void printKV(const QString &k, double v);
48 void printKV(const QString &k, const QString &v);
49 void printKV(const QString &k, int v);
50 void printKV(const QString &k, qint64 v);
51
52 // ---------------- deterministic formatting ----------------
53
54 QString d2s(double v);
55
56 // ---------------- JSON I/O ----------------
57
58 bool writeJsonFile(const QString &path, const QJsonObject &obj, QString *err);
59 bool readJsonFile(const QString &path, QJsonObject *outObj, QString *err);
60
61 // ---------------- compare helpers ----------------
62
63 bool cmpStr(const QJsonObject &e, const QJsonObject &a, const QString &k, QTextStream &err);
64 bool cmpInt(const QJsonObject &e, const QJsonObject &a, const QString &k, QTextStream &err);
65 bool cmpBool(const QJsonObject &e, const QJsonObject &a, const QString &k, QTextStream &err);
66
67 bool almostEqual(double a, double b, double rel = 1e-15, double abs = 0.0);
68
69 bool cmpNumStrTol(const QJsonObject &e, const QJsonObject &a,
70 const QString &k, QTextStream &err,
71 double rel = 1e-15, double abs = 0.0);
72
73 bool cmpIntArray(const QJsonArray &e, const QJsonArray &a,
74 QTextStream &err, const QString &what);
75
76 bool cmpStrArray(const QJsonArray &e, const QJsonArray &a,
77 QTextStream &err, const QString &what);
78
79} // 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
int connTarget
Definition cli_common.h:37
bool strict
Definition cli_common.h:31
QString dumpJsonPath
Definition cli_common.h:26
bool hasLabels
Definition cli_common.h:19
int connSource
Definition cli_common.h:36
QString kernel
Definition cli_common.h:30
int benchRuns
Definition cli_common.h:29
bool verbose
Definition cli_common.h:13
qreal katzAlpha
Definition cli_common.h:39
QString connectivityType
Definition cli_common.h:33
bool inverseWeights
Definition cli_common.h:23
int twoMode
Definition cli_common.h:18
qreal bonacichBeta
Definition cli_common.h:42
QString connMode
Definition cli_common.h:35
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
qreal bonacichAlpha
Definition cli_common.h:41
bool computeCentralities
Definition cli_common.h:21
QString delimiter
Definition cli_common.h:17