Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r61673 - in sandbox/itl: boost/validate/driver boost/validate/laws boost/validate/validater libs/itl/test/test_casual_ libs/validate/doc/boostcon2010 libs/validate/example/de_morgan_ libs/validate/example/labat_sorted_assoc_set_back_
From: afojgo_at_[hidden]
Date: 2010-04-29 08:16:33


Author: jofaber
Date: 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
New Revision: 61673
URL: http://svn.boost.org/trac/boost/changeset/61673

Log:
A few modifications in Validate for BoostCon. Added slides and pictures to the presentation.
Added:
   sandbox/itl/boost/validate/validater/concept_validater.hpp (contents, props changed)
   sandbox/itl/libs/validate/doc/boostcon2010/Prussian_Fusiliers.jpg (contents, props changed)
Binary files modified:
   sandbox/itl/libs/validate/doc/boostcon2010/BoostAlabaster.pptx
Text files modified:
   sandbox/itl/boost/validate/driver/bit_collector_driver.hpp | 2
   sandbox/itl/boost/validate/driver/collector_driver.hpp | 2
   sandbox/itl/boost/validate/driver/interval_bitset_driver.hpp | 2
   sandbox/itl/boost/validate/driver/itl_driver.hpp | 8 +++---
   sandbox/itl/boost/validate/driver/itl_morphic_driver.hpp | 2
   sandbox/itl/boost/validate/driver/itl_relations_driver.hpp | 2
   sandbox/itl/boost/validate/driver/itl_set_driver.hpp | 53 ++++++---------------------------------
   sandbox/itl/boost/validate/driver/itl_single_law_driver.hpp | 2
   sandbox/itl/boost/validate/driver/map_copy_conformity_driver.hpp | 2
   sandbox/itl/boost/validate/driver/map_order_driver.hpp | 2
   sandbox/itl/boost/validate/driver/set_copy_conformity_driver.hpp | 2
   sandbox/itl/boost/validate/driver/set_order_driver.hpp | 2
   sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp | 2
   sandbox/itl/boost/validate/driver/sorted_associative_bitset_back_driver.hpp | 2
   sandbox/itl/boost/validate/driver/sorted_associative_bitset_driver.hpp | 2
   sandbox/itl/boost/validate/driver/sorted_associative_map_back_driver.hpp | 2
   sandbox/itl/boost/validate/driver/sorted_associative_map_driver.hpp | 2
   sandbox/itl/boost/validate/driver/sorted_associative_set_back_driver.hpp | 2
   sandbox/itl/boost/validate/driver/sorted_associative_set_driver.hpp | 2
   sandbox/itl/boost/validate/driver/unsigned_quantifier_driver.hpp | 2
   sandbox/itl/boost/validate/laws/law.hpp | 10 +++++++
   sandbox/itl/boost/validate/validater/bit_collector_validater.hpp | 4 +-
   sandbox/itl/boost/validate/validater/collector_validater.hpp | 4 +-
   sandbox/itl/boost/validate/validater/function_equality_validater.hpp | 4 +-
   sandbox/itl/boost/validate/validater/interval_morphic_validater.hpp | 4 +-
   sandbox/itl/boost/validate/validater/itl_induced_relations.hpp | 4 +-
   sandbox/itl/boost/validate/validater/itl_order_validater.hpp | 2
   sandbox/itl/boost/validate/validater/itl_set_validater.hpp | 12 ++++----
   sandbox/itl/boost/validate/validater/partial_order_validater.hpp | 4 +-
   sandbox/itl/boost/validate/validater/signed_quantifier_validater.hpp | 4 +-
   sandbox/itl/boost/validate/validater/sorted_associative_back_validater.hpp | 4 +-
   sandbox/itl/boost/validate/validater/sorted_associative_validater.hpp | 4 +-
   sandbox/itl/boost/validate/validater/strict_weak_order_validater.hpp | 6 ++--
   sandbox/itl/boost/validate/validater/unsigned_quantifier_validater.hpp | 4 +-
   sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp | 27 ++++++++++++++++++++
   sandbox/itl/libs/validate/example/de_morgan_/de_morgan.cpp | 17 +++++++-----
   sandbox/itl/libs/validate/example/labat_sorted_assoc_set_back_/labat_sorted_assoc_set_back.cpp | 9 ++++++
   37 files changed, 115 insertions(+), 105 deletions(-)

Modified: sandbox/itl/boost/validate/driver/bit_collector_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/bit_collector_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/bit_collector_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -92,7 +92,7 @@
         }
 
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             int neutronizerChoice = _neutronizerChoice.some();

Modified: sandbox/itl/boost/validate/driver/collector_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/collector_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/collector_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -91,7 +91,7 @@
         }
 
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             //int domainChoice = _domainChoice.some();

Modified: sandbox/itl/boost/validate/driver/interval_bitset_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/interval_bitset_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/interval_bitset_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -47,7 +47,7 @@
         }
 
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int freeChoice = _freeChoice.some();
 

Modified: sandbox/itl/boost/validate/driver/itl_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/itl_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/itl_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <stdio.h>
 #include <time.h>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 #include <boost/validate/utility.hpp>
 
 
@@ -75,7 +75,7 @@
         bool hasValidProfile()const { return _isValid; }
 
         virtual void setProfile() = 0;
- virtual algebra_validater* chooseValidater() = 0;
+ virtual concept_validater* chooseValidater() = 0;
 
         void require_validation_count(int count){ _required_law_validation_count = count; }
         int required_validation_count()const { return _required_law_validation_count; }
@@ -250,7 +250,7 @@
             _codomainChoice.setTypeNames(type_names);
         }
 
- algebra_validater* choiceError(const std::string& location, int value, const ChoiceT& choice)
+ concept_validater* choiceError(const std::string& location, int value, const ChoiceT& choice)
         {
             reportTypeChoiceError(location, value, choice);
             setValid(false);
@@ -279,7 +279,7 @@
         ChoiceT _freeChoice;
 
     private:
- algebra_validater* _validater;
+ concept_validater* _validater;
         ValidationCounterT _frequencies;
         ViolationCounterT _violationsCount;
         ViolationMapT _violations;

Modified: sandbox/itl/boost/validate/driver/itl_morphic_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/itl_morphic_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/itl_morphic_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -88,7 +88,7 @@
 
     }
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
     {
         int rootChoice = _rootChoice.some();
         int domainChoice = _domainChoice.some();

Modified: sandbox/itl/boost/validate/driver/itl_relations_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/itl_relations_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/itl_relations_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -91,7 +91,7 @@
         }
 
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             int domainChoice = _domainChoice.some();

Modified: sandbox/itl/boost/validate/driver/itl_set_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/itl_set_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/itl_set_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -1,7 +1,7 @@
 /*-----------------------------------------------------------------------------+
 A Law Based Test Automaton 'LaBatea'
 Author: Joachim Faulhaber
-Copyright (c) 2007-2009: Joachim Faulhaber
+Copyright (c) 2007-2010: Joachim Faulhaber
 +------------------------------------------------------------------------------+
    Distributed under the Boost Software License, Version 1.0.
       (See accompanying file LICENCE.txt or copy at
@@ -34,9 +34,6 @@
             _rootChoice[RootType::interval_set] = 25;
             _rootChoice[RootType::separate_interval_set] = 25;
             _rootChoice[RootType::split_interval_set] = 25;
- _rootChoice[RootType::itl_map] = 0;
- _rootChoice[RootType::interval_map] = 0;
- _rootChoice[RootType::split_interval_map] = 0;
             setRootTypeNames();
             _rootChoice.init();
 
@@ -47,23 +44,6 @@
             setDomainTypeNames();
             _domainChoice.init();
 
- _codomainChoice.setSize(CodomainType::CodomainTypes_size);
- _codomainChoice.setMaxWeights(100);
- _codomainChoice[CodomainType::Int] = 100;
- _codomainChoice[CodomainType::Double] = 0;
- _codomainChoice[CodomainType::set_int] = 0;
- setCodomainTypeNames();
- _codomainChoice.init();
-
- _neutronizerChoice.setSize(NeutronHandlerType::NeutronHandlerTypes_size);
- _neutronizerChoice.setMaxWeights(100);
- _neutronizerChoice[NeutronHandlerType::partial_absorber] = 100;
- _neutronizerChoice[NeutronHandlerType::partial_enricher] = 0;
- _neutronizerChoice[NeutronHandlerType::total_absorber] = 0;
- _neutronizerChoice[NeutronHandlerType::total_enricher] = 0;
- setNeutronHandlerTypeNames();
- _neutronizerChoice.init();
-
             if(!_rootChoice.is_consistent())
             {
                 setValid(false);
@@ -76,30 +56,13 @@
                 std::cout << _domainChoice.inconsitencyMessage("itl_set_driver::setProfile()") << std::endl;
             }
 
- if(!_codomainChoice.is_consistent())
- {
- setValid(false);
- std::cout << _codomainChoice.inconsitencyMessage("itl_set_driver::setProfile()") << std::endl;
- }
-
- if(!_neutronizerChoice.is_consistent())
- {
- setValid(false);
- std::cout << _neutronizerChoice.inconsitencyMessage("itl_set_driver::setProfile()") << std::endl;
- }
-
         }
 
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
- typedef int intT;
- typedef double doubleT;
-
             int rootChoice = _rootChoice.some();
             int domainChoice = _domainChoice.some();
- //int codomainChoice = _codomainChoice.some();
- //int neutronizerChoice = _neutronizerChoice.some();
 
             switch(rootChoice)
             {
@@ -113,24 +76,24 @@
                 }
             case RootType::interval_set: {
                     switch(domainChoice) {
- case DomainType::Int: return new itl_set_validater<interval_set<intT> >;
- case DomainType::Double: return new itl_set_validater<interval_set<doubleT> >;
+ case DomainType::Int: return new itl_set_validater<interval_set<int> >;
+ case DomainType::Double: return new itl_set_validater<interval_set<double> >;
                     default: return choiceError(ITL_LOCATION("\nRootType::interval_set: domainChoice:\n"),
                                                 domainChoice, _domainChoice);
                     }
                 }
             case RootType::separate_interval_set: {
                     switch(domainChoice) {
- case DomainType::Int: return new itl_set_validater<separate_interval_set<intT> >;
- case DomainType::Double: return new itl_set_validater<separate_interval_set<doubleT> >;
+ case DomainType::Int: return new itl_set_validater<separate_interval_set<int> >;
+ case DomainType::Double: return new itl_set_validater<separate_interval_set<double> >;
                     default: return choiceError(ITL_LOCATION("\nRootType::separate_interval_set: domainChoice:\n"),
                                                 domainChoice, _domainChoice);
                     }
                  }
             case RootType::split_interval_set: {
                     switch(domainChoice) {
- case DomainType::Int: return new itl_set_validater<split_interval_set<intT> >;
- case DomainType::Double: return new itl_set_validater<split_interval_set<doubleT> >;
+ case DomainType::Int: return new itl_set_validater<split_interval_set<int> >;
+ case DomainType::Double: return new itl_set_validater<split_interval_set<double> >;
                     default: return choiceError(ITL_LOCATION("\nRootType::split_interval_set: domainChoice:\n"),
                                                 domainChoice, _domainChoice);
                     }

Modified: sandbox/itl/boost/validate/driver/itl_single_law_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/itl_single_law_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/itl_single_law_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -94,7 +94,7 @@
         }
 
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             int domainChoice = _domainChoice.some();

Modified: sandbox/itl/boost/validate/driver/map_copy_conformity_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/map_copy_conformity_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/map_copy_conformity_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -92,7 +92,7 @@
 
         }
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             int neutronizerChoice = _neutronizerChoice.some();

Modified: sandbox/itl/boost/validate/driver/map_order_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/map_order_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/map_order_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -89,7 +89,7 @@
 
         }
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             int domainChoice = _domainChoice.some();

Modified: sandbox/itl/boost/validate/driver/set_copy_conformity_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/set_copy_conformity_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/set_copy_conformity_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -92,7 +92,7 @@
 
         }
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             int neutronizerChoice = _neutronizerChoice.some();

Modified: sandbox/itl/boost/validate/driver/set_order_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/set_order_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/set_order_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -89,7 +89,7 @@
 
         }
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             int domainChoice = _domainChoice.some();

Modified: sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/signed_quantifier_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -92,7 +92,7 @@
         }
 
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             //int domainChoice = _domainChoice.some();

Modified: sandbox/itl/boost/validate/driver/sorted_associative_bitset_back_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/sorted_associative_bitset_back_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/sorted_associative_bitset_back_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -44,7 +44,7 @@
             }
         }
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int freeChoice = _freeChoice.some();
 

Modified: sandbox/itl/boost/validate/driver/sorted_associative_bitset_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/sorted_associative_bitset_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/sorted_associative_bitset_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -44,7 +44,7 @@
             }
         }
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int freeChoice = _freeChoice.some();
 

Modified: sandbox/itl/boost/validate/driver/sorted_associative_map_back_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/sorted_associative_map_back_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/sorted_associative_map_back_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -91,7 +91,7 @@
         }
 
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             //int domainChoice = _domainChoice.some();

Modified: sandbox/itl/boost/validate/driver/sorted_associative_map_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/sorted_associative_map_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/sorted_associative_map_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -91,7 +91,7 @@
         }
 
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             //int domainChoice = _domainChoice.some();

Modified: sandbox/itl/boost/validate/driver/sorted_associative_set_back_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/sorted_associative_set_back_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/sorted_associative_set_back_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -90,7 +90,7 @@
 
         }
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             //int domainChoice = _domainChoice.some();

Modified: sandbox/itl/boost/validate/driver/sorted_associative_set_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/sorted_associative_set_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/sorted_associative_set_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -91,7 +91,7 @@
         }
 
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             //int domainChoice = _domainChoice.some();

Modified: sandbox/itl/boost/validate/driver/unsigned_quantifier_driver.hpp
==============================================================================
--- sandbox/itl/boost/validate/driver/unsigned_quantifier_driver.hpp (original)
+++ sandbox/itl/boost/validate/driver/unsigned_quantifier_driver.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -91,7 +91,7 @@
         }
 
 
- algebra_validater* chooseValidater()
+ concept_validater* chooseValidater()
         {
             int rootChoice = _rootChoice.some();
             //int domainChoice = _domainChoice.some();

Modified: sandbox/itl/boost/validate/laws/law.hpp
==============================================================================
--- sandbox/itl/boost/validate/laws/law.hpp (original)
+++ sandbox/itl/boost/validate/laws/law.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -14,6 +14,12 @@
 #include <set>
 #include <boost/validate/loki_xt/Tuple.h>
 
+
+#ifdef BOOST_MSVC
+#pragma warning(push)
+#pragma warning(disable:4717) // ::size' : recursive on all control paths, function will cause runtime stack overflow
+#endif
+
 namespace boost{namespace itl
 {
 
@@ -126,5 +132,9 @@
 
 }} // namespace itl boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif //BOOST_ITL_LAW_HPP_JOFA_070411
 

Modified: sandbox/itl/boost/validate/validater/bit_collector_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/bit_collector_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/bit_collector_validater.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -16,7 +16,7 @@
 #include <boost/validate/laws/symmetric_difference.hpp>
 #include <boost/validate/laws/set_laws.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 namespace boost{namespace itl
 {
@@ -24,7 +24,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type>
-class collector_validater : public algebra_validater
+class collector_validater : public concept_validater
 {
 public:
 

Modified: sandbox/itl/boost/validate/validater/collector_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/collector_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/collector_validater.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -17,7 +17,7 @@
 #include <boost/validate/laws/symmetric_difference.hpp>
 #include <boost/validate/laws/set_laws.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 #ifdef BOOST_MSVC
 #pragma warning(push)
@@ -30,7 +30,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type>
-class collector_validater : public algebra_validater
+class collector_validater : public concept_validater
 {
 public:
 

Added: sandbox/itl/boost/validate/validater/concept_validater.hpp
==============================================================================
--- (empty file)
+++ sandbox/itl/boost/validate/validater/concept_validater.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -0,0 +1,47 @@
+/*-----------------------------------------------------------------------------+
+A Law Based Test Automaton 'LaBatea'
+Author: Joachim Faulhaber
+Copyright (c) 2007-2009: Joachim Faulhaber
++------------------------------------------------------------------------------+
+ Distributed under the Boost Software License, Version 1.0.
+ (See accompanying file LICENCE.txt or copy at
+ http://www.boost.org/LICENSE_1_0.txt)
++-----------------------------------------------------------------------------*/
+#pragma once
+
+#include <boost/itl/type_traits/is_continuous.hpp>
+#include <boost/itl/functors.hpp>
+#include <boost/validate/validater/law_validater.hpp>
+
+namespace boost{namespace itl
+{
+ typedef WeightedNumberGentor<int> ChoiceT;
+
+ class concept_validater
+ {
+ public:
+ virtual ~concept_validater(){}
+ // the choice probability, and also the availability of laws is individual to each type
+ // Somehow it has to be defined in conjunction to every type. So it is an aspect of
+ // type traits.
+ virtual void setProfile()=0;
+ virtual void validate()=0;
+ virtual void addFrequencies(ValidationCounterT&)=0;
+ virtual void addViolations(ViolationCounterT&, ViolationMapT&)=0;
+
+ virtual bool hasValidProfile()const{ return true; }
+
+ static int share(int total, int& index, int& rest_shares);
+ };
+
+ inline int concept_validater::share(int total, int& index, int& rest_shares)
+ {
+ int count = total - index;
+ int share = rest_shares / count;
+ rest_shares -= share;
+ ++index;
+ return share;
+ }
+
+}} // namespace itl boost
+

Modified: sandbox/itl/boost/validate/validater/function_equality_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/function_equality_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/function_equality_validater.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -12,7 +12,7 @@
 #include <boost/validate/itl/functors.hpp>
 #include <boost/validate/laws/function_equality.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 namespace boost{namespace itl
 {
@@ -20,7 +20,7 @@
 
 
     template <typename SourceT, typename TargetT>
- class function_equality_validater : public algebra_validater
+ class function_equality_validater : public concept_validater
     {
     public:
         enum Laws

Modified: sandbox/itl/boost/validate/validater/interval_morphic_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/interval_morphic_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/interval_morphic_validater.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -19,14 +19,14 @@
 #include <boost/validate/laws/order.hpp>
 #include <boost/validate/laws/pushouts.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 namespace boost{namespace itl
 {
     typedef WeightedNumberGentor<int> ChoiceT;
 
     template <typename Type>
- class interval_morphic_validater : public algebra_validater
+ class interval_morphic_validater : public concept_validater
     {
     public:
         enum Laws

Modified: sandbox/itl/boost/validate/validater/itl_induced_relations.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/itl_induced_relations.hpp (original)
+++ sandbox/itl/boost/validate/validater/itl_induced_relations.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -13,7 +13,7 @@
 #include <boost/itl/detail/interval_morphism.hpp>
 #include <boost/validate/laws/induced_relation.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 namespace boost{namespace itl
 {
@@ -21,7 +21,7 @@
 
 
     template <typename Type>
- class itl_induced_relations_validater : public algebra_validater
+ class itl_induced_relations_validater : public concept_validater
     {
     public:
         enum Laws

Modified: sandbox/itl/boost/validate/validater/itl_order_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/itl_order_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/itl_order_validater.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -23,7 +23,7 @@
 
 
     template <typename Type>
- class itl_order_validater : public algebra_validater
+ class itl_order_validater : public concept_validater
     {
     public:
         typedef strict_weak_order_validater<Type, std::less> LessValidaterT;

Modified: sandbox/itl/boost/validate/validater/itl_set_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/itl_set_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/itl_set_validater.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -16,7 +16,7 @@
 #include <boost/validate/laws/symmetric_difference.hpp>
 #include <boost/validate/laws/set_laws.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 #ifdef BOOST_MSVC
 #pragma warning(push)
@@ -29,7 +29,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type>
-class itl_set_validater : public algebra_validater
+class itl_set_validater : public concept_validater
 {
 public:
 
@@ -101,12 +101,12 @@
             if(itl::is_interval_splitter<Type>::value)
                                         return new LawValidater<InplaceRightDistributivity<Type, inplace_plus, inplace_minus, element_equal> >;
             else return new LawValidater<InplaceRightDistributivity<Type, inplace_plus, inplace_minus, std_equal> >;
- case inplaceEtDashRightDistrib: return new LawValidater<InplaceRightDistributivity<Type, inplace_et, inplace_minus> >;
- case inplacePlusDeMorgan: return new LawValidater<InplaceDeMorgan<Type, inplace_plus, inplace_et, itl::std_equal> >;
+ case inplaceEtDashRightDistrib: return new LawValidater<InplaceRightDistributivity<Type, inplace_et, inplace_minus> >;
+ case inplacePlusDeMorgan: return new LawValidater<InplaceDeMorgan<Type, inplace_plus, inplace_et, itl::std_equal> >;
         case inplaceEtDeMorgan:
             if(itl::is_interval_splitter<Type>::value || itl::is_interval_separator<Type>::value)
- return new LawValidater<InplaceDeMorgan<Type, inplace_et, inplace_plus, itl::element_equal> >;
- else return new LawValidater<InplaceDeMorgan<Type, inplace_et, inplace_plus, itl::std_equal> >;
+ return new LawValidater<InplaceDeMorgan<Type, inplace_et, inplace_plus, inplace_minus, itl::element_equal> >;
+ else return new LawValidater<InplaceDeMorgan<Type, inplace_et, inplace_plus, inplace_minus, itl::std_equal> >;
 
         default: return NULL;
         }

Modified: sandbox/itl/boost/validate/validater/partial_order_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/partial_order_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/partial_order_validater.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -16,14 +16,14 @@
 #include <boost/itl/functors.hpp>
 #include <boost/validate/laws/order.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 namespace boost{namespace itl
 {
     typedef WeightedNumberGentor<int> ChoiceT;
 
     template <typename Type, template<class>class Relation, template<class>class Equality = itl::std_equal>
- class partial_order_validater : public algebra_validater
+ class partial_order_validater : public concept_validater
     {
     public:
         enum Laws

Modified: sandbox/itl/boost/validate/validater/signed_quantifier_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/signed_quantifier_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/signed_quantifier_validater.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -19,7 +19,7 @@
 #include <boost/validate/laws/symmetric_difference.hpp>
 #include <boost/validate/laws/map_laws.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 #ifdef BOOST_MSVC
 #pragma warning(push)
@@ -32,7 +32,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type>
-class signed_quantifier_validater : public algebra_validater
+class signed_quantifier_validater : public concept_validater
 {
 public:
 

Modified: sandbox/itl/boost/validate/validater/sorted_associative_back_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/sorted_associative_back_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/sorted_associative_back_validater.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -12,7 +12,7 @@
 
 #include <boost/validate/laws/atomic_equivalence.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 #include <boost/validate/std/algorithm/copy.hpp>
 #include <boost/validate/std/algorithm/set_algo.hpp>
@@ -25,7 +25,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type, typename TargetT = itl::list<typename Type::value_type> >
-class sorted_associative_back_validater : public algebra_validater
+class sorted_associative_back_validater : public concept_validater
 {
 public:
     typedef typename Type::atomized_type atomic_type;

Modified: sandbox/itl/boost/validate/validater/sorted_associative_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/sorted_associative_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/sorted_associative_validater.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -13,7 +13,7 @@
 #include <boost/mpl/if.hpp>
 #include <boost/validate/laws/atomic_equivalence.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 #include <boost/validate/std/algorithm/copy.hpp>
 #include <boost/validate/std/algorithm/set_algo.hpp>
@@ -27,7 +27,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type, typename TargetT = itl::list<typename Type::value_type> >
-class sorted_associative_validater : public algebra_validater
+class sorted_associative_validater : public concept_validater
 {
 public:
     typedef typename Type::atomized_type atomic_type;

Modified: sandbox/itl/boost/validate/validater/strict_weak_order_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/strict_weak_order_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/strict_weak_order_validater.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -16,14 +16,14 @@
 #include <boost/itl/functors.hpp>
 #include <boost/validate/laws/order.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 namespace boost{namespace itl
 {
     typedef WeightedNumberGentor<int> ChoiceT;
 
     template <typename Type, template<class>class Relation>
- class strict_weak_order_validater : public algebra_validater
+ class strict_weak_order_validater : public concept_validater
     {
     public:
         enum Laws
@@ -84,7 +84,7 @@
         ValidationCounterT _frequencies;
         ViolationCounterT _violationsCount;
         ViolationMapT _violations;
- }; //class algebra_validater
+ }; //class concept_validater
 
 
 

Modified: sandbox/itl/boost/validate/validater/unsigned_quantifier_validater.hpp
==============================================================================
--- sandbox/itl/boost/validate/validater/unsigned_quantifier_validater.hpp (original)
+++ sandbox/itl/boost/validate/validater/unsigned_quantifier_validater.hpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -17,7 +17,7 @@
 #include <boost/validate/laws/map_laws.hpp>
 #include <boost/validate/laws/inversion_laws.hpp>
 #include <boost/validate/validater/law_validater.hpp>
-#include <boost/validate/validater/algebra_validater.hpp>
+#include <boost/validate/validater/concept_validater.hpp>
 
 #ifdef BOOST_MSVC
 #pragma warning(push)
@@ -30,7 +30,7 @@
 typedef WeightedNumberGentor<int> ChoiceT;
 
 template <typename Type>
-class unsigned_quantifier_validater : public algebra_validater
+class unsigned_quantifier_validater : public concept_validater
 {
 public:
 

Modified: sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp
==============================================================================
--- sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp (original)
+++ sandbox/itl/libs/itl/test/test_casual_/test_casual.cpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -192,5 +192,32 @@
 
 BOOST_AUTO_TEST_CASE(casual)
 {
+ typedef itl::set<int> TargetT;
+ TargetT left, right, target;
+ left.insert(1);
+ left.insert(3);
+ right.insert(2);
+ left.insert(3);
+
+ /*
+ std::set_union(left.rbegin(), left.rend(), right.rbegin(), right.rend(),
+ std::inserter(target,target.end()));
+ std::set_difference(left.rbegin(), left.rend(), right.rbegin(), right.rend(),
+ std::inserter(target,target.end()));
+
+ std::set_intersection(left.rbegin(), left.rend(), right.rbegin(), right.rend(),
+ std::inserter(target,target.end()));
+ std::set_symmetric_difference(left.rbegin(), left.rend(), right.rbegin(), right.rend(),
+ std::inserter(target,target.end()));
+
+ bool incl = std::includes(left.rbegin(), left.rend(), right.rbegin(), right.rend(), std::greater<int>()); //!
+
+ */
+
+ //int found;
+ //TargetT::reverse_iterator it = std::find(left.rbegin(), left.rend(), found); //!
+
+ bool incl = std::includes(left.rbegin(), left.rend(), right.rbegin(), right.rend(), std::greater<int>());
+
 }
 

Modified: sandbox/itl/libs/validate/doc/boostcon2010/BoostAlabaster.pptx
==============================================================================
Binary files. No diff available.

Added: sandbox/itl/libs/validate/doc/boostcon2010/Prussian_Fusiliers.jpg
==============================================================================
Binary file. No diff available.

Modified: sandbox/itl/libs/validate/example/de_morgan_/de_morgan.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/de_morgan_/de_morgan.cpp (original)
+++ sandbox/itl/libs/validate/example/de_morgan_/de_morgan.cpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -185,15 +185,17 @@
     // Second operation : inplace_plus implements union
     // Equality relation: std_equal implements segmental equality (default)
 
- LawValidater<InplaceDeMorgan<interval_set<int>, inplace_et, inplace_plus >,
- RandomGentor> validater1;
+ LawValidater
+ <InplaceDeMorgan<interval_set<int>, inplace_et, inplace_plus > >
+ validater1;
     cout << "===== validater 1 ====================================\n";
     test_law(validater1);
     // Ok the law was successfully validated.
 
     // Next we check the same law for split_interval_sets
- LawValidater<InplaceDeMorgan<split_interval_set<int>, inplace_et, inplace_plus >,
- RandomGentor> validater2;
+ LawValidater
+ <InplaceDeMorgan<split_interval_set<int>, inplace_et, inplace_plus > >
+ validater2;
     cout << "\n===== validater 2 ====================================\n";
     test_law(validater2);
     // The law does not hold for split_interval_sets: There were violations.
@@ -205,9 +207,10 @@
 
 
     // Using element equality that abstracts from the segmentation ...
- LawValidater<InplaceDeMorgan<split_interval_set<int>, inplace_et, inplace_plus,
- inplace_minus, element_equal>,
- RandomGentor> validater3;
+ LawValidater
+ <InplaceDeMorgan<split_interval_set<int>, inplace_et, inplace_plus,
+ inplace_minus, element_equal> >
+ validater3;
     cout << "\n===== validater 3 ====================================\n";
     test_law(validater3);
     // finally leads to an instantiation of the law that holds for

Modified: sandbox/itl/libs/validate/example/labat_sorted_assoc_set_back_/labat_sorted_assoc_set_back.cpp
==============================================================================
--- sandbox/itl/libs/validate/example/labat_sorted_assoc_set_back_/labat_sorted_assoc_set_back.cpp (original)
+++ sandbox/itl/libs/validate/example/labat_sorted_assoc_set_back_/labat_sorted_assoc_set_back.cpp 2010-04-29 08:16:29 EDT (Thu, 29 Apr 2010)
@@ -25,7 +25,14 @@
     ">> -------- Law based test automaton 'LaBatea' ---------- <<\n";
 
 #if(_MSC_VER >= 1400 && defined(_DEBUG) ) // 1500=MSVC-9.0 1400=MSVC-8.0; 1310=MSVC-7.1; 1300=MSVC-7.0;
- cout << msvc_stl_false_order_checking_for_reverse_iteration_message();
+ //JODO cout << msvc_stl_false_order_checking_for_reverse_iteration_message();
+ cout <<
+ ">> Output will be generated in a few seconds\n"
+ ">> terminate by typing <CTRL>C\n"
+ ">> ------------------------------------------------------ <<\n";
+ GentorProfileSgl::it()->set_std_profile(64,1);
+ GentorProfileSgl::it()->report_profile();
+ validater.validate();
 #else
     cout <<
     ">> Output will be generated in a few seconds\n"


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk