From edec805e37184199bf02dd0fbdb2b22fb05ab568 Mon Sep 17 00:00:00 2001
From: dehnert <dehnert@cs.rwth-aachen.de>
Date: Wed, 8 Nov 2017 15:19:47 +0100
Subject: [PATCH] added some missing clone functions for check results

---
 src/storm-pars/modelchecker/results/RegionCheckResult.cpp   | 6 +++++-
 src/storm-pars/modelchecker/results/RegionCheckResult.h     | 2 ++
 .../modelchecker/results/RegionRefinementCheckResult.cpp    | 5 +++++
 .../modelchecker/results/RegionRefinementCheckResult.h      | 3 ++-
 4 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/storm-pars/modelchecker/results/RegionCheckResult.cpp b/src/storm-pars/modelchecker/results/RegionCheckResult.cpp
index 2759034e9..fbfc95bbb 100644
--- a/src/storm-pars/modelchecker/results/RegionCheckResult.cpp
+++ b/src/storm-pars/modelchecker/results/RegionCheckResult.cpp
@@ -27,6 +27,11 @@ namespace storm {
             initFractions(overallArea);
         }
 
+        template<typename ValueType>
+        std::unique_ptr<CheckResult> RegionCheckResult<ValueType>::clone() const {
+            return std::make_unique<RegionCheckResult<ValueType>>(this->regionResults);
+        }
+        
         template<typename ValueType>
         bool RegionCheckResult<ValueType>::isRegionCheckResult() const {
             return true;
@@ -108,7 +113,6 @@ namespace storm {
             // Filtering has no effect as we only store the result w.r.t. a single state anyway.
             // Hence, this is intentionally left empty.
         }
-
         
 #ifdef STORM_HAVE_CARL
         template class RegionCheckResult<storm::RationalFunction>;
diff --git a/src/storm-pars/modelchecker/results/RegionCheckResult.h b/src/storm-pars/modelchecker/results/RegionCheckResult.h
index 7bb144cf6..025a6ad66 100644
--- a/src/storm-pars/modelchecker/results/RegionCheckResult.h
+++ b/src/storm-pars/modelchecker/results/RegionCheckResult.h
@@ -29,6 +29,8 @@ namespace storm {
 
             virtual void filter(QualitativeCheckResult const& filter) override;
             
+            virtual std::unique_ptr<CheckResult> clone() const override;
+
         protected:
             virtual void initFractions(typename storm::storage::ParameterRegion<ValueType>::CoefficientType const& overallArea);
             
diff --git a/src/storm-pars/modelchecker/results/RegionRefinementCheckResult.cpp b/src/storm-pars/modelchecker/results/RegionRefinementCheckResult.cpp
index 605865c04..320dda2e8 100644
--- a/src/storm-pars/modelchecker/results/RegionRefinementCheckResult.cpp
+++ b/src/storm-pars/modelchecker/results/RegionRefinementCheckResult.cpp
@@ -29,6 +29,11 @@ namespace storm {
         storm::storage::ParameterRegion<ValueType> const& RegionRefinementCheckResult<ValueType>::getParameterSpace() const {
             return parameterSpace;
         }
+        
+        template<typename ValueType>
+        std::unique_ptr<CheckResult> RegionRefinementCheckResult<ValueType>::clone() const {
+            return std::make_unique<RegionRefinementCheckResult<ValueType>>(this->regionResults, this->parameterSpace);
+        }
 
         template<typename ValueType>
         std::ostream& RegionRefinementCheckResult<ValueType>::writeIllustrationToStream(std::ostream& out) const {
diff --git a/src/storm-pars/modelchecker/results/RegionRefinementCheckResult.h b/src/storm-pars/modelchecker/results/RegionRefinementCheckResult.h
index 8b37afcca..2b6b6b617 100644
--- a/src/storm-pars/modelchecker/results/RegionRefinementCheckResult.h
+++ b/src/storm-pars/modelchecker/results/RegionRefinementCheckResult.h
@@ -21,7 +21,8 @@ namespace storm {
             storm::storage::ParameterRegion<ValueType> const& getParameterSpace() const;
 
             virtual std::ostream& writeIllustrationToStream(std::ostream& out) const override;
-            
+
+            virtual std::unique_ptr<CheckResult> clone() const override;
 
         protected:
             storm::storage::ParameterRegion<ValueType> parameterSpace;