コード例 #1
0
def test_template_class():
    config = Config()
    config.register_class_specialization("A", "Ad", {"T": "double"})
    with cython_extension_from("templateclass.hpp", config=config):
        from templateclass import Ad
        a = Ad(5.0)
        assert_equal(a.get(), 5.0)
コード例 #2
0
def test_template_class():
    config = Config()
    config.register_class_specialization("A", "Ad", {"T": "double"})
    with cython_extension_from("templateclass.hpp", config=config):
        from templateclass import Ad
        a = Ad(5.0)
        assert_equal(a.get(), 5.0)
コード例 #3
0
def test_class_specializer():
    config = Config()
    config.register_class_specialization("MyClass", "MyClassDouble", {"T": "double"})
    specializer = ClassSpecializer(config)

    template = TemplateClass("test.hpp", "", "MyClass")
    template.template_types.append("T")

    classes = specializer.specialize(template)
    assert_equal(len(classes), 1)
    clazz = classes[0]
    assert_equal(clazz.name, "MyClassDouble")
    assert_equal(clazz.get_cppname(), "MyClass[double]")
    assert_equal(clazz.get_attached_typeinfo(), {"T": "double"})
コード例 #4
0
def test_class_specializer():
    config = Config()
    config.register_class_specialization("MyClass", "MyClassDouble",
                                         {"T": "double"})
    specializer = ClassSpecializer(config)

    template = TemplateClass("test.hpp", "", "MyClass")
    template.template_types.append("T")

    classes = specializer.specialize(template)
    assert_equal(len(classes), 1)
    clazz = classes[0]
    assert_equal(clazz.name, "MyClassDouble")
    assert_equal(clazz.get_cppname(), "MyClass[double]")
    assert_equal(clazz.get_attached_typeinfo(), {"T": "double"})