File: tnoisemsrowprovider.cpp

package info (click to toggle)
wsclean 3.7-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 10,968 kB
  • sloc: cpp: 85,742; python: 3,526; sh: 245; makefile: 21
file content (43 lines) | stat: -rw-r--r-- 1,412 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "../../msproviders/rowproviders/noisemsrowprovider.h"

#include <aocommon/logger.h>

#include <boost/test/unit_test.hpp>

#include <sstream>

namespace wsclean {

BOOST_AUTO_TEST_SUITE(noise_ms_row_provider)

BOOST_AUTO_TEST_CASE(noise_baseline_map) {
  aocommon::Logger::SetVerbosity(aocommon::LogVerbosityLevel::kQuiet);
  BOOST_CHECK(NoiseMSRowProvider::NoiseMap().Empty());

  const std::string input =
      "0\t0\tnan\n"
      "0\t1\t-3.14\n"
      "0\t2\t42\n"
      "1\t1\t-nan\n"
      "2\t1\t0.987654321\n"
      "2\t2\t0\n";
  std::istringstream str(input);

  NoiseMSRowProvider::NoiseMap map(str);
  BOOST_CHECK(!map.Empty());
  BOOST_CHECK(!std::isfinite(map.GetNoiseValue(0, 0)));
  BOOST_CHECK_CLOSE_FRACTION(map.GetNoiseValue(0, 1), -3.14, 1e-5);
  BOOST_CHECK_CLOSE_FRACTION(map.GetNoiseValue(1, 0), -3.14, 1e-5);
  BOOST_CHECK_CLOSE_FRACTION(map.GetNoiseValue(0, 2), 42, 1e-5);
  BOOST_CHECK_CLOSE_FRACTION(map.GetNoiseValue(2, 0), 42, 1e-5);
  BOOST_CHECK(!std::isfinite(map.GetNoiseValue(1, 1)));
  BOOST_CHECK_CLOSE_FRACTION(map.GetNoiseValue(2, 1), 0.987654321, 1e-5);
  BOOST_CHECK_CLOSE_FRACTION(map.GetNoiseValue(1, 2), 0.987654321, 1e-5);
  BOOST_CHECK_EQUAL(map.GetNoiseValue(2, 2), 0);
  BOOST_CHECK_THROW(map.GetNoiseValue(0, 3), std::runtime_error);
  BOOST_CHECK_THROW(map.GetNoiseValue(3, 3), std::runtime_error);
}

BOOST_AUTO_TEST_SUITE_END()

}  // namespace wsclean