Uniform initialization for analysisdata tests.
authorTeemu Murtola <teemu.murtola@gmail.com>
Fri, 7 Jun 2013 10:13:56 +0000 (13:13 +0300)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Mon, 17 Jun 2013 15:59:03 +0000 (17:59 +0200)
Unit tests that use input data now initialize the AnalysisData object
using a common helper, which uses the properties of the input data.
This puts the initialization code into one place only, which makes it
easier to adapt to implementation of #1010.

Related to #1010.

Change-Id: I1ffe3a52a2b5edc7d6ac647cea669c250e67e71c

src/gromacs/analysisdata/tests/analysisdata.cpp
src/gromacs/analysisdata/tests/average.cpp
src/gromacs/analysisdata/tests/histogram.cpp
src/testutils/datatest.cpp
src/testutils/datatest.h

index 9a1a5685b32a2553f4d420f4fc5bae4d52f17619..c9d3fe8e9f71cb500529bff5c30dcaa75c1fbb03 100644 (file)
@@ -146,7 +146,7 @@ TEST_F(AnalysisDataTest, CallsModuleCorrectly)
 {
     gmx::test::AnalysisDataTestInput input(inputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
 
     ASSERT_NO_THROW_GMX(addStaticCheckerModule(input, &data));
     ASSERT_NO_THROW_GMX(addStaticCheckerModule(input, &data));
@@ -162,7 +162,7 @@ TEST_F(AnalysisDataTest, CallsColumnModuleCorrectly)
 {
     gmx::test::AnalysisDataTestInput input(inputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
 
     ASSERT_NO_THROW_GMX(addStaticColumnCheckerModule(input, 0, 2, &data));
     ASSERT_NO_THROW_GMX(addStaticColumnCheckerModule(input, 2, 1, &data));
@@ -177,7 +177,7 @@ TEST_F(AnalysisDataTest, CallsModuleCorrectlyWithOutOfOrderFrames)
 {
     gmx::test::AnalysisDataTestInput input(inputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
 
     ASSERT_NO_THROW_GMX(addStaticCheckerModule(input, &data));
     ASSERT_NO_THROW_GMX(addStaticColumnCheckerModule(input, 1, 2, &data));
@@ -201,7 +201,7 @@ TEST_F(AnalysisDataTest, FullStorageWorks)
 {
     gmx::test::AnalysisDataTestInput input(inputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
 
     ASSERT_NO_THROW_GMX(addStaticStorageCheckerModule(input, -1, &data));
     ASSERT_NO_THROW_GMX(presentAllData(input, &data));
@@ -215,7 +215,7 @@ TEST_F(AnalysisDataTest, CanAddModuleAfterStoredData)
 {
     gmx::test::AnalysisDataTestInput input(inputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
     ASSERT_TRUE(data.requestStorage(-1));
 
     ASSERT_NO_THROW_GMX(presentAllData(input, &data));
@@ -230,7 +230,7 @@ TEST_F(AnalysisDataTest, LimitedStorageWorks)
 {
     gmx::test::AnalysisDataTestInput input(inputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
 
     ASSERT_NO_THROW_GMX(addStaticStorageCheckerModule(input, 1, &data));
     ASSERT_NO_THROW_GMX(presentAllData(input, &data));
@@ -251,8 +251,7 @@ TEST_F(AnalysisDataTest, MultipointCallsModuleCorrectly)
 {
     gmx::test::AnalysisDataTestInput input(multipointinputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
-    data.setMultipoint(true);
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
 
     ASSERT_NO_THROW_GMX(addStaticCheckerModule(input, &data));
     ASSERT_NO_THROW_GMX(addStaticCheckerModule(input, &data));
@@ -268,8 +267,7 @@ TEST_F(AnalysisDataTest, MultipointCallsColumnModuleCorrectly)
 {
     gmx::test::AnalysisDataTestInput input(multipointinputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
-    data.setMultipoint(true);
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
 
     ASSERT_NO_THROW_GMX(addStaticColumnCheckerModule(input, 0, 2, &data));
     ASSERT_NO_THROW_GMX(addStaticColumnCheckerModule(input, 2, 1, &data));
index 078570bb2234cd0f33413d750145a4de8665ac29..543562e60511996de9d12dac8d27bf7a79c908c0 100644 (file)
@@ -67,14 +67,14 @@ const real inputdata[] = {
 };
 //! Multipoint input data for gmx::AnalysisDataAverageModule tests.
 const real mpinputdata[] = {
-    // *INDENT-OFF*
+/* *INDENT-OFF* */
     1.0,  0.0, 1.0, 2.0, MPSTOP,
-    1.0, 0.0, MPSTOP,
-    2.0, END_OF_FRAME,
+          1.0, 0.0, MPSTOP,
+          2.0, END_OF_FRAME,
     2.0,  1.0, 1.0, MPSTOP,
-    2.0, END_OF_FRAME,
+          2.0, END_OF_FRAME,
     3.0,  2.0, 0.0, 0.0, END_OF_FRAME
-    // *INDENT-ON*
+/* *INDENT-ON* */
 };
 
 
@@ -89,7 +89,8 @@ TEST_F(AverageModuleTest, BasicTest)
 {
     gmx::test::AnalysisDataTestInput      input(inputdata);
     gmx::AnalysisData                     data;
-    data.setColumnCount(input.columnCount());
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
+
     gmx::AnalysisDataAverageModulePointer module(
             new gmx::AnalysisDataAverageModule);
     data.addModule(module);
@@ -104,8 +105,8 @@ TEST_F(AverageModuleTest, HandlesMultipointData)
 {
     gmx::test::AnalysisDataTestInput input(mpinputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
-    data.setMultipoint(true);
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
+
     gmx::AnalysisDataAverageModulePointer module(
             new gmx::AnalysisDataAverageModule);
     data.addModule(module);
@@ -120,7 +121,8 @@ TEST_F(AverageModuleTest, CanCustomizeXAxis)
 {
     gmx::test::AnalysisDataTestInput      input(inputdata);
     gmx::AnalysisData                     data;
-    data.setColumnCount(input.columnCount());
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
+
     gmx::AnalysisDataAverageModulePointer module(new gmx::AnalysisDataAverageModule());
     data.addModule(module);
     module->setXAxis(0.5, 0.5);
@@ -142,7 +144,8 @@ TEST_F(FrameAverageModuleTest, BasicTest)
 {
     gmx::test::AnalysisDataTestInput           input(inputdata);
     gmx::AnalysisData                          data;
-    data.setColumnCount(input.columnCount());
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
+
     gmx::AnalysisDataFrameAverageModulePointer module(
             new gmx::AnalysisDataFrameAverageModule);
     data.addModule(module);
index ed392cd863514ff7e334d3aea3e67502a9ecbbad..07e77f87942429fef17060831e428035040343a4 100644 (file)
@@ -162,8 +162,8 @@ TEST_F(SimpleHistogramModuleTest, ComputesCorrectly)
 {
     gmx::test::AnalysisDataTestInput input(simpleinputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
-    data.setMultipoint(true);
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
+
     gmx::AnalysisDataSimpleHistogramModulePointer module(
             new gmx::AnalysisDataSimpleHistogramModule(
                     gmx::histogramFromRange(1.0, 3.0).binCount(4)));
@@ -183,8 +183,8 @@ TEST_F(SimpleHistogramModuleTest, ComputesCorrectlyWithAll)
 {
     gmx::test::AnalysisDataTestInput input(simpleinputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
-    data.setMultipoint(true);
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
+
     gmx::AnalysisDataSimpleHistogramModulePointer module(
             new gmx::AnalysisDataSimpleHistogramModule(
                     gmx::histogramFromRange(1.0, 3.0).binCount(4).includeAll()));
@@ -218,8 +218,8 @@ TEST_F(WeightedHistogramModuleTest, ComputesCorrectly)
 {
     gmx::test::AnalysisDataTestInput input(weightedinputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
-    data.setMultipoint(true);
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
+
     gmx::AnalysisDataWeightedHistogramModulePointer module(
             new gmx::AnalysisDataWeightedHistogramModule(
                     gmx::histogramFromRange(1.0, 3.0).binCount(4)));
@@ -239,8 +239,8 @@ TEST_F(WeightedHistogramModuleTest, ComputesCorrectlyWithAll)
 {
     gmx::test::AnalysisDataTestInput input(weightedinputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
-    data.setMultipoint(true);
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
+
     gmx::AnalysisDataWeightedHistogramModulePointer module(
             new gmx::AnalysisDataWeightedHistogramModule(
                     gmx::histogramFromRange(1.0, 3.0).binCount(4).includeAll()));
@@ -267,8 +267,8 @@ TEST_F(BinAverageModuleTest, ComputesCorrectly)
 {
     gmx::test::AnalysisDataTestInput input(weightedinputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
-    data.setMultipoint(true);
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
+
     gmx::AnalysisDataBinAverageModulePointer module(
             new gmx::AnalysisDataBinAverageModule(
                     gmx::histogramFromRange(1.0, 3.0).binCount(4)));
@@ -285,8 +285,8 @@ TEST_F(BinAverageModuleTest, ComputesCorrectlyWithAll)
 {
     gmx::test::AnalysisDataTestInput input(weightedinputdata);
     gmx::AnalysisData                data;
-    data.setColumnCount(input.columnCount());
-    data.setMultipoint(true);
+    ASSERT_NO_THROW_GMX(setupDataObject(input, &data));
+
     gmx::AnalysisDataBinAverageModulePointer module(
             new gmx::AnalysisDataBinAverageModule(
                     gmx::histogramFromRange(1.0, 3.0).binCount(4).includeAll()));
index ea379de835e95cc284bae963bfbe37a1cf32918f..9b290a00062d5d089d3b2a66287ded711b46b4d6 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2011,2012, by the GROMACS development team, led by
+ * Copyright (c) 2011,2012,2013, by the GROMACS development team, led by
  * David van der Spoel, Berk Hess, Erik Lindahl, and including many
  * others, as listed in the AUTHORS file in the top-level source
  * directory and at http://www.gromacs.org.
@@ -149,6 +149,14 @@ AnalysisDataTestFixture::AnalysisDataTestFixture()
 }
 
 
+void AnalysisDataTestFixture::setupDataObject(const AnalysisDataTestInput &input,
+                                              AnalysisData                *data)
+{
+    data->setColumnCount(input.columnCount());
+    data->setMultipoint(input.isMultipoint());
+}
+
+
 void AnalysisDataTestFixture::presentAllData(const AnalysisDataTestInput &input,
                                              AnalysisData                *data)
 {
index c01cb6d38f52ad0cf93caa5b9faffc8ac0383d42..d637ad38ccd819cf50d892618014d83d2455c46e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2011,2012, by the GROMACS development team, led by
+ * Copyright (c) 2011,2012,2013, by the GROMACS development team, led by
  * David van der Spoel, Berk Hess, Erik Lindahl, and including many
  * others, as listed in the AUTHORS file in the top-level source
  * directory and at http://www.gromacs.org.
@@ -239,6 +239,14 @@ class AnalysisDataTestFixture : public ::testing::Test
     public:
         AnalysisDataTestFixture();
 
+        /*! \brief
+         * Initializes an AnalysisData object from input data.
+         *
+         * Sets the column count and other properties based on the input data.
+         */
+        static void setupDataObject(const AnalysisDataTestInput &input,
+                                    AnalysisData                *data);
+
         /*! \brief
          * Adds all data from AnalysisDataTestInput into an AnalysisData.
          */