MCPcopy Create free account
hub / github.com/Kitware/VTK / TestSQLiteTableReadWrite

Function TestSQLiteTableReadWrite

IO/SQL/Testing/Cxx/TestSQLiteTableReadWrite.cxx:25–95  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23bool CompareAsciiFiles(const char* file1, const char* file2);
24
25int TestSQLiteTableReadWrite(int argc, char* argv[])
26{
27 if (argc <= 1)
28 {
29 std::cerr << "Usage: " << argv[0] << " <.vtk table file>" << std::endl;
30 return 1;
31 }
32 std::cerr << "reading a vtkTable from file" << std::endl;
33 vtkSmartPointer<vtkTableReader> tableFileReader = vtkSmartPointer<vtkTableReader>::New();
34 tableFileReader->SetFileName(argv[1]);
35 vtkTable* table = tableFileReader->GetOutput();
36 tableFileReader->Update();
37
38 std::cerr << "opening an SQLite database connection" << std::endl;
39 vtkSQLiteDatabase* db =
40 vtkSQLiteDatabase::SafeDownCast(vtkSQLDatabase::CreateFromURL("sqlite://local.db"));
41 bool status = db->Open("", vtkSQLiteDatabase::CREATE_OR_CLEAR);
42 if (!status)
43 {
44 std::cerr << "Couldn't open database using CREATE_OR_CLEAR.\n";
45 return 1;
46 }
47
48 std::cerr << "creating an SQLite table from a vtkTable" << std::endl;
49 vtkSmartPointer<vtkTableToSQLiteWriter> writerToTest =
50 vtkSmartPointer<vtkTableToSQLiteWriter>::New();
51
52 writerToTest->SetInputData(table);
53 writerToTest->SetDatabase(db);
54 writerToTest->SetTableName("tableTest");
55 writerToTest->Update();
56
57 std::cerr << "converting it back to a vtkTable" << std::endl;
58 vtkSmartPointer<vtkSQLiteToTableReader> readerToTest =
59 vtkSmartPointer<vtkSQLiteToTableReader>::New();
60
61 readerToTest->SetDatabase(db);
62 readerToTest->SetTableName("tableTest");
63 readerToTest->Update();
64
65 std::cerr << "writing the table out to disk" << std::endl;
66 vtkSmartPointer<vtkTableWriter> tableFileWriter = vtkSmartPointer<vtkTableWriter>::New();
67 tableFileWriter->SetFileName("TestSQLiteTableReadWrite.vtk");
68 tableFileWriter->SetInputConnection(readerToTest->GetOutputPort());
69 tableFileWriter->Update();
70
71 std::cerr << "verifying that it's the same as what we started with...";
72 int result = 0;
73 if (!CompareAsciiFiles(argv[1], "TestSQLiteTableReadWrite.vtk"))
74 {
75 std::cerr << argv[1] << " differs from TestSQLiteTableReadWrite.vtk" << std::endl;
76 PrintFile(argv[1], std::cerr);
77 PrintFile("TestSQLiteTableReadWrite.vtk", std::cerr);
78 result = 1;
79 }
80 else
81 {
82 std::cerr << "it is!" << std::endl;

Callers

nothing calls this directly

Calls 15

CompareAsciiFilesFunction · 0.85
PrintFileFunction · 0.85
DeleteMethod · 0.65
NewFunction · 0.50
SetFileNameMethod · 0.45
GetOutputMethod · 0.45
UpdateMethod · 0.45
OpenMethod · 0.45
SetInputDataMethod · 0.45
SetDatabaseMethod · 0.45
SetTableNameMethod · 0.45
SetInputConnectionMethod · 0.45

Tested by

no test coverage detected