|
16 | 16 | * |
17 | 17 | *=========================================================================*/ |
18 | 18 |
|
19 | | -#include "itkTestingMacros.h" |
20 | 19 | #include "itkStdStreamStateSave.h" |
| 20 | +#include "itkGTest.h" |
21 | 21 |
|
22 | 22 | #include <sstream> |
23 | | -#include <cstdlib> |
24 | 23 |
|
25 | | -int |
26 | | -itkStdStreamStateSaveTest(int, char *[]) |
| 24 | +TEST(StdStreamStateSave, RestoresCoutState) |
27 | 25 | { |
28 | 26 | // Set the fillch of std::cout with an explicit default fill character |
29 | 27 | std::cout.fill(' '); |
@@ -55,10 +53,24 @@ itkStdStreamStateSaveTest(int, char *[]) |
55 | 53 |
|
56 | 54 | } // coutState goes out of scope and will restore original format state |
57 | 55 |
|
| 56 | + // Verify that the default is reset for std::cout |
| 57 | + EXPECT_EQ(std::cout.precision(), defaultPrecision); |
| 58 | + EXPECT_EQ(std::cout.width(), defaultWidth); |
| 59 | + EXPECT_EQ(std::cout.fill(), defaultFill); |
| 60 | + EXPECT_EQ(std::cout.flags(), defaultFlags); |
| 61 | +} |
| 62 | + |
| 63 | +TEST(StdStreamStateSave, RestoresStringStreamState) |
| 64 | +{ |
58 | 65 | std::stringstream stream; |
59 | 66 | // Set the fillch of std::stringstream with an explicit default fill character |
60 | 67 | stream.fill(' '); |
61 | 68 |
|
| 69 | + const std::streamsize defaultPrecision = stream.precision(); |
| 70 | + const std::streamsize defaultWidth = stream.width(); |
| 71 | + const char defaultFill = stream.fill(); |
| 72 | + const std::ios_base::fmtflags defaultFlags = stream.flags(); |
| 73 | + |
62 | 74 | constexpr int originalInt{ 10 }; |
63 | 75 | { |
64 | 76 | const itk::StdStreamStateSave sstreamState(stream); |
@@ -86,18 +98,10 @@ itkStdStreamStateSaveTest(int, char *[]) |
86 | 98 | // is still in effect. |
87 | 99 | int inputInt = 0; |
88 | 100 | stream >> inputInt; |
89 | | - ITK_TEST_EXPECT_EQUAL(originalInt, inputInt); |
90 | | - |
91 | | - // Verify that the default is reset for std::cout |
92 | | - ITK_TEST_EXPECT_EQUAL(std::cout.precision(), defaultPrecision); |
93 | | - ITK_TEST_EXPECT_EQUAL(std::cout.width(), defaultWidth); |
94 | | - ITK_TEST_EXPECT_EQUAL(std::cout.fill(), defaultFill); |
95 | | - ITK_TEST_EXPECT_EQUAL(std::cout.flags(), defaultFlags); |
96 | | - |
97 | | - ITK_TEST_EXPECT_EQUAL(stream.precision(), defaultPrecision); |
98 | | - ITK_TEST_EXPECT_EQUAL(stream.width(), defaultWidth); |
99 | | - ITK_TEST_EXPECT_EQUAL(stream.fill(), defaultFill); |
100 | | - ITK_TEST_EXPECT_EQUAL(stream.flags(), defaultFlags); |
| 101 | + EXPECT_EQ(originalInt, inputInt); |
101 | 102 |
|
102 | | - return EXIT_SUCCESS; |
| 103 | + EXPECT_EQ(stream.precision(), defaultPrecision); |
| 104 | + EXPECT_EQ(stream.width(), defaultWidth); |
| 105 | + EXPECT_EQ(stream.fill(), defaultFill); |
| 106 | + EXPECT_EQ(stream.flags(), defaultFlags); |
103 | 107 | } |
0 commit comments