Commit ca3bbac7de01a2624d08c2aec40b0fc9c7f06ed4
1 parent
17d59710
Add GSkyMap::is_empty() method (#1828)
Showing
6 changed files
with
42 additions
and
3 deletions
ChangeLog
| 1 | -2016-08-09 | |
| 1 | +2016-08-10 | |
| 2 | 2 | |
| 3 | 3 | * Version 1.2.0 released |
| 4 | 4 | ========================= |
| 5 | 5 | |
| 6 | + Add GSkyMap::is_empty() method (#1828) | |
| 6 | 7 | Add GApplication access by index operator (#1838) |
| 7 | 8 | Add GApplication::pars() and GApplicationPar::current_value() methods (#1838) |
| 8 | 9 | Add GLog is_open(), is_empty() and written_size() methods (#1837) | ... | ... |
NEWS
| 1 | 1 | New Features and Important Changes in GammaLib 1.2.0 |
| 2 | 2 | |
| 3 | -9 August 2016 | |
| 3 | +10 August 2016 | |
| 4 | 4 | |
| 5 | 5 | |
| 6 | 6 | 1. Introduction |
| ... | ... | @@ -33,6 +33,7 @@ The following methods have been added: |
| 33 | 33 | - GLog::is_open() |
| 34 | 34 | - GLog::is_empty() |
| 35 | 35 | - GLog::written_size() |
| 36 | +- GSkyMap::is_empty() | |
| 36 | 37 | |
| 37 | 38 | The following methods have been removed: |
| 38 | 39 | - ... |
| ... | ... | @@ -146,6 +147,9 @@ object. In case that no sky map is written, for example because none has been |
| 146 | 147 | defined so far, the method returns NONE. The GSkyMap::publish() method will |
| 147 | 148 | detect the NONE value and will do nothing if no sky map exists (#1835). |
| 148 | 149 | |
| 150 | +The GSkyMap::is_empty() method signals whether a sky map contains no pixels | |
| 151 | +or no maps (#1828). | |
| 152 | + | |
| 149 | 153 | |
| 150 | 154 | 13. Support module |
| 151 | 155 | ------------------ | ... | ... |
README.md
| 1 | 1 | GammaLib information |
| 2 | 2 | ==================== |
| 3 | -* Version: 1.2.0.dev1 (9 August 2016) | |
| 3 | +* Version: 1.2.0.dev1 (10 August 2016) | |
| 4 | 4 | * Author: Juergen Knoedlseder (jurgen.knodlseder@irap.omp.eu) |
| 5 | 5 | |
| 6 | 6 | [](https://cta-jenkins.irap.omp.eu/job/gammalib-integrate-os/) | ... | ... |
include/GSkyMap.hpp
| ... | ... | @@ -131,6 +131,7 @@ public: |
| 131 | 131 | void clear(void); |
| 132 | 132 | GSkyMap* clone(void) const; |
| 133 | 133 | std::string classname(void) const; |
| 134 | + bool is_empty(void) const; | |
| 134 | 135 | const int& npix(void) const; |
| 135 | 136 | const int& nx(void) const; |
| 136 | 137 | const int& ny(void) const; |
| ... | ... | @@ -289,6 +290,20 @@ std::string GSkyMap::classname(void) const |
| 289 | 290 | |
| 290 | 291 | |
| 291 | 292 | /***********************************************************************//** |
| 293 | + * @brief Signals if sky map is empty | |
| 294 | + * | |
| 295 | + * @return True if sky map is empty, false otherwise. | |
| 296 | + * | |
| 297 | + * Signals if a sky map has no pixels or maps. | |
| 298 | + ***************************************************************************/ | |
| 299 | +inline | |
| 300 | +bool GSkyMap::is_empty(void) const | |
| 301 | +{ | |
| 302 | + return ((m_num_pixels == 0) || (m_num_maps == 0)); | |
| 303 | +} | |
| 304 | + | |
| 305 | + | |
| 306 | +/***********************************************************************//** | |
| 292 | 307 | * @brief Returns number of pixels |
| 293 | 308 | * |
| 294 | 309 | * @return Number of pixels in one sky map. | ... | ... |
pyext/GSkyMap.i
test/test_GSky.cpp
| ... | ... | @@ -876,6 +876,24 @@ void TestGSky::test_GSkyMap(void) |
| 876 | 876 | system("rm -rf test_map_src.fits"); |
| 877 | 877 | system("rm -rf test_map_dst.fits"); |
| 878 | 878 | system("rm -rf test_map_shape*.fits"); |
| 879 | + | |
| 880 | + // Define empty sky map | |
| 881 | + GSkyMap empty_map; | |
| 882 | + | |
| 883 | + // Test that empty map is indeed empty | |
| 884 | + test_assert(empty_map.is_empty(), "Check for empty sky map"); | |
| 885 | + test_value(empty_map.nmaps(), 0, "Check for no sky maps"); | |
| 886 | + test_value(empty_map.npix(), 0, "Check number of empty sky map pixels"); | |
| 887 | + test_value(empty_map.nx(), 0, "Check number of empty sky map X pixels"); | |
| 888 | + test_value(empty_map.ny(), 0, "Check number of empty sky map X pixels"); | |
| 889 | + test_value(empty_map.ndim(), 0, "Check empty sky map dimension"); | |
| 890 | + test_value(empty_map.shape().size(), 0, "Check empty sky map shape"); | |
| 891 | + | |
| 892 | + // Test that writing, publishing and printing of empty sky map does not | |
| 893 | + // lead to a segmentation fault | |
| 894 | + empty_map.save("test_empty_map.fits", true); | |
| 895 | + empty_map.publish("Empty sky map"); | |
| 896 | + empty_map.print(); | |
| 879 | 897 | |
| 880 | 898 | // Define several maps for comparison |
| 881 | 899 | GSkyMap map_src("CAR", "GAL", 0.0, 0.0, -1.0, 1.0, 10, 10, 2); | ... | ... |