File: tmetadata.cpp

package info (click to toggle)
aoflagger 3.4.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,960 kB
  • sloc: cpp: 83,076; python: 10,187; sh: 260; makefile: 178
file content (101 lines) | stat: -rw-r--r-- 3,448 bytes parent folder | download | duplicates (3)
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#include <boost/test/unit_test.hpp>

#include "../../interface/aoflagger.h"

BOOST_AUTO_TEST_SUITE(lua_metadata, *boost::unit_test::label("lua"))

BOOST_AUTO_TEST_CASE(no_metadata) {
  aoflagger::AOFlagger flagger;
  aoflagger::Strategy strategy = flagger.LoadStrategyString(
      "function execute(input)\n"
      "  assert(not input:has_metadata())\n"
      "  if(input:is_auto_correlation()) then\n"
      "    error(\"incorrect input:is_auto_correlation()\")\n"
      "  end\n"
      "end\n");
  aoflagger::ImageSet imageSet = flagger.MakeImageSet(10, 10, 1);
  strategy.Run(imageSet);
}

BOOST_AUTO_TEST_CASE(propagation) {
  aoflagger::AOFlagger flagger;
  aoflagger::Strategy strategy = flagger.LoadStrategyString(
      // Of course this could be done a lot shorter with Lua's assert, but
      // assert does not provide direct information about what went wrong
      "function execute(input)\n"
      "  if(not input:has_metadata()) then\n"
      "    error(\"input:has_metadata() should return true\")\n"
      "  end\n"
      "  if(input:get_antenna1_name() ~= \"first\") then\n"
      "    error(\"incorrect input:get_antenna1_name()\")\n"
      "  end\n"
      "  if(input:get_antenna2_name() ~= \"second\") then\n"
      "    error(\"incorrect input:get_antenna2_name()\")\n"
      "  end\n"
      "  if(input:get_antenna1_index() ~= 0) then\n"
      "    error(\"incorrect input:get_antenna1_index()\")\n"
      "  end\n"
      "  if(input:get_antenna2_index() ~= 1) then\n"
      "    error(\"incorrect input:get_antenna2_index()\")\n"
      "  end\n"
      "  if(input:get_baseline_distance() ~= 5) then\n"
      "    error(\"incorrect input:get_baseline_distance()\")\n"
      "  end\n"
      "  local v = input:get_baseline_vector()\n"
      "  if(v['x'] ~= 3) then\n"
      "    error(\"incorrect input:get_baseline_vector()['x']\")\n"
      "  end\n"
      "  if(v['y'] ~= 0) then\n"
      "    error(\"incorrect input:get_baseline_vector()['y']\")\n"
      "  end\n"
      "  if(v['z'] ~= 4) then\n"
      "    error(\"incorrect input:get_baseline_vector()['z']\")\n"
      "  end\n"
      "  if(#input:get_frequencies() ~= 10) then\n"
      "    error(\"incorrect #input:get_frequencies()\")\n"
      "  end\n"
      "  if(input:get_frequencies()[1] ~= 150e6) then\n"
      "    error(\"incorrect "
      "input:get_frequencies()[1]\"..input:get_frequencies()[1])\n"
      "  end\n"
      "  if(#input:get_times() ~= 8) then\n"
      "    error(\"incorrect #input:get_times()\")\n"
      "  end\n"
      "  if(input:is_auto_correlation()) then\n"
      "    error(\"incorrect input:is_auto_correlation()\")\n"
      "  end\n"
      "end\n");
  aoflagger::Antenna a1, a2;
  a1.id = 0;
  a1.name = "first";
  a1.x = 1;
  a1.y = 0;
  a1.z = 2;
  a2.id = 1;
  a2.name = "second";
  a2.x = 4;
  a2.y = 0;
  a2.z = 6;
  flagger.SetAntennaList(std::vector<aoflagger::Antenna>{a1, a2});

  aoflagger::Channel c;
  c.width = 1e6;
  c.frequency = 150e6;
  aoflagger::Band b;
  b.id = 0;
  b.channels.assign(10, c);
  flagger.SetBandList(std::vector<aoflagger::Band>{b});

  aoflagger::Interval interval;
  interval.id = 0;
  interval.times.assign(8, 1337.0);
  flagger.SetIntervalList(std::vector<aoflagger::Interval>{interval});

  aoflagger::ImageSet imageSet = flagger.MakeImageSet(8, 10, 1);
  imageSet.SetAntennas(0, 1);
  imageSet.SetBand(0);
  imageSet.SetInterval(0);
  strategy.Run(imageSet);
}

BOOST_AUTO_TEST_SUITE_END()