| 61 | } |
| 62 | |
| 63 | TEST(ModelInterfaceTest, GetDefaultPieceTest) { |
| 64 | { |
| 65 | ModelProto model_proto; |
| 66 | EXPECT_EQ("<unk>", model_proto.trainer_spec().unk_piece()); |
| 67 | EXPECT_EQ("<s>", model_proto.trainer_spec().bos_piece()); |
| 68 | EXPECT_EQ("</s>", model_proto.trainer_spec().eos_piece()); |
| 69 | EXPECT_EQ("<pad>", model_proto.trainer_spec().pad_piece()); |
| 70 | } |
| 71 | |
| 72 | { |
| 73 | ModelProto model_proto = MakeBaseModelProto(TrainerSpec::UNIGRAM); |
| 74 | AddPiece(&model_proto, "a"); |
| 75 | auto model = ModelFactory::Create(model_proto); |
| 76 | EXPECT_EQ("<unk>", model->unk_piece()); |
| 77 | EXPECT_EQ("<s>", model->bos_piece()); |
| 78 | EXPECT_EQ("</s>", model->eos_piece()); |
| 79 | EXPECT_EQ("<pad>", model->pad_piece()); |
| 80 | } |
| 81 | |
| 82 | { |
| 83 | ModelProto model_proto = MakeBaseModelProto(TrainerSpec::UNIGRAM); |
| 84 | AddPiece(&model_proto, "a"); |
| 85 | model_proto.mutable_trainer_spec()->clear_unk_piece(); |
| 86 | model_proto.mutable_trainer_spec()->clear_bos_piece(); |
| 87 | model_proto.mutable_trainer_spec()->clear_eos_piece(); |
| 88 | model_proto.mutable_trainer_spec()->clear_pad_piece(); |
| 89 | auto model = ModelFactory::Create(model_proto); |
| 90 | EXPECT_EQ("<unk>", model->unk_piece()); |
| 91 | EXPECT_EQ("<s>", model->bos_piece()); |
| 92 | EXPECT_EQ("</s>", model->eos_piece()); |
| 93 | EXPECT_EQ("<pad>", model->pad_piece()); |
| 94 | } |
| 95 | |
| 96 | { |
| 97 | ModelProto model_proto = MakeBaseModelProto(TrainerSpec::UNIGRAM); |
| 98 | AddPiece(&model_proto, "a"); |
| 99 | model_proto.mutable_trainer_spec()->set_unk_piece("UNK"); |
| 100 | model_proto.mutable_trainer_spec()->set_bos_piece("BOS"); |
| 101 | model_proto.mutable_trainer_spec()->set_eos_piece("EOS"); |
| 102 | model_proto.mutable_trainer_spec()->set_pad_piece("PAD"); |
| 103 | auto model = ModelFactory::Create(model_proto); |
| 104 | EXPECT_EQ("UNK", model->unk_piece()); |
| 105 | EXPECT_EQ("BOS", model->bos_piece()); |
| 106 | EXPECT_EQ("EOS", model->eos_piece()); |
| 107 | EXPECT_EQ("PAD", model->pad_piece()); |
| 108 | } |
| 109 | } |
| 110 | |
| 111 | TEST(ModelInterfaceTest, SetModelInterfaceTest) { |
| 112 | for (const auto type : kModelTypes) { |
nothing calls this directly
no test coverage detected