1  | 
     | 
     | 
    //  | 
    
    
    2  | 
     | 
     | 
    // Copyright (c) 2018 CNRS, NYU, MPI Tübingen  | 
    
    
    3  | 
     | 
     | 
    //  | 
    
    
    4  | 
     | 
     | 
    // This file is part of tsid  | 
    
    
    5  | 
     | 
     | 
    // tsid is free software: you can redistribute it  | 
    
    
    6  | 
     | 
     | 
    // and/or modify it under the terms of the GNU Lesser General Public  | 
    
    
    7  | 
     | 
     | 
    // License as published by the Free Software Foundation, either version  | 
    
    
    8  | 
     | 
     | 
    // 3 of the License, or (at your option) any later version.  | 
    
    
    9  | 
     | 
     | 
    // tsid is distributed in the hope that it will be  | 
    
    
    10  | 
     | 
     | 
    // useful, but WITHOUT ANY WARRANTY; without even the implied warranty  | 
    
    
    11  | 
     | 
     | 
    // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU  | 
    
    
    12  | 
     | 
     | 
    // General Lesser Public License for more details. You should have  | 
    
    
    13  | 
     | 
     | 
    // received a copy of the GNU Lesser General Public License along with  | 
    
    
    14  | 
     | 
     | 
    // tsid If not, see  | 
    
    
    15  | 
     | 
     | 
    // <http://www.gnu.org/licenses/>.  | 
    
    
    16  | 
     | 
     | 
    //  | 
    
    
    17  | 
     | 
     | 
     | 
    
    
    18  | 
     | 
     | 
    #ifndef __tsid_python_test_hpp__  | 
    
    
    19  | 
     | 
     | 
    #define __tsid_python_test_hpp__  | 
    
    
    20  | 
     | 
     | 
     | 
    
    
    21  | 
     | 
     | 
    #include "tsid/bindings/python/fwd.hpp"  | 
    
    
    22  | 
     | 
     | 
     | 
    
    
    23  | 
     | 
     | 
    #include "tsid/bindings/python/utils/container.hpp"  | 
    
    
    24  | 
     | 
     | 
     | 
    
    
    25  | 
     | 
     | 
    namespace tsid { | 
    
    
    26  | 
     | 
     | 
    namespace python { | 
    
    
    27  | 
     | 
     | 
    namespace bp = boost::python;  | 
    
    
    28  | 
     | 
     | 
     | 
    
    
    29  | 
     | 
     | 
    template <typename T>  | 
    
    
    30  | 
     | 
     | 
    struct ConstPythonVisitor  | 
    
    
    31  | 
     | 
     | 
        : public boost::python::def_visitor<ConstPythonVisitor<T> > { | 
    
    
    32  | 
     | 
     | 
      template <class PyClass>  | 
    
    
    33  | 
     | 
     | 
     | 
    
    
    34  | 
     | 
    7  | 
      void visit(PyClass& cl) const { | 
    
    
    35  | 
    ✓✗ | 
    7  | 
        cl.def(bp::init<>("Default Constructor")) | 
    
    
    36  | 
    ✓✗ | 
    7  | 
            .def("print_all", &T::print) | 
    
    
    37  | 
     | 
    14  | 
            .def("append", &T::append_eq, bp::arg("data")) | 
    
    
    38  | 
    ✓✗✓✗
  | 
    7  | 
            .def("append", &T::append_ineq, bp::arg("data")) | 
    
    
    39  | 
    ✓✗✓✗ ✓✗✓✗
  | 
    14  | 
            .def("append", &T::append_bound, bp::arg("data")); | 
    
    
    40  | 
     | 
    7  | 
      }  | 
    
    
    41  | 
     | 
     | 
     | 
    
    
    42  | 
     | 
    7  | 
      static void expose(const std::string& class_name) { | 
    
    
    43  | 
    ✓✗ | 
    7  | 
        std::string doc = "ConstraintLevel info.";  | 
    
    
    44  | 
    ✓✗✓✗
  | 
    7  | 
        bp::class_<T>(class_name.c_str(), doc.c_str(), bp::no_init)  | 
    
    
    45  | 
     | 
     | 
            .def(ConstPythonVisitor<T>());  | 
    
    
    46  | 
     | 
    7  | 
      }  | 
    
    
    47  | 
     | 
     | 
    };  | 
    
    
    48  | 
     | 
     | 
     | 
    
    
    49  | 
     | 
     | 
    template <typename T>  | 
    
    
    50  | 
     | 
     | 
    struct HQPPythonVisitor  | 
    
    
    51  | 
     | 
     | 
        : public boost::python::def_visitor<HQPPythonVisitor<T> > { | 
    
    
    52  | 
     | 
     | 
      template <class PyClass>  | 
    
    
    53  | 
     | 
     | 
     | 
    
    
    54  | 
     | 
    7  | 
      void visit(PyClass& cl) const { | 
    
    
    55  | 
    ✓✗ | 
    7  | 
        cl.def(bp::init<>("Default Constructor")) | 
    
    
    56  | 
    ✓✗ | 
    7  | 
            .def("print_all", &T::print) | 
    
    
    57  | 
     | 
    14  | 
            .def("resize", &T::resize, bp::arg("i")) | 
    
    
    58  | 
    ✓✗✓✗ ✓✗✓✗
  | 
    14  | 
            .def("append", &T::append_helper, bp::arg("constraintLevel")); | 
    
    
    59  | 
     | 
    7  | 
      }  | 
    
    
    60  | 
     | 
     | 
     | 
    
    
    61  | 
     | 
    7  | 
      static void expose(const std::string& class_name) { | 
    
    
    62  | 
    ✓✗ | 
    7  | 
        std::string doc = "HQPdata info.";  | 
    
    
    63  | 
    ✓✗✓✗
  | 
    7  | 
        bp::class_<T>(class_name.c_str(), doc.c_str(), bp::no_init)  | 
    
    
    64  | 
     | 
     | 
            .def(HQPPythonVisitor<T>());  | 
    
    
    65  | 
     | 
    7  | 
      }  | 
    
    
    66  | 
     | 
     | 
    };  | 
    
    
    67  | 
     | 
     | 
     | 
    
    
    68  | 
     | 
     | 
    }  // namespace python  | 
    
    
    69  | 
     | 
     | 
    }  // namespace tsid  | 
    
    
    70  | 
     | 
     | 
     | 
    
    
    71  | 
     | 
     | 
    #endif  // ifndef __tsid_python_test_hpp__  |