Skip to content
Snippets Groups Projects
Commit 217b20ff authored by Jakob Maljaars's avatar Jakob Maljaars
Browse files

Merge branch '38-boost-suite' into 'master'

Resolve "Use BOOST_AUTO_TEST_SUITE"

Closes #38

See merge request RD/EveryBeam!56
parents 18a0350d 932002c8
Branches
No related tags found
No related merge requests found
...@@ -32,21 +32,11 @@ test-and-coverage: ...@@ -32,21 +32,11 @@ test-and-coverage:
script: script:
# Download casacore wsrt measures # Download casacore wsrt measures
- wget -q ftp://ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar && tar -xf WSRT_Measures.ztar -C /var/lib/casacore/data/ && rm -f WSRT_Measures.ztar - wget -q ftp://ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar && tar -xf WSRT_Measures.ztar -C /var/lib/casacore/data/ && rm -f WSRT_Measures.ztar
# Download LOFAR/VLA/MWA Mock measurement set # Build in Debug mode
- ./scripts/download_lofar_ms.sh && export LOFAR_MOCK_MS=$PWD/test_data/LOFAR_MOCK.ms/
- ./scripts/download_vla_ms.sh && export VLA_MOCK_MS=$PWD/test_data/VLA_MOCK.ms/
- ./scripts/download_mwa_ms.sh && export MWA_MOCK_MS=$PWD/test_data/MWA_MOCK.ms/
- ./scripts/download_mwa_coeff.sh && export MWA_COEFF_PATH=$PWD/test_data/mwa_full_embedded_element_pattern.h5
# Build in Debug mode and add LOFAR_MOCK_MS
- mkdir build && cd build - mkdir build && cd build
- | - cmake -DCMAKE_INSTALL_PREFIX=.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-coverage" -DCMAKE_EXE_LINKER_FLAGS="-coverage" ..
cmake \
-DCMAKE_INSTALL_PREFIX=.. -DLOFAR_MOCK_MS=$LOFAR_MOCK_MS \
-DVLA_MOCK_MS=$VLA_MOCK_MS \
-DMWA_MOCK_MS=$MWA_MOCK_MS -DMWA_COEFF_PATH=$MWA_COEFF_PATH \
-DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-coverage" -DCMAKE_EXE_LINKER_FLAGS="-coverage" ..
- make install -j8 - make install -j8
- ctest -T test - ctest -j4 -T test
# Capture coverage # Capture coverage
- gcovr -r .. -e '.*/external/.*' -e '.*/CompilerIdCXX/.*' -e '.*/test/.*' -e '.*/demo/.*' - gcovr -r .. -e '.*/external/.*' -e '.*/CompilerIdCXX/.*' -e '.*/test/.*' -e '.*/demo/.*'
- gcovr -r .. -e '.*/external/.*' -e '.*/CompilerIdCXX/.*' -e '.*/test/.*' -e '.*/demo/.*' --xml > coverage.xml - gcovr -r .. -e '.*/external/.*' -e '.*/CompilerIdCXX/.*' -e '.*/test/.*' -e '.*/demo/.*' --xml > coverage.xml
......
...@@ -14,7 +14,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake) ...@@ -14,7 +14,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake)
# Configure directory for data files # Configure directory for data files
set(CMAKE_INSTALL_DATA_DIR "${CMAKE_INSTALL_PREFIX}/share/${projectname}") set(CMAKE_INSTALL_DATA_DIR "${CMAKE_INSTALL_PREFIX}/share/${projectname}")
message("Storing data in: " ${CMAKE_INSTALL_DATA_DIR}) message("Storing data in: " ${CMAKE_INSTALL_DATA_DIR})
configure_file(${CMAKE_SOURCE_DIR}/CMake/config.h.in ${CMAKE_BINARY_DIR}/config.h)
# Find and include git submodules # Find and include git submodules
find_package(Git QUIET) find_package(Git QUIET)
...@@ -101,10 +100,15 @@ add_subdirectory(cpp) ...@@ -101,10 +100,15 @@ add_subdirectory(cpp)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Add tests # Add tests
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_TESTING) if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_TESTING)
add_subdirectory(cpp/test)
# TODO: compiling the demos should probably be a different cmake project # TODO: compiling the demos should probably be a different cmake project
# in which we use find_package(EveryBeam) # in which we use find_package(EveryBeam)
add_subdirectory(demo) add_subdirectory(demo)
if(Boost_FOUND)
add_subdirectory(cpp/test)
else()
message("Boost NOT found. This is not an error but indicates that the tests won't be built.")
endif()
endif() endif()
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
......
# Find boost # Find boost
find_package(Boost COMPONENTS unit_test_framework) find_package(Boost COMPONENTS unit_test_framework)
add_executable(taocommon taocommon.cc) # Set cache values if not specified
add_executable(teigen teigen.cc) set(LOFAR_MOCK_MS ${CMAKE_SOURCE_DIR}/test_data/LOFAR_MOCK.ms CACHE PATH "")
add_executable(tpybind11 tpybind11.cc) set(VLA_MOCK_MS ${CMAKE_SOURCE_DIR}/test_data/VLA_MOCK.ms CACHE PATH "")
target_link_libraries(tpybind11 PRIVATE pybind11::embed) set(MWA_MOCK_MS ${CMAKE_SOURCE_DIR}/test_data/MWA_MOCK.ms CACHE PATH "")
set(MWA_COEFF_PATH ${CMAKE_SOURCE_DIR}/test_data/mwa_full_embedded_element_pattern.h5 CACHE PATH "")
# Add test configure_file(${CMAKE_SOURCE_DIR}/CMake/config.h.in ${CMAKE_BINARY_DIR}/config.h)
add_test(submodule-tests taocommon)
add_test(submodule-tests teigen)
add_test(submodule-tests tpybind11)
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Add tests if Boost found set(TEST_FILENAMES
if(Boost_FOUND) runtests.cc
include_directories(${Boost_INCLUDE_DIR}) tlofar.cc
set(TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/runtests.cc) tmwa.cc
tstation.cc
# Test LOFAR beamforming tvla.cc
if( LOFAR_MOCK_MS )
set(TEST_SOURCES
${TEST_SOURCES}
${CMAKE_CURRENT_SOURCE_DIR}/tload_lofar.cc
) )
endif()
# Test VLA beamforming # Add boost dynamic link flag for all test files.
if( VLA_MOCK_MS ) # https://www.boost.org/doc/libs/1_66_0/libs/test/doc/html/boost_test/usage_variants.html
set(TEST_SOURCES # Without this flag, linking is incorrect and boost performs duplicate delete()
${TEST_SOURCES} # calls after running all tests, in the cleanup phase.
${CMAKE_CURRENT_SOURCE_DIR}/tvla.cc set_source_files_properties(
${TEST_FILENAMES} PROPERTIES COMPILE_DEFINITIONS "BOOST_TEST_DYN_LINK"
) )
endif()
# Test MWA beamforming (assumes that mwa h5 coefficients file can be found!) add_test(
if( MWA_MOCK_MS AND MWA_COEFF_PATH ) NAME download_lofar_ms
set(TEST_SOURCES COMMAND ${CMAKE_SOURCE_DIR}/scripts/download_lofar_ms.sh
${TEST_SOURCES} )
${CMAKE_CURRENT_SOURCE_DIR}/tmwa.cc add_test(
) NAME download_vla_ms
elseif( MWA_MOCK_MS OR MWA_COEFF_PATH ) COMMAND ${CMAKE_SOURCE_DIR}/scripts/download_vla_ms.sh
message(WARNING "To compile the MWA test, both the MWA_MOCK_MS and MWA_COEFF_PATH needs to be set. Now skipping MWA test compiling.") )
endif() add_test(
NAME download_mwa_ms
COMMAND ${CMAKE_SOURCE_DIR}/scripts/download_mwa_ms.sh
)
add_test(
NAME download_mwa_coeff
COMMAND ${CMAKE_SOURCE_DIR}/scripts/download_mwa_coeff.sh
)
set_tests_properties(
download_lofar_ms download_vla_ms download_mwa_ms download_mwa_coeff
PROPERTIES FIXTURES_SETUP mocks
)
# Add test executable add_executable(
add_executable(runtests ${TEST_SOURCES}) unittests EXCLUDE_FROM_ALL
target_link_libraries(runtests everybeam ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY}) ${TEST_FILENAMES}
)
target_link_libraries(unittests everybeam ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} )
# Required to get the config.h header # Required to get the config.h header
target_include_directories(runtests PRIVATE "${CMAKE_BINARY_DIR}") target_include_directories(unittests PRIVATE "${CMAKE_BINARY_DIR}")
add_test(runtests runtests)
endif()
# Add tests for ctest
add_test(buildunittests ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target unittests)
set_tests_properties(buildunittests PROPERTIES FIXTURES_SETUP unittests)
add_test(
NAME unittests
COMMAND unittests -f JUNIT -k unittests.xml --catch_system_error=yes
)
set_tests_properties(
unittests PROPERTIES LABELS unit
FIXTURES_REQUIRED "unittests;mocks"
)
\ No newline at end of file
#define BOOST_TEST_MODULE everybeam #define BOOST_TEST_MODULE everybeam
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp> #include <boost/test/unit_test.hpp>
#include <aocommon/matrix2x2.h>
#include <iostream>
int main() {
double unit[4] = {1.0, 0.0, 0.0, 1.0};
double e1, e2;
aocommon::Matrix2x2::EigenValues(unit, e1, e2);
std::cout << "EigenValue 1 " << e1 << "\nEigenvalue 2 " << e2 << std::endl;
return 0;
}
#include <iostream>
#include <Eigen/Dense>
using Eigen::MatrixXd;
int main() {
MatrixXd m(2, 2);
m(0, 0) = 3;
m(1, 0) = 2.5;
m(0, 1) = -1;
m(1, 1) = m(1, 0) + m(0, 1);
std::cout << m << std::endl;
}
...@@ -10,7 +10,16 @@ ...@@ -10,7 +10,16 @@
#include <complex> #include <complex>
#include <cmath> #include <cmath>
namespace everybeam { using everybeam::ElementResponseModel;
using everybeam::Load;
using everybeam::Options;
using everybeam::coords::CoordinateSystem;
using everybeam::griddedresponse::GriddedResponse;
using everybeam::griddedresponse::LOFARGrid;
using everybeam::telescope::LOFAR;
using everybeam::telescope::Telescope;
BOOST_AUTO_TEST_SUITE(tlofar)
BOOST_AUTO_TEST_CASE(load_lofar) { BOOST_AUTO_TEST_CASE(load_lofar) {
Options options; Options options;
...@@ -19,18 +28,17 @@ BOOST_AUTO_TEST_CASE(load_lofar) { ...@@ -19,18 +28,17 @@ BOOST_AUTO_TEST_CASE(load_lofar) {
casacore::MeasurementSet ms(LOFAR_MOCK_MS); casacore::MeasurementSet ms(LOFAR_MOCK_MS);
// Load LOFAR Telescope // Load LOFAR Telescope
std::unique_ptr<telescope::Telescope> telescope = Load(ms, options); std::unique_ptr<Telescope> telescope = Load(ms, options);
// Assert if we indeed have a LOFAR pointer // Assert if we indeed have a LOFAR pointer
BOOST_CHECK(nullptr != dynamic_cast<telescope::LOFAR*>(telescope.get())); BOOST_CHECK(nullptr != dynamic_cast<LOFAR*>(telescope.get()));
// Assert if correct number of stations // Assert if correct number of stations
std::size_t nstations = 70; std::size_t nstations = 70;
BOOST_CHECK_EQUAL(telescope->GetNrStations(), nstations); BOOST_CHECK_EQUAL(telescope->GetNrStations(), nstations);
// Assert if GetStation(stationd_id) behaves properly // Assert if GetStation(stationd_id) behaves properly
const telescope::LOFAR& lofartelescope = const LOFAR& lofartelescope = static_cast<const LOFAR&>(*telescope.get());
static_cast<const telescope::LOFAR&>(*telescope.get());
BOOST_CHECK_EQUAL(lofartelescope.GetStation(0)->GetName(), "CS001HBA0"); BOOST_CHECK_EQUAL(lofartelescope.GetStation(0)->GetName(), "CS001HBA0");
// Properties extracted from MS // Properties extracted from MS
...@@ -40,7 +48,7 @@ BOOST_AUTO_TEST_CASE(load_lofar) { ...@@ -40,7 +48,7 @@ BOOST_AUTO_TEST_CASE(load_lofar) {
double ra(2.15374123), dec(0.8415521), dl(0.5 * M_PI / 180.), double ra(2.15374123), dec(0.8415521), dl(0.5 * M_PI / 180.),
dm(0.5 * M_PI / 180.), shift_l(0.), shift_m(0.); dm(0.5 * M_PI / 180.), shift_l(0.), shift_m(0.);
coords::CoordinateSystem coord_system = {.width = width, CoordinateSystem coord_system = {.width = width,
.height = height, .height = height,
.ra = ra, .ra = ra,
.dec = dec, .dec = dec,
...@@ -48,10 +56,9 @@ BOOST_AUTO_TEST_CASE(load_lofar) { ...@@ -48,10 +56,9 @@ BOOST_AUTO_TEST_CASE(load_lofar) {
.dm = dm, .dm = dm,
.phase_centre_dl = shift_l, .phase_centre_dl = shift_l,
.phase_centre_dm = shift_m}; .phase_centre_dm = shift_m};
std::unique_ptr<griddedresponse::GriddedResponse> grid_response = std::unique_ptr<GriddedResponse> grid_response =
telescope->GetGriddedResponse(coord_system); telescope->GetGriddedResponse(coord_system);
BOOST_CHECK(nullptr != BOOST_CHECK(nullptr != dynamic_cast<LOFARGrid*>(grid_response.get()));
dynamic_cast<griddedresponse::LOFARGrid*>(grid_response.get()));
// Define buffer and get gridded responses // Define buffer and get gridded responses
std::vector<std::complex<float>> antenna_buffer_single( std::vector<std::complex<float>> antenna_buffer_single(
...@@ -101,10 +108,9 @@ BOOST_AUTO_TEST_CASE(load_lofar) { ...@@ -101,10 +108,9 @@ BOOST_AUTO_TEST_CASE(load_lofar) {
options_diff_beam.use_differential_beam = true; options_diff_beam.use_differential_beam = true;
// Load LOFAR Telescope // Load LOFAR Telescope
std::unique_ptr<telescope::Telescope> telescope_diff_beam = std::unique_ptr<Telescope> telescope_diff_beam = Load(ms, options_diff_beam);
Load(ms, options_diff_beam);
std::unique_ptr<griddedresponse::GriddedResponse> grid_response_diff_beam = std::unique_ptr<GriddedResponse> grid_response_diff_beam =
telescope_diff_beam->GetGriddedResponse(coord_system); telescope_diff_beam->GetGriddedResponse(coord_system);
std::vector<std::complex<float>> antenna_buffer_diff_beam( std::vector<std::complex<float>> antenna_buffer_diff_beam(
...@@ -123,4 +129,5 @@ BOOST_AUTO_TEST_CASE(load_lofar) { ...@@ -123,4 +129,5 @@ BOOST_AUTO_TEST_CASE(load_lofar) {
npy::SaveArrayAsNumpy("lofar_station_responses.npy", false, 4, leshape, npy::SaveArrayAsNumpy("lofar_station_responses.npy", false, 4, leshape,
antenna_buffer_single); antenna_buffer_single);
} }
} // namespace everybeam
\ No newline at end of file BOOST_AUTO_TEST_SUITE_END()
...@@ -9,7 +9,15 @@ ...@@ -9,7 +9,15 @@
#include <complex> #include <complex>
#include <cmath> #include <cmath>
namespace everybeam { using everybeam::Load;
using everybeam::Options;
using everybeam::coords::CoordinateSystem;
using everybeam::griddedresponse::GriddedResponse;
using everybeam::griddedresponse::MWAGrid;
using everybeam::telescope::MWA;
using everybeam::telescope::Telescope;
BOOST_AUTO_TEST_SUITE(tmwa)
BOOST_AUTO_TEST_CASE(load_mwa) { BOOST_AUTO_TEST_CASE(load_mwa) {
Options options; Options options;
...@@ -18,10 +26,10 @@ BOOST_AUTO_TEST_CASE(load_mwa) { ...@@ -18,10 +26,10 @@ BOOST_AUTO_TEST_CASE(load_mwa) {
casacore::MeasurementSet ms(MWA_MOCK_MS); casacore::MeasurementSet ms(MWA_MOCK_MS);
std::unique_ptr<telescope::Telescope> telescope = Load(ms, options); std::unique_ptr<Telescope> telescope = Load(ms, options);
// Assert if we indeed have a MWA pointer // Assert if we indeed have a MWA pointer
BOOST_CHECK(nullptr != dynamic_cast<telescope::MWA*>(telescope.get())); BOOST_CHECK(nullptr != dynamic_cast<MWA*>(telescope.get()));
// Assert if correct number of stations // Assert if correct number of stations
std::size_t nstations = 128; std::size_t nstations = 128;
...@@ -32,7 +40,7 @@ BOOST_AUTO_TEST_CASE(load_mwa) { ...@@ -32,7 +40,7 @@ BOOST_AUTO_TEST_CASE(load_mwa) {
std::size_t width(16), height(16); std::size_t width(16), height(16);
double ra(2.18166148), dec(-0.74612826), dl(1. * M_PI / 180.), double ra(2.18166148), dec(-0.74612826), dl(1. * M_PI / 180.),
dm(1. * M_PI / 180.), shift_l(0.), shift_m(0.); dm(1. * M_PI / 180.), shift_l(0.), shift_m(0.);
coords::CoordinateSystem coord_system = {.width = width, CoordinateSystem coord_system = {.width = width,
.height = height, .height = height,
.ra = ra, .ra = ra,
.dec = dec, .dec = dec,
...@@ -41,10 +49,9 @@ BOOST_AUTO_TEST_CASE(load_mwa) { ...@@ -41,10 +49,9 @@ BOOST_AUTO_TEST_CASE(load_mwa) {
.phase_centre_dl = shift_l, .phase_centre_dl = shift_l,
.phase_centre_dm = shift_m}; .phase_centre_dm = shift_m};
std::unique_ptr<griddedresponse::GriddedResponse> grid_response = std::unique_ptr<GriddedResponse> grid_response =
telescope->GetGriddedResponse(coord_system); telescope->GetGriddedResponse(coord_system);
BOOST_CHECK(nullptr != BOOST_CHECK(nullptr != dynamic_cast<MWAGrid*>(grid_response.get()));
dynamic_cast<griddedresponse::MWAGrid*>(grid_response.get()));
std::vector<std::complex<float>> antenna_buffer( std::vector<std::complex<float>> antenna_buffer(
grid_response->GetBufferSize(telescope->GetNrStations())); grid_response->GetBufferSize(telescope->GetNrStations()));
...@@ -87,4 +94,5 @@ BOOST_AUTO_TEST_CASE(load_mwa) { ...@@ -87,4 +94,5 @@ BOOST_AUTO_TEST_CASE(load_mwa) {
npy::SaveArrayAsNumpy("mwa_station_responses.npy", false, 4, leshape, npy::SaveArrayAsNumpy("mwa_station_responses.npy", false, 4, leshape,
antenna_buffer); antenna_buffer);
} }
} // namespace everybeam
\ No newline at end of file BOOST_AUTO_TEST_SUITE_END()
#include <pybind11/pybind11.h>
#include <pybind11/eigen.h>
int main() {
// Empty, just check if headers are correctly found
return 0;
}
\ No newline at end of file
#include "./../station.h" #include "./../station.h"
// TODO: make a test out of this #include <boost/test/unit_test.hpp>
int main() {
BOOST_AUTO_TEST_SUITE(tstation)
BOOST_AUTO_TEST_CASE(station) {
const everybeam::vector3r_t position = {{1.0, 2.0, 3.0}}; const everybeam::vector3r_t position = {{1.0, 2.0, 3.0}};
std::string name = "station0_LBA"; std::string name = "station0_LBA";
...@@ -14,9 +17,6 @@ int main() { ...@@ -14,9 +17,6 @@ int main() {
auto element_response = station->GetElementResponse(); auto element_response = station->GetElementResponse();
double freq = 50e6; double freq = 50e6;
double theta = 0.0;
double phi = 0.0;
std::complex<double> response[2][2];
constexpr int N = 100; constexpr int N = 100;
std::vector<std::complex<double>> result(N * N * 2 * 2); std::vector<std::complex<double>> result(N * N * 2 * 2);
...@@ -30,11 +30,10 @@ int main() { ...@@ -30,11 +30,10 @@ int main() {
double y = (2.0 * j) / (N - 1) - 1.0; double y = (2.0 * j) / (N - 1) - 1.0;
double theta = asin(sqrt(x * x + y * y)); double theta = asin(sqrt(x * x + y * y));
double phi = atan2(y, x); double phi = atan2(y, x);
BOOST_REQUIRE_NO_THROW(
double az = M_PI - phi; element_response->Response(0, freq, theta, phi, result_arr[i][j]));
double el = M_PI_2 - theta;
element_response->Response(0, freq, theta, phi, result_arr[i][j]);
} }
} }
return 0;
} }
BOOST_AUTO_TEST_SUITE_END()
...@@ -10,16 +10,24 @@ ...@@ -10,16 +10,24 @@
#include <complex> #include <complex>
#include <cmath> #include <cmath>
namespace everybeam { using everybeam::Load;
using everybeam::Options;
using everybeam::coords::CoordinateSystem;
using everybeam::griddedresponse::DishGrid;
using everybeam::griddedresponse::GriddedResponse;
using everybeam::telescope::Dish;
using everybeam::telescope::Telescope;
BOOST_AUTO_TEST_SUITE(tvla)
BOOST_AUTO_TEST_CASE(load_vla) { BOOST_AUTO_TEST_CASE(load_vla) {
Options options; Options options;
casacore::MeasurementSet ms(VLA_MOCK_MS); casacore::MeasurementSet ms(VLA_MOCK_MS);
std::unique_ptr<telescope::Telescope> telescope = Load(ms, options); std::unique_ptr<Telescope> telescope = Load(ms, options);
// Assert if we indeed have a VLA pointer // Assert if we indeed have a VLA pointer
BOOST_CHECK(nullptr != dynamic_cast<telescope::Dish*>(telescope.get())); BOOST_CHECK(nullptr != dynamic_cast<Dish*>(telescope.get()));
// Assert if correct number of stations // Assert if correct number of stations
std::size_t nstations = 25; std::size_t nstations = 25;
...@@ -32,7 +40,7 @@ BOOST_AUTO_TEST_CASE(load_vla) { ...@@ -32,7 +40,7 @@ BOOST_AUTO_TEST_CASE(load_vla) {
double ra(2.62880729), dec(0.02831797), dl(0.125 * M_PI / 180.), double ra(2.62880729), dec(0.02831797), dl(0.125 * M_PI / 180.),
dm(0.125 * M_PI / 180.), shift_l(0.), shift_m(0.); dm(0.125 * M_PI / 180.), shift_l(0.), shift_m(0.);
coords::CoordinateSystem coord_system = {.width = width, CoordinateSystem coord_system = {.width = width,
.height = height, .height = height,
.ra = ra, .ra = ra,
.dec = dec, .dec = dec,
...@@ -40,10 +48,9 @@ BOOST_AUTO_TEST_CASE(load_vla) { ...@@ -40,10 +48,9 @@ BOOST_AUTO_TEST_CASE(load_vla) {
.dm = dm, .dm = dm,
.phase_centre_dl = shift_l, .phase_centre_dl = shift_l,
.phase_centre_dm = shift_m}; .phase_centre_dm = shift_m};
std::unique_ptr<griddedresponse::GriddedResponse> grid_response = std::unique_ptr<GriddedResponse> grid_response =
telescope->GetGriddedResponse(coord_system); telescope->GetGriddedResponse(coord_system);
BOOST_CHECK(nullptr != BOOST_CHECK(nullptr != dynamic_cast<DishGrid*>(grid_response.get()));
dynamic_cast<griddedresponse::DishGrid*>(grid_response.get()));
std::vector<std::complex<float>> antenna_buffer( std::vector<std::complex<float>> antenna_buffer(
grid_response->GetBufferSize(telescope->GetNrStations())); grid_response->GetBufferSize(telescope->GetNrStations()));
...@@ -92,4 +99,5 @@ BOOST_AUTO_TEST_CASE(load_vla) { ...@@ -92,4 +99,5 @@ BOOST_AUTO_TEST_CASE(load_vla) {
npy::SaveArrayAsNumpy("vla_station_responses.npy", false, 4, leshape, npy::SaveArrayAsNumpy("vla_station_responses.npy", false, 4, leshape,
antenna_buffer); antenna_buffer);
} }
} // namespace everybeam
\ No newline at end of file BOOST_AUTO_TEST_SUITE_END()
#
# base # base
#
FROM ubuntu:18.04 FROM ubuntu:18.04
RUN apt-get update RUN apt-get update && apt-get upgrade -y && \
RUN apt-get upgrade -y
#
# install astronomy packages # install astronomy packages
# apt-get -y install casacore-dev python-casacore \
RUN apt-get -y install casacore-dev aoflagger-dev libcfitsio-dev wcslib-dev
RUN apt-get -y install python-casacore
RUN apt-get -y install aoflagger-dev
RUN apt-get -y install libcfitsio-dev
RUN apt-get -y install wcslib-dev
#
# install misc packages # install misc packages
# RUN apt-get update && \
RUN apt-get update apt-get -y install wget git make cmake g++ doxygen graphviz \
RUN apt-get -y install wget git make cmake g++ doxygen graphviz
#
# install dependencies # install dependencies
# libboost-all-dev libhdf5-dev libfftw3-dev \
RUN apt-get -y install libboost-all-dev libblas-dev liblapack-dev libgsl-dev libxml2-dev \
RUN apt-get -y install libhdf5-dev libpng-dev libgtkmm-3.0-dev
RUN apt-get -y install libfftw3-dev
RUN apt-get -y install libblas-dev
RUN apt-get -y install liblapack-dev
RUN apt-get -y install libgsl-dev
RUN apt-get -y install libxml2-dev
RUN apt-get -y install libpng-dev
RUN apt-get -y install libgtkmm-3.0-dev
...@@ -12,8 +12,7 @@ ENV INSTALLDIR /opt ...@@ -12,8 +12,7 @@ ENV INSTALLDIR /opt
ENV DP3_VERSION 4.1 ENV DP3_VERSION 4.1
ENV DP3_BRANCH oskar ENV DP3_BRANCH oskar
RUN mkdir -p ${INSTALLDIR}/dp3/build RUN mkdir -p ${INSTALLDIR}/dp3/build
RUN cd ${INSTALLDIR}/dp3 && git clone https://github.com/lofar-astron/DP3.git dp3 RUN cd ${INSTALLDIR}/dp3 && git clone https://github.com/lofar-astron/DP3.git dp3 && cd dp3 && git checkout ${DP3_BRANCH}
RUN cd ${INSTALLDIR}/dp3/dp3 && git checkout ${DP3_BRANCH}
RUN cd ${INSTALLDIR}/dp3/build && cmake ../dp3 -DCASACORE_ROOT_DIR=${INSTALLDIR}/casacore -DCMAKE_PREFIX_PATH=${INSTALLDIR}/lofarbeam -DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/dp3 RUN cd ${INSTALLDIR}/dp3/build && cmake ../dp3 -DCASACORE_ROOT_DIR=${INSTALLDIR}/casacore -DCMAKE_PREFIX_PATH=${INSTALLDIR}/lofarbeam -DCMAKE_INSTALL_PREFIX=${INSTALLDIR}/dp3
RUN cd ${INSTALLDIR}/dp3/build && make -j 8 RUN cd ${INSTALLDIR}/dp3/build && make -j 8
RUN cd ${INSTALLDIR}/dp3/build && make install RUN cd ${INSTALLDIR}/dp3/build && make install
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment