Skip to content
Snippets Groups Projects
Commit 013b7b4f authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Merge branch 'feature/item-value-output' into 'develop'

Support for output of ItemValue and ItemArray on ostream

See merge request !130
parents ab37cf64 5e82adcc
No related branches found
No related tags found
1 merge request!130Support for output of ItemValue and ItemArray on ostream
...@@ -171,6 +171,13 @@ class ItemArray ...@@ -171,6 +171,13 @@ class ItemArray
return *this; return *this;
} }
friend std::ostream&
operator<<(std::ostream& os, const ItemArray& item_array)
{
os << item_array.m_values;
return os;
}
template <typename DataType2, typename ConnectivityPtr2> template <typename DataType2, typename ConnectivityPtr2>
PUGS_INLINE PUGS_INLINE
ItemArray(const ItemArray<DataType2, item_type, ConnectivityPtr2>& array_per_item) noexcept ItemArray(const ItemArray<DataType2, item_type, ConnectivityPtr2>& array_per_item) noexcept
......
...@@ -159,6 +159,13 @@ class ItemValue ...@@ -159,6 +159,13 @@ class ItemValue
return *this; return *this;
} }
friend std::ostream&
operator<<(std::ostream& os, const ItemValue& item_value)
{
os << item_value.m_values;
return os;
}
template <typename DataType2, typename ConnectivityPtr2> template <typename DataType2, typename ConnectivityPtr2>
PUGS_INLINE PUGS_INLINE
ItemValue(const ItemValue<DataType2, item_type, ConnectivityPtr2>& value_per_item) noexcept ItemValue(const ItemValue<DataType2, item_type, ConnectivityPtr2>& value_per_item) noexcept
......
...@@ -63,7 +63,7 @@ class Socket::Internals ...@@ -63,7 +63,7 @@ class Socket::Internals
int int
portNumber() const portNumber() const
{ {
return ::ntohs(m_address.sin_port); return ntohs(m_address.sin_port);
} }
int int
...@@ -180,7 +180,7 @@ connectServerSocket(const std::string& server_name, int port_number) ...@@ -180,7 +180,7 @@ connectServerSocket(const std::string& server_name, int port_number)
::memcpy(reinterpret_cast<char*>(&serv_addr.sin_addr.s_addr), reinterpret_cast<char*>(server->h_addr), ::memcpy(reinterpret_cast<char*>(&serv_addr.sin_addr.s_addr), reinterpret_cast<char*>(server->h_addr),
server->h_length); server->h_length);
serv_addr.sin_port = ::htons(port_number); serv_addr.sin_port = htons(port_number);
if (::connect(socket_internals.m_socket_fd, reinterpret_cast<sockaddr*>(&serv_addr), sizeof(serv_addr))) { if (::connect(socket_internals.m_socket_fd, reinterpret_cast<sockaddr*>(&serv_addr), sizeof(serv_addr))) {
throw NormalError(strerror(errno)); throw NormalError(strerror(errno));
......
...@@ -271,6 +271,27 @@ TEST_CASE("ItemArray", "[mesh]") ...@@ -271,6 +271,27 @@ TEST_CASE("ItemArray", "[mesh]")
} }
} }
SECTION("output")
{
auto mesh = MeshDataBaseForTests::get().unordered1DMesh();
Table<int> table{mesh->numberOfCells(), 3};
for (size_t i = 0; i < table.numberOfRows(); ++i) {
for (size_t j = 0; j < table.numberOfColumns(); ++j) {
table(i, j) = 2 * i + 1 + 3 * j;
}
}
CellArray<int> cell_array{mesh->connectivity(), 3};
cell_array = table;
std::ostringstream table_ost;
table_ost << table;
std::ostringstream cell_array_ost;
cell_array_ost << cell_array;
REQUIRE(table_ost.str() == cell_array_ost.str());
}
#ifndef NDEBUG #ifndef NDEBUG
SECTION("error") SECTION("error")
{ {
......
...@@ -218,6 +218,25 @@ TEST_CASE("ItemValue", "[mesh]") ...@@ -218,6 +218,25 @@ TEST_CASE("ItemValue", "[mesh]")
} }
} }
SECTION("output")
{
auto mesh = MeshDataBaseForTests::get().unordered1DMesh();
Array<int> array{mesh->numberOfCells()};
for (size_t i = 0; i < array.size(); ++i) {
array[i] = 2 * i + 1;
}
CellValue<int> cell_value{mesh->connectivity()};
cell_value = array;
std::ostringstream array_ost;
array_ost << array;
std::ostringstream cell_value_ost;
cell_value_ost << cell_value;
REQUIRE(array_ost.str() == cell_value_ost.str());
}
#ifndef NDEBUG #ifndef NDEBUG
SECTION("error") SECTION("error")
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment