Add unit test for LayerRegistry::CreateLayer
authorJeff Donahue <jeff.donahue@gmail.com>
Mon, 12 Jan 2015 21:42:51 +0000 (13:42 -0800)
committerJeff Donahue <jeff.donahue@gmail.com>
Thu, 5 Feb 2015 22:49:22 +0000 (14:49 -0800)
src/caffe/test/test_layer_factory.cpp [new file with mode: 0644]

diff --git a/src/caffe/test/test_layer_factory.cpp b/src/caffe/test/test_layer_factory.cpp
new file mode 100644 (file)
index 0000000..3ad635a
--- /dev/null
@@ -0,0 +1,33 @@
+#include <map>
+#include <string>
+
+#include "gtest/gtest.h"
+
+#include "caffe/common.hpp"
+#include "caffe/layer.hpp"
+#include "caffe/layer_factory.hpp"
+
+#include "caffe/test/test_caffe_main.hpp"
+
+namespace caffe {
+
+template <typename TypeParam>
+class LayerFactoryTest : public MultiDeviceTest<TypeParam> {};
+
+TYPED_TEST_CASE(LayerFactoryTest, TestDtypesAndDevices);
+
+TYPED_TEST(LayerFactoryTest, TestCreateLayer) {
+  typedef typename TypeParam::Dtype Dtype;
+  typename LayerRegistry<Dtype>::CreatorRegistry& registry =
+      LayerRegistry<Dtype>::Registry();
+  shared_ptr<Layer<Dtype> > layer;
+  LayerParameter layer_param;
+  for (typename LayerRegistry<Dtype>::CreatorRegistry::iterator iter =
+       registry.begin(); iter != registry.end(); ++iter) {
+    layer_param.set_type(iter->first);
+    layer.reset(LayerRegistry<Dtype>::CreateLayer(layer_param));
+    EXPECT_EQ(iter->first, layer->type());
+  }
+}
+
+}  // namespace caffe