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

Function TestArraySerialization

IO/Core/Testing/Cxx/TestArraySerialization.cxx:28–225  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

26 } while (false)
27
28int TestArraySerialization(int vtkNotUsed(argc), char* vtkNotUsed(argv)[])
29{
30 try
31 {
32 // Test Read and Write in Ascii text mode
33 // Test sparse-array round-trip ...
34 vtkSmartPointer<vtkSparseArray<double>> a1 = vtkSmartPointer<vtkSparseArray<double>>::New();
35 a1->SetName("a1");
36 a1->Resize(2, 2);
37 a1->SetDimensionLabel(0, "rows");
38 a1->SetDimensionLabel(1, "columns");
39 a1->SetNullValue(0.5);
40 a1->AddValue(0, 0, 1.5);
41 a1->AddValue(1, 1, 2.5);
42
43 std::stringstream a_buffer;
44 vtkArrayWriter::Write(a1, a_buffer);
45
46 vtkSmartPointer<vtkArray> a2;
47 a2.TakeReference(vtkArrayReader::Read(a_buffer));
48
49 test_expression(a2);
50 test_expression(a2->GetName() == "a1");
51 test_expression(vtkSparseArray<double>::SafeDownCast(a2));
52 test_expression(a2->GetExtents() == a1->GetExtents());
53 test_expression(a2->GetNonNullSize() == a1->GetNonNullSize());
54 test_expression(a2->GetDimensionLabel(0) == "rows");
55 test_expression(a2->GetDimensionLabel(1) == "columns");
56 test_expression(vtkSparseArray<double>::SafeDownCast(a2)->GetNullValue() == 0.5);
57 test_expression(a2->GetVariantValue(0, 0).ToDouble() == 1.5);
58 test_expression(a2->GetVariantValue(0, 1).ToDouble() == 0.5);
59 test_expression(a2->GetVariantValue(1, 1).ToDouble() == 2.5);
60
61 // Test sparse-array coordinates out-of-bounds ...
62 std::istringstream b_buffer(
63 "vtk-sparse-array double\nascii\nb1\n0 2 0 2 1\nrows\ncolumns\n0\n2 2 3.5\n");
64 vtkSmartPointer<vtkArray> b1;
65 b1.TakeReference(vtkArrayReader::Read(b_buffer));
66
67 test_expression(!b1);
68
69 // Test sparse-array not enough values ...
70 std::istringstream d_buffer(
71 "vtk-sparse-array double\nascii\nd1\n0 2 0 2 1\nrows\ncolumns\n0\n");
72 vtkSmartPointer<vtkArray> d1;
73 d1.TakeReference(vtkArrayReader::Read(d_buffer));
74
75 test_expression(!d1);
76
77 // Test dense string arrays containing whitespace ...
78 std::istringstream e_buffer(
79 "vtk-dense-array string\nascii\ne1\n0 3 3\nvalues\nThe\nquick brown\nfox\n");
80 vtkSmartPointer<vtkArray> e1;
81 e1.TakeReference(vtkArrayReader::Read(e_buffer));
82
83 test_expression(e1);
84 test_expression(vtkDenseArray<vtkStdString>::SafeDownCast(e1));
85 test_expression(e1->GetNonNullSize() == 3);

Callers

nothing calls this directly

Calls 15

test_expressionFunction · 0.85
SetDimensionLabelMethod · 0.80
AddValueMethod · 0.80
GetExtentsMethod · 0.80
GetDimensionLabelMethod · 0.80
NewFunction · 0.50
WriteFunction · 0.50
ReadFunction · 0.50
SetNameMethod · 0.45
ResizeMethod · 0.45
TakeReferenceMethod · 0.45
GetNameMethod · 0.45

Tested by

no test coverage detected