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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
//------------------------------------------------------------------------------
// Mongoose/Tests/Mongoose_Test_IO.cpp
//------------------------------------------------------------------------------
// Mongoose Graph Partitioning Library, Copyright (C) 2017-2018,
// Scott P. Kolodziej, Nuri S. Yeralan, Timothy A. Davis, William W. Hager
// Mongoose is licensed under Version 3 of the GNU General Public License.
// Mongoose is also available under other licenses; contact authors for details.
// SPDX-License-Identifier: GPL-3.0-only
//------------------------------------------------------------------------------
#include <string>
#include "Mongoose_IO.hpp"
#include "Mongoose_Test.hpp"
using namespace Mongoose;
int runIOTest(const std::string &inputFile, bool validGraph)
{
LogTest("Running I/O Test on " << inputFile);
Graph *G = read_graph(inputFile);
if (validGraph)
{
assert(G != NULL); // A valid graph should not be null
assert(G->n > 0); // A valid graph should have
assert(G->nz >= 0); // At least 1 edge
assert(G->p != NULL); // Column pointers should not be null
assert(G->i != NULL); // Row numbers should not be null
G->~Graph();
}
else
{
assert(G == NULL);
}
// Also try with C-style string
Graph *G2 = read_graph(inputFile.c_str());
if (validGraph)
{
assert(G2 != NULL); // A valid graph should not be null
assert(G2->n > 0); // A valid graph should have
assert(G2->nz >= 0); // At least 1 edge
assert(G2->p != NULL); // Column pointers should not be null
assert(G2->i != NULL); // Row numbers should not be null
G2->~Graph();
}
else
{
assert(G2 == NULL);
}
LogTest("I/O Test Completed Successfully");
return EXIT_SUCCESS;
}
|