mediapipe/mediapipe/framework/packet_generator_test.cc
MediaPipe Team 350fbb2100 Project import generated by Copybara.
GitOrigin-RevId: d073f8e21be2fcc0e503cb97c6695078b6b75310
2021-02-27 03:30:05 -05:00

70 lines
2.5 KiB
C++

// Copyright 2019 The MediaPipe Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include "mediapipe/framework/packet_generator.h"
#include "absl/strings/str_cat.h"
#include "mediapipe/framework/packet_generator.pb.h"
#include "mediapipe/framework/packet_type.h"
#include "mediapipe/framework/port/gmock.h"
#include "mediapipe/framework/port/gtest.h"
#include "mediapipe/framework/port/status_matchers.h"
#include "mediapipe/framework/tool/validate_type.h"
namespace mediapipe {
namespace {
class DoNothingGenerator : public PacketGenerator {
public:
static absl::Status FillExpectations(
const PacketGeneratorOptions& extendable_options,
PacketTypeSet* input_side_packets, PacketTypeSet* output_side_packets) {
for (CollectionItemId id = input_side_packets->BeginId();
id < input_side_packets->EndId(); ++id) {
input_side_packets->Get(id).SetAny();
}
for (CollectionItemId id = output_side_packets->BeginId();
id < output_side_packets->EndId(); ++id) {
output_side_packets->Get(id).Set<bool>();
}
return absl::OkStatus();
}
static absl::Status Generate(const PacketGeneratorOptions& extendable_options,
const PacketSet& input_side_packets,
PacketSet* output_side_packets) {
for (CollectionItemId id = output_side_packets->BeginId();
id < output_side_packets->EndId(); ++id) {
output_side_packets->Get(id) = MakePacket<bool>(true);
}
return absl::OkStatus();
}
};
REGISTER_PACKET_GENERATOR(DoNothingGenerator);
TEST(PacketGeneratorTest, FillExpectationsOnConfig) {
PacketGeneratorConfig config;
config.set_packet_generator("DoNothingGenerator");
config.add_input_side_packet("any");
config.add_input_side_packet("number");
config.add_input_side_packet("of_inputs");
config.add_output_side_packet("any_number_of");
config.add_output_side_packet("output_side_packets");
MP_EXPECT_OK(tool::RunGeneratorFillExpectations(config));
}
} // namespace
} // namespace mediapipe