| 68 | } |
| 69 | |
| 70 | void TestRead() { |
| 71 | const Dtype scale = 3; |
| 72 | LayerParameter param; |
| 73 | param.set_phase(TRAIN); |
| 74 | DataParameter* data_param = param.mutable_data_param(); |
| 75 | data_param->set_batch_size(5); |
| 76 | data_param->set_source(filename_->c_str()); |
| 77 | data_param->set_backend(backend_); |
| 78 | |
| 79 | TransformationParameter* transform_param = |
| 80 | param.mutable_transform_param(); |
| 81 | transform_param->set_scale(scale); |
| 82 | |
| 83 | DataLayer<Dtype> layer(param); |
| 84 | layer.SetUp(blob_bottom_vec_, blob_top_vec_); |
| 85 | EXPECT_EQ(blob_top_data_->num(), 5); |
| 86 | EXPECT_EQ(blob_top_data_->channels(), 2); |
| 87 | EXPECT_EQ(blob_top_data_->height(), 3); |
| 88 | EXPECT_EQ(blob_top_data_->width(), 4); |
| 89 | EXPECT_EQ(blob_top_label_->num(), 5); |
| 90 | EXPECT_EQ(blob_top_label_->channels(), 1); |
| 91 | EXPECT_EQ(blob_top_label_->height(), 1); |
| 92 | EXPECT_EQ(blob_top_label_->width(), 1); |
| 93 | |
| 94 | for (int iter = 0; iter < 100; ++iter) { |
| 95 | layer.Forward(blob_bottom_vec_, blob_top_vec_); |
| 96 | for (int i = 0; i < 5; ++i) { |
| 97 | EXPECT_EQ(i, blob_top_label_->cpu_data()[i]); |
| 98 | } |
| 99 | for (int i = 0; i < 5; ++i) { |
| 100 | for (int j = 0; j < 24; ++j) { |
| 101 | EXPECT_EQ(scale * i, blob_top_data_->cpu_data()[i * 24 + j]) |
| 102 | << "debug: iter " << iter << " i " << i << " j " << j; |
| 103 | } |
| 104 | } |
| 105 | } |
| 106 | } |
| 107 | |
| 108 | void TestSkip() { |
| 109 | LayerParameter param; |
no test coverage detected