Lines Matching refs:segments

71 void AddSegmentForSuggestion(const string &key, Segments *segments) {  in AddSegmentForSuggestion()  argument
72 segments->set_max_prediction_candidates_size(10); in AddSegmentForSuggestion()
73 segments->set_request_type(Segments::SUGGESTION); in AddSegmentForSuggestion()
74 Segment *seg = segments->add_segment(); in AddSegmentForSuggestion()
79 void MakeSegmentsForSuggestion(const string &key, Segments *segments) { in MakeSegmentsForSuggestion() argument
80 segments->Clear(); in MakeSegmentsForSuggestion()
81 AddSegmentForSuggestion(key, segments); in MakeSegmentsForSuggestion()
84 void AddSegmentForPrediction(const string &key, Segments *segments) { in AddSegmentForPrediction() argument
85 segments->set_max_prediction_candidates_size(10); in AddSegmentForPrediction()
86 segments->set_request_type(Segments::PREDICTION); in AddSegmentForPrediction()
87 Segment *seg = segments->add_segment(); in AddSegmentForPrediction()
92 void MakeSegmentsForPrediction(const string &key, Segments *segments) { in MakeSegmentsForPrediction() argument
93 segments->Clear(); in MakeSegmentsForPrediction()
94 AddSegmentForPrediction(key, segments); in MakeSegmentsForPrediction()
97 void AddSegmentForConversion(const string &key, Segments *segments) { in AddSegmentForConversion() argument
98 segments->set_request_type(Segments::CONVERSION); in AddSegmentForConversion()
99 Segment *seg = segments->add_segment(); in AddSegmentForConversion()
104 void MakeSegmentsForConversion(const string &key, Segments *segments) { in MakeSegmentsForConversion() argument
105 segments->Clear(); in MakeSegmentsForConversion()
106 AddSegmentForConversion(key, segments); in MakeSegmentsForConversion()
109 void AddCandidate(size_t index, const string &value, Segments *segments) { in AddCandidate() argument
111 segments->mutable_segment(index)->add_candidate(); in AddCandidate()
116 candidate->key = segments->segment(index).key(); in AddCandidate()
117 candidate->content_key = segments->segment(index).key(); in AddCandidate()
123 Segments *segments) { in AddCandidateWithDescription() argument
125 segments->mutable_segment(index)->add_candidate(); in AddCandidateWithDescription()
130 candidate->key = segments->segment(index).key(); in AddCandidateWithDescription()
131 candidate->content_key = segments->segment(index).key(); in AddCandidateWithDescription()
135 void AddCandidate(const string &value, Segments *segments) { in AddCandidate() argument
136 AddCandidate(0, value, segments); in AddCandidate()
141 Segments *segments) { in AddCandidateWithDescription() argument
142 AddCandidateWithDescription(0, value, desc, segments); in AddCandidateWithDescription()
145 bool FindCandidateByValue(const string &value, const Segments &segments) { in FindCandidateByValue() argument
147 i < segments.conversion_segment(0).candidates_size(); ++i) { in FindCandidateByValue()
148 if (segments.conversion_segment(0).candidate(i).value == value) { in FindCandidateByValue()
211 Segments segments; in IsSuggested() local
212 MakeSegmentsForSuggestion(key, &segments); in IsSuggested()
213 return predictor->PredictForRequest(conversion_request, &segments) && in IsSuggested()
214 FindCandidateByValue(value, segments); in IsSuggested()
220 Segments segments; in IsPredicted() local
221 MakeSegmentsForPrediction(key, &segments); in IsPredicted()
222 return predictor->PredictForRequest(conversion_request, &segments) && in IsPredicted()
223 FindCandidateByValue(value, segments); in IsPredicted()
354 Segments segments; in TEST_F() local
355 MakeSegmentsForSuggestion("てすと", &segments); in TEST_F()
356 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
357 EXPECT_EQ(0, segments.segment(0).candidates_size()); in TEST_F()
362 Segments segments; in TEST_F() local
363 MakeSegmentsForPrediction("てすと", &segments); in TEST_F()
364 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
365 EXPECT_EQ(0, segments.segment(0).candidates_size()); in TEST_F()
370 Segments segments; in TEST_F() local
371 MakeSegmentsForConversion("わたしのなまえはなかのです", &segments); in TEST_F()
372 AddCandidate("私の名前は中野です", &segments); in TEST_F()
373 predictor->Finish(*convreq_, &segments); in TEST_F()
375 segments.Clear(); in TEST_F()
376 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
377 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
378 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
379 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
382 segments.Clear(); in TEST_F()
383 MakeSegmentsForPrediction("わたしの", &segments); in TEST_F()
384 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
385 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
386 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
397 Segments segments; in TEST_F() local
398 MakeSegmentsForConversion("こんにちはさようなら", &segments); in TEST_F()
399 AddCandidate("今日はさようなら", &segments); in TEST_F()
400 predictor->Finish(*convreq_, &segments); in TEST_F()
402 segments.Clear(); in TEST_F()
403 MakeSegmentsForSuggestion("こんにちは", &segments); in TEST_F()
404 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
405 MakeSegmentsForPrediction("こんにちは", &segments); in TEST_F()
406 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
420 Segments segments; in TEST_F() local
424 Segments segments; in TEST_F() local
427 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
428 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
433 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
434 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
439 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
440 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
447 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
448 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
449 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
451 segments.Clear(); in TEST_F()
452 MakeSegmentsForPrediction("わたしの", &segments); in TEST_F()
453 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
454 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
457 segments.Clear(); in TEST_F()
458 MakeSegmentsForSuggestion("わたしのなまえはなかのです", &segments); in TEST_F()
459 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
460 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
462 segments.Clear(); in TEST_F()
463 MakeSegmentsForPrediction("わたしのなまえはなかのです", &segments); in TEST_F()
464 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
465 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
467 segments.Clear(); in TEST_F()
468 MakeSegmentsForSuggestion("こんにちはさようなら", &segments); in TEST_F()
469 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
471 segments.Clear(); in TEST_F()
472 MakeSegmentsForPrediction("こんにちはさようなら", &segments); in TEST_F()
473 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
478 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
479 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
480 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
482 segments.Clear(); in TEST_F()
483 MakeSegmentsForPrediction("わたしの", &segments); in TEST_F()
484 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
485 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
498 Segments segments; in TEST_F() local
501 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
502 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
504 MakeSegmentsForPrediction("わたしの", &segments); in TEST_F()
505 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
512 Segments segments; in TEST_F() local
515 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
516 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
518 MakeSegmentsForPrediction("わたしの", &segments); in TEST_F()
519 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
534 Segments segments; in TEST_F() local
535 MakeSegmentsForSuggestion("かまた", &segments); in TEST_F()
536 AddCandidate(0, "火魔汰", &segments); in TEST_F()
537 AddSegmentForSuggestion("ま", &segments); in TEST_F()
538 AddCandidate(1, "摩", &segments); in TEST_F()
539 predictor->Finish(*convreq_, &segments); in TEST_F()
553 Segments segments; in TEST_F() local
554 MakeSegmentsForSuggestion("かま", &segments); in TEST_F()
555 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
560 for (size_t i = 0; i < segments.segment(0).candidates_size(); ++i) { in TEST_F()
561 SCOPED_TRACE(segments.segment(0).candidate(i).value); in TEST_F()
563 1, expected_candidates.erase(segments.segment(0).candidate(i).value)); in TEST_F()
581 Segments segments; in TEST_F() local
582 MakeSegmentsForConversion("わたしのなまえはなかのです", &segments); in TEST_F()
584 &segments); in TEST_F()
585 predictor->Finish(*convreq_, &segments); in TEST_F()
587 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
588 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
589 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
590 EXPECT_EQ(kDescription, segments.segment(0).candidate(0).description); in TEST_F()
592 segments.Clear(); in TEST_F()
593 MakeSegmentsForPrediction("わたしの", &segments); in TEST_F()
594 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
595 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
596 EXPECT_EQ(kDescription, segments.segment(0).candidate(0).description); in TEST_F()
607 Segments segments; in TEST_F() local
611 Segments segments; in TEST_F() local
615 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
616 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
621 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
622 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
632 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
633 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
634 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
635 EXPECT_EQ(kDescription, segments.segment(0).candidate(0).description); in TEST_F()
637 segments.Clear(); in TEST_F()
638 MakeSegmentsForPrediction("わたしの", &segments); in TEST_F()
639 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
640 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
641 EXPECT_EQ(kDescription, segments.segment(0).candidate(0).description); in TEST_F()
644 segments.Clear(); in TEST_F()
645 MakeSegmentsForSuggestion("わたしのなまえはなかのです", &segments); in TEST_F()
646 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
647 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
648 EXPECT_EQ(kDescription, segments.segment(0).candidate(0).description); in TEST_F()
650 segments.Clear(); in TEST_F()
651 MakeSegmentsForSuggestion("わたしのなまえはなかのです", &segments); in TEST_F()
652 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
653 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
654 EXPECT_EQ(kDescription, segments.segment(0).candidate(0).description); in TEST_F()
665 Segments segments; in TEST_F() local
668 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
669 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
671 MakeSegmentsForPrediction("わたしの", &segments); in TEST_F()
672 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
679 Segments segments; in TEST_F() local
682 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
683 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
685 MakeSegmentsForPrediction("わたしの", &segments); in TEST_F()
686 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
695 Segments segments; in TEST_F() local
696 MakeSegmentsForConversion("わたしのなまえはなかのです", &segments); in TEST_F()
697 AddCandidate("私の名前は中野です", &segments); in TEST_F()
700 segments.set_request_type(Segments::SUGGESTION); in TEST_F()
701 predictor->Finish(*convreq_, &segments); in TEST_F()
703 segments.Clear(); in TEST_F()
704 MakeSegmentsForConversion("ひろすえりょうこ", &segments); in TEST_F()
705 AddCandidate("広末涼子", &segments); in TEST_F()
707 segments.set_request_type(Segments::CONVERSION); in TEST_F()
710 predictor->Finish(*convreq_, &segments); in TEST_F()
719 Segments segments; in TEST_F() local
721 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
722 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
723 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
725 segments.Clear(); in TEST_F()
726 MakeSegmentsForSuggestion("ひろすえ", &segments); in TEST_F()
727 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
728 EXPECT_EQ("広末涼子", segments.segment(0).candidate(0).value); in TEST_F()
733 segments.Clear(); in TEST_F()
734 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
735 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
736 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
738 segments.Clear(); in TEST_F()
739 MakeSegmentsForSuggestion("ひろすえ", &segments); in TEST_F()
740 EXPECT_FALSE(predictor->Predict(&segments)); in TEST_F()
748 Segments segments; in TEST_F() local
750 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
751 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
752 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
754 segments.Clear(); in TEST_F()
755 MakeSegmentsForSuggestion("ひろすえ", &segments); in TEST_F()
756 EXPECT_FALSE(predictor->Predict(&segments)); in TEST_F()
766 Segments segments, segments2; in TEST_F() local
767 MakeSegmentsForConversion("わたしのなまえはなかのです", &segments); in TEST_F()
768 AddCandidate("私の名前は中野です", &segments); in TEST_F()
770 predictor->Finish(*convreq_, &segments); in TEST_F()
775 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
778 predictor->Revert(&segments); in TEST_F()
780 segments.Clear(); in TEST_F()
781 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
783 EXPECT_FALSE(predictor->Predict(&segments)); in TEST_F()
784 EXPECT_EQ(0, segments.segment(0).candidates_size()); in TEST_F()
786 EXPECT_FALSE(predictor->Predict(&segments)); in TEST_F()
787 EXPECT_EQ(0, segments.segment(0).candidates_size()); in TEST_F()
796 Segments segments; in TEST_F() local
797 MakeSegmentsForConversion("testtest", &segments); in TEST_F()
798 AddCandidate("テストテスト", &segments); in TEST_F()
799 predictor->Finish(*convreq_, &segments); in TEST_F()
807 Segments segments; in TEST_F() local
808 MakeSegmentsForConversion("testtest", &segments); in TEST_F()
809 AddCandidate("テストテスト", &segments); in TEST_F()
810 predictor->Finish(*convreq_, &segments); in TEST_F()
815 Segments segments; in TEST_F() local
816 MakeSegmentsForSuggestion("t", &segments); in TEST_F()
817 EXPECT_FALSE(predictor->Predict(&segments)); in TEST_F()
819 segments.Clear(); in TEST_F()
820 MakeSegmentsForSuggestion("testte", &segments); in TEST_F()
821 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
831 Segments segments; in TEST_F() local
833 MakeSegmentsForConversion("わたしのなまえはなかのです", &segments); in TEST_F()
835 AddCandidate(0, "私の名前は中野です", &segments); in TEST_F()
837 AddSegmentForConversion("。", &segments); in TEST_F()
838 AddCandidate(1, "。", &segments); in TEST_F()
840 predictor->Finish(*convreq_, &segments); in TEST_F()
842 segments.Clear(); in TEST_F()
843 MakeSegmentsForPrediction("わたしの", &segments); in TEST_F()
844 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
845 EXPECT_EQ(2, segments.segment(0).candidates_size()); in TEST_F()
846 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
847 EXPECT_EQ("私の名前は中野です。", segments.segment(0).candidate(1).value); in TEST_F()
849 segments.Clear(); in TEST_F()
850 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
852 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
853 EXPECT_EQ(2, segments.segment(0).candidates_size()); in TEST_F()
854 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
855 EXPECT_EQ("私の名前は中野です。", segments.segment(0).candidate(1).value); in TEST_F()
864 Segments segments; in TEST_F() local
866 MakeSegmentsForConversion("です。", &segments); in TEST_F()
868 AddCandidate(0, "です。", &segments); in TEST_F()
870 predictor->Finish(*convreq_, &segments); in TEST_F()
872 segments.Clear(); in TEST_F()
874 MakeSegmentsForPrediction("です", &segments); in TEST_F()
875 EXPECT_FALSE(predictor->Predict(&segments)); in TEST_F()
884 Segments segments; in TEST_F() local
888 MakeSegmentsForPrediction("あ", &segments); in TEST_F()
889 AddCandidate(0, "亜", &segments); in TEST_F()
890 predictor->Finish(*convreq_, &segments); in TEST_F()
891 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
893 AddSegmentForPrediction("。", &segments); in TEST_F()
894 AddCandidate(1, "。", &segments); in TEST_F()
895 predictor->Finish(*convreq_, &segments); in TEST_F()
897 segments.Clear(); in TEST_F()
898 MakeSegmentsForPrediction("あ", &segments); // "あ" in TEST_F()
899 ASSERT_TRUE(predictor->Predict(&segments)) << segments.DebugString(); in TEST_F()
900 EXPECT_EQ("亜", segments.segment(0).candidate(0).value); in TEST_F()
902 segments.Clear(); in TEST_F()
906 MakeSegmentsForPrediction("。", &segments); in TEST_F()
907 AddCandidate(0, "。", &segments); in TEST_F()
908 predictor->Finish(*convreq_, &segments); in TEST_F()
909 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
911 AddSegmentForPrediction("あ", &segments); in TEST_F()
912 AddCandidate(1, "亜", &segments); in TEST_F()
913 predictor->Finish(*convreq_, &segments); in TEST_F()
915 segments.Clear(); in TEST_F()
916 MakeSegmentsForPrediction("。", &segments); // "。" in TEST_F()
917 EXPECT_FALSE(predictor->Predict(&segments)) << segments.DebugString(); in TEST_F()
919 segments.Clear(); in TEST_F()
923 MakeSegmentsForPrediction("おつかれさまです", &segments); in TEST_F()
924 AddCandidate(0, "お疲れ様です", &segments); in TEST_F()
925 predictor->Finish(*convreq_, &segments); in TEST_F()
926 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
928 AddSegmentForPrediction("。", &segments); in TEST_F()
929 AddCandidate(1, "。", &segments); in TEST_F()
930 predictor->Finish(*convreq_, &segments); in TEST_F()
932 segments.Clear(); in TEST_F()
933 MakeSegmentsForPrediction("おつかれ", &segments); in TEST_F()
934 ASSERT_TRUE(predictor->Predict(&segments)) << segments.DebugString(); in TEST_F()
935 EXPECT_EQ("お疲れ様です", segments.segment(0).candidate(0).value); in TEST_F()
936 EXPECT_EQ("お疲れ様です。", segments.segment(0).candidate(1).value); in TEST_F()
945 Segments segments; in TEST_F() local
947 MakeSegmentsForConversion("。", &segments); in TEST_F()
948 AddCandidate(0, "。", &segments); in TEST_F()
950 AddSegmentForConversion("わたしのなまえはなかのです", &segments); in TEST_F()
952 AddCandidate(1, "私の名前は中野です", &segments); in TEST_F()
954 predictor->Finish(*convreq_, &segments); in TEST_F()
956 segments.Clear(); in TEST_F()
957 MakeSegmentsForPrediction("わたしの", &segments); in TEST_F()
959 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
960 EXPECT_EQ(1, segments.segment(0).candidates_size()); in TEST_F()
961 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
963 segments.Clear(); in TEST_F()
964 MakeSegmentsForSuggestion("わたしの", &segments); in TEST_F()
965 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
966 EXPECT_EQ(1, segments.segment(0).candidates_size()); in TEST_F()
967 EXPECT_EQ("私の名前は中野です", segments.segment(0).candidate(0).value); in TEST_F()
988 Segments segments; in TEST_F() local
992 MakeSegmentsForConversion(first_char, &segments); in TEST_F()
993 AddCandidate(0, first_char, &segments); in TEST_F()
994 AddSegmentForConversion("てすとぶんしょう", &segments); in TEST_F()
995 AddCandidate(1, "テスト文章", &segments); in TEST_F()
996 predictor->Finish(*convreq_, &segments); in TEST_F()
998 segments.Clear(); in TEST_F()
1001 MakeSegmentsForConversion(first_char + "てすとぶんしょう", &segments); in TEST_F()
1002 AddCandidate(0, first_char + "テスト文章", &segments); in TEST_F()
1003 predictor->Finish(*convreq_, &segments); in TEST_F()
1005 segments.Clear(); in TEST_F()
1008 MakeSegmentsForSuggestion(first_char, &segments); in TEST_F()
1009 AddCandidate(0, first_char, &segments); in TEST_F()
1010 EXPECT_EQ(kTestCases[i].expected_result, predictor->Predict(&segments)) in TEST_F()
1013 segments.Clear(); in TEST_F()
1016 MakeSegmentsForPrediction(first_char, &segments); in TEST_F()
1017 EXPECT_EQ(kTestCases[i].expected_result, predictor->Predict(&segments)) in TEST_F()
1036 Segments segments; in TEST_F() local
1039 segments.Clear(); in TEST_F()
1040 MakeSegmentsForSuggestion("", &segments); in TEST_F()
1041 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
1044 segments.Clear(); in TEST_F()
1046 MakeSegmentsForConversion("たろうは", &segments); in TEST_F()
1047 AddCandidate(0, "太郎は", &segments); in TEST_F()
1048 predictor->Finish(*convreq_, &segments); in TEST_F()
1049 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
1051 AddSegmentForConversion("はなこに", &segments); in TEST_F()
1052 AddCandidate(1, "花子に", &segments); in TEST_F()
1053 predictor->Finish(*convreq_, &segments); in TEST_F()
1054 segments.mutable_segment(1)->set_segment_type(Segment::HISTORY); in TEST_F()
1056 segments.pop_back_segment(); in TEST_F()
1057 AddSegmentForConversion("きょうと", &segments); in TEST_F()
1058 AddCandidate(1, "京都", &segments); in TEST_F()
1060 predictor->Finish(*convreq_, &segments); in TEST_F()
1061 segments.mutable_segment(1)->set_segment_type(Segment::HISTORY); in TEST_F()
1063 segments.pop_back_segment(); in TEST_F()
1064 AddSegmentForConversion("おおさか", &segments); in TEST_F()
1065 AddCandidate(1, "大阪", &segments); in TEST_F()
1067 predictor->Finish(*convreq_, &segments); in TEST_F()
1068 segments.mutable_segment(1)->set_segment_type(Segment::HISTORY); in TEST_F()
1071 segments.pop_back_segment(); in TEST_F()
1072 AddSegmentForSuggestion("", &segments); // empty request in TEST_F()
1074 &segments)); in TEST_F()
1076 segments.pop_back_segment(); in TEST_F()
1077 AddSegmentForSuggestion("", &segments); // empty request in TEST_F()
1078 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
1080 EXPECT_EQ("大阪", segments.segment(1).candidate(0).value); in TEST_F()
1081 EXPECT_EQ("おおさか", segments.segment(1).candidate(0).key); in TEST_F()
1082 EXPECT_TRUE(segments.segment(1).candidate(0).source_info & in TEST_F()
1085 segments.pop_back_segment(); in TEST_F()
1086 AddSegmentForSuggestion("は", &segments); in TEST_F()
1087 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
1089 segments.pop_back_segment(); in TEST_F()
1090 AddSegmentForSuggestion("た", &segments); in TEST_F()
1091 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
1093 segments.pop_back_segment(); in TEST_F()
1094 AddSegmentForSuggestion("き", &segments); in TEST_F()
1095 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
1097 segments.pop_back_segment(); in TEST_F()
1098 AddSegmentForSuggestion("お", &segments); in TEST_F()
1099 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
1106 segments.Clear(); in TEST_F()
1107 MakeSegmentsForConversion("たろうは", &segments); in TEST_F()
1108 AddCandidate(0, "太郎は", &segments); in TEST_F()
1110 AddSegmentForConversion("はなこに", &segments); in TEST_F()
1111 AddCandidate(1, "花子に", &segments); in TEST_F()
1112 predictor->Finish(*convreq_, &segments); in TEST_F()
1114 segments.Clear(); in TEST_F()
1115 MakeSegmentsForConversion("たろうは", &segments); in TEST_F()
1116 AddCandidate(0, "太郎は", &segments); in TEST_F()
1117 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
1120 AddSegmentForSuggestion("", &segments); // empty request in TEST_F()
1122 &segments)); in TEST_F()
1124 segments.pop_back_segment(); in TEST_F()
1125 AddSegmentForSuggestion("", &segments); // empty request in TEST_F()
1126 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
1128 segments.pop_back_segment(); in TEST_F()
1129 AddSegmentForSuggestion("は", &segments); in TEST_F()
1130 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
1132 segments.pop_back_segment(); in TEST_F()
1133 AddSegmentForSuggestion("た", &segments); in TEST_F()
1134 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
1144 Segments segments; in TEST_F() local
1146 MakeSegmentsForConversion("たろうは", &segments); in TEST_F()
1147 AddCandidate(0, "太郎は", &segments); in TEST_F()
1148 predictor->Finish(*convreq_, &segments); in TEST_F()
1149 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
1151 AddSegmentForConversion("はなこに", &segments); in TEST_F()
1152 AddCandidate(1, "花子に", &segments); in TEST_F()
1153 predictor->Finish(*convreq_, &segments); in TEST_F()
1154 segments.mutable_segment(1)->set_segment_type(Segment::HISTORY); in TEST_F()
1156 segments.clear_conversion_segments(); in TEST_F()
1157 AddSegmentForConversion("むずかしい", &segments); in TEST_F()
1158 AddCandidate(2, "難しい", &segments); in TEST_F()
1159 predictor->Finish(*convreq_, &segments); in TEST_F()
1160 segments.mutable_segment(2)->set_segment_type(Segment::HISTORY); in TEST_F()
1162 segments.clear_conversion_segments(); in TEST_F()
1163 AddSegmentForConversion("ほんを", &segments); in TEST_F()
1164 AddCandidate(3, "本を", &segments); in TEST_F()
1165 predictor->Finish(*convreq_, &segments); in TEST_F()
1166 segments.mutable_segment(3)->set_segment_type(Segment::HISTORY); in TEST_F()
1168 segments.clear_conversion_segments(); in TEST_F()
1169 AddSegmentForConversion("よませた", &segments); in TEST_F()
1170 AddCandidate(4, "読ませた", &segments); in TEST_F()
1171 predictor->Finish(*convreq_, &segments); in TEST_F()
1173 segments.Clear(); in TEST_F()
1174 MakeSegmentsForSuggestion("た", &segments); in TEST_F()
1175 EXPECT_FALSE(predictor->Predict(&segments)); in TEST_F()
1177 segments.Clear(); in TEST_F()
1178 MakeSegmentsForSuggestion("たろうは", &segments); in TEST_F()
1179 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1181 segments.Clear(); in TEST_F()
1182 MakeSegmentsForSuggestion("ろうは", &segments); in TEST_F()
1183 EXPECT_FALSE(predictor->Predict(&segments)); in TEST_F()
1185 segments.Clear(); in TEST_F()
1186 MakeSegmentsForSuggestion("たろうははな", &segments); in TEST_F()
1187 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1189 segments.Clear(); in TEST_F()
1190 MakeSegmentsForSuggestion("はなこにむ", &segments); in TEST_F()
1191 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1193 segments.Clear(); in TEST_F()
1194 MakeSegmentsForSuggestion("むずかし", &segments); in TEST_F()
1195 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1197 segments.Clear(); in TEST_F()
1198 MakeSegmentsForSuggestion("はなこにむずかしいほ", &segments); in TEST_F()
1199 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1201 segments.Clear(); in TEST_F()
1202 MakeSegmentsForSuggestion("ほんをよま", &segments); in TEST_F()
1203 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1208 segments.Clear(); in TEST_F()
1209 MakeSegmentsForConversion("たろうは", &segments); in TEST_F()
1210 AddCandidate(0, "太郎は", &segments); in TEST_F()
1211 predictor->Finish(*convreq_, &segments); in TEST_F()
1212 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
1214 AddSegmentForConversion("よしこに", &segments); in TEST_F()
1215 AddCandidate(1, "良子に", &segments); in TEST_F()
1216 predictor->Finish(*convreq_, &segments); in TEST_F()
1217 segments.mutable_segment(1)->set_segment_type(Segment::HISTORY); in TEST_F()
1219 segments.Clear(); in TEST_F()
1220 MakeSegmentsForSuggestion("たろうは", &segments); in TEST_F()
1221 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1222 EXPECT_EQ("太郎は良子に", segments.segment(0).candidate(0).value); in TEST_F()
1223 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
1233 Segments segments; in TEST_F() local
1235 MakeSegmentsForConversion("たろうは", &segments); in TEST_F()
1236 AddCandidate(0, "太郎は", &segments); in TEST_F()
1238 AddSegmentForConversion("はなこに", &segments); in TEST_F()
1239 AddCandidate(1, "花子に", &segments); in TEST_F()
1241 AddSegmentForConversion("むずかしい", &segments); in TEST_F()
1242 AddCandidate(2, "難しい", &segments); in TEST_F()
1244 AddSegmentForConversion("ほんを", &segments); in TEST_F()
1245 AddCandidate(3, "本を", &segments); in TEST_F()
1247 AddSegmentForConversion("よませた", &segments); in TEST_F()
1248 AddCandidate(4, "読ませた", &segments); in TEST_F()
1250 predictor->Finish(*convreq_, &segments); in TEST_F()
1252 segments.Clear(); in TEST_F()
1253 MakeSegmentsForSuggestion("たろうは", &segments); in TEST_F()
1254 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1256 segments.Clear(); in TEST_F()
1257 MakeSegmentsForSuggestion("た", &segments); in TEST_F()
1258 EXPECT_FALSE(predictor->Predict(&segments)); in TEST_F()
1260 segments.Clear(); in TEST_F()
1261 MakeSegmentsForSuggestion("たろうははな", &segments); in TEST_F()
1262 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1264 segments.Clear(); in TEST_F()
1265 MakeSegmentsForSuggestion("ろうははな", &segments); in TEST_F()
1266 EXPECT_FALSE(predictor->Predict(&segments)); in TEST_F()
1268 segments.Clear(); in TEST_F()
1269 MakeSegmentsForSuggestion("はなこにむ", &segments); in TEST_F()
1270 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1272 segments.Clear(); in TEST_F()
1273 MakeSegmentsForSuggestion("むずかし", &segments); in TEST_F()
1274 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1276 segments.Clear(); in TEST_F()
1277 MakeSegmentsForSuggestion("はなこにむずかしいほ", &segments); in TEST_F()
1278 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1280 segments.Clear(); in TEST_F()
1281 MakeSegmentsForSuggestion("ほんをよま", &segments); in TEST_F()
1282 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1287 segments.Clear(); in TEST_F()
1288 MakeSegmentsForConversion("たろうは", &segments); in TEST_F()
1289 AddCandidate(0, "太郎は", &segments); in TEST_F()
1290 predictor->Finish(*convreq_, &segments); in TEST_F()
1291 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
1293 AddSegmentForConversion("よしこに", &segments); in TEST_F()
1294 AddCandidate(1, "良子に", &segments); in TEST_F()
1295 predictor->Finish(*convreq_, &segments); in TEST_F()
1296 segments.mutable_segment(1)->set_segment_type(Segment::HISTORY); in TEST_F()
1298 segments.Clear(); in TEST_F()
1299 MakeSegmentsForSuggestion("たろうは", &segments); in TEST_F()
1300 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1301 EXPECT_EQ("太郎は良子に", segments.segment(0).candidate(0).value); in TEST_F()
1302 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
1312 Segments segments; in TEST_F() local
1314 MakeSegmentsForConversion("とうきょうは", &segments); in TEST_F()
1315 AddCandidate(0, "東京は", &segments); in TEST_F()
1317 AddSegmentForConversion("、", &segments); in TEST_F()
1318 AddCandidate(1, "、", &segments); in TEST_F()
1320 AddSegmentForConversion("にほんです", &segments); in TEST_F()
1321 AddCandidate(2, "日本です", &segments); in TEST_F()
1323 AddSegmentForConversion("。", &segments); in TEST_F()
1324 AddCandidate(3, "。", &segments); in TEST_F()
1326 predictor->Finish(*convreq_, &segments); in TEST_F()
1328 segments.Clear(); in TEST_F()
1332 MakeSegmentsForConversion("らーめんは", &segments); in TEST_F()
1333 AddCandidate(0, "ラーメンは", &segments); in TEST_F()
1335 AddSegmentForConversion("、", &segments); in TEST_F()
1336 AddCandidate(1, "、", &segments); in TEST_F()
1338 AddSegmentForConversion("めんるいです", &segments); in TEST_F()
1339 AddCandidate(2, "麺類です", &segments); in TEST_F()
1341 AddSegmentForConversion("。", &segments); in TEST_F()
1342 AddCandidate(3, "。", &segments); in TEST_F()
1344 predictor->Finish(*convreq_, &segments); in TEST_F()
1346 segments.Clear(); in TEST_F()
1348 MakeSegmentsForSuggestion("とうきょうは、", &segments); in TEST_F()
1349 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1351 EXPECT_EQ("東京は、日本です", segments.segment(0).candidate(0).value); in TEST_F()
1352 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
1362 Segments segments; in TEST_F() local
1364 MakeSegmentsForConversion("えど", &segments); in TEST_F()
1365 AddCandidate(0, "江戸", &segments); in TEST_F()
1367 AddSegmentForConversion("(", &segments); in TEST_F()
1368 AddCandidate(1, "(", &segments); in TEST_F()
1370 AddSegmentForConversion("とうきょう", &segments); in TEST_F()
1371 AddCandidate(2, "東京", &segments); in TEST_F()
1373 AddSegmentForConversion(")", &segments); in TEST_F()
1374 AddCandidate(3, ")", &segments); in TEST_F()
1376 AddSegmentForConversion("は", &segments); in TEST_F()
1377 AddCandidate(4, "は", &segments); in TEST_F()
1379 AddSegmentForConversion("えぞ", &segments); in TEST_F()
1380 AddCandidate(5, "蝦夷", &segments); in TEST_F()
1382 AddSegmentForConversion("(", &segments); in TEST_F()
1383 AddCandidate(6, "(", &segments); in TEST_F()
1385 AddSegmentForConversion("ほっかいどう", &segments); in TEST_F()
1386 AddCandidate(7, "北海道", &segments); in TEST_F()
1388 AddSegmentForConversion(")", &segments); in TEST_F()
1389 AddCandidate(8, ")", &segments); in TEST_F()
1391 AddSegmentForConversion("ではない", &segments); in TEST_F()
1392 AddCandidate(9, "ではない", &segments); in TEST_F()
1394 AddSegmentForConversion("。", &segments); in TEST_F()
1395 AddCandidate(10, "。", &segments); in TEST_F()
1397 predictor->Finish(*convreq_, &segments); in TEST_F()
1399 segments.Clear(); in TEST_F()
1401 MakeSegmentsForSuggestion("えど(", &segments); in TEST_F()
1402 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1403 EXPECT_EQ("江戸(東京", segments.segment(0).candidate(0).value); in TEST_F()
1404 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
1407 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1409 EXPECT_EQ("江戸(東京", segments.segment(0).candidate(0).value); in TEST_F()
1410 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
1420 Segments segments; in TEST_F() local
1422 MakeSegmentsForConversion("「", &segments); in TEST_F()
1423 AddCandidate(0, "「", &segments); in TEST_F()
1425 AddSegmentForConversion("やま", &segments); in TEST_F()
1426 AddCandidate(1, "山", &segments); in TEST_F()
1428 AddSegmentForConversion("」", &segments); in TEST_F()
1429 AddCandidate(2, "」", &segments); in TEST_F()
1431 AddSegmentForConversion("は", &segments); in TEST_F()
1432 AddCandidate(3, "は", &segments); in TEST_F()
1434 AddSegmentForConversion("たかい", &segments); in TEST_F()
1435 AddCandidate(4, "高い", &segments); in TEST_F()
1437 AddSegmentForConversion("。", &segments); in TEST_F()
1438 AddCandidate(5, "。", &segments); in TEST_F()
1440 predictor->Finish(*convreq_, &segments); in TEST_F()
1444 segments.Clear(); in TEST_F()
1446 MakeSegmentsForConversion("「", &segments); in TEST_F()
1447 AddCandidate(0, "「", &segments); in TEST_F()
1449 AddSegmentForConversion("うみ", &segments); in TEST_F()
1450 AddCandidate(1, "海", &segments); in TEST_F()
1452 AddSegmentForConversion("」", &segments); in TEST_F()
1453 AddCandidate(2, "」", &segments); in TEST_F()
1455 AddSegmentForConversion("は", &segments); in TEST_F()
1456 AddCandidate(3, "は", &segments); in TEST_F()
1458 AddSegmentForConversion("ふかい", &segments); in TEST_F()
1459 AddCandidate(4, "深い", &segments); in TEST_F()
1461 AddSegmentForConversion("。", &segments); in TEST_F()
1462 AddCandidate(5, "。", &segments); in TEST_F()
1464 predictor->Finish(*convreq_, &segments); in TEST_F()
1466 segments.Clear(); in TEST_F()
1468 MakeSegmentsForSuggestion("「やま」は", &segments); in TEST_F()
1469 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1471 EXPECT_EQ("「山」は高い", segments.segment(0).candidate(0).value); in TEST_F()
1472 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
1482 Segments segments; in TEST_F() local
1484 MakeSegmentsForConversion("そうです", &segments); in TEST_F()
1485 AddCandidate(0, "そうです", &segments); in TEST_F()
1487 AddSegmentForConversion("。よろしくおねがいします", &segments); in TEST_F()
1488 AddCandidate(1, "。よろしくお願いします", &segments); in TEST_F()
1490 predictor->Finish(*convreq_, &segments); in TEST_F()
1492 segments.Clear(); in TEST_F()
1494 MakeSegmentsForSuggestion("そうです", &segments); in TEST_F()
1495 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1498 segments.segment(0).candidate(0).value); in TEST_F()
1499 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
1509 Segments segments; in TEST_F() local
1511 MakeSegmentsForConversion("らいおん", &segments); in TEST_F()
1512 AddCandidate(0, "ライオン", &segments); in TEST_F()
1514 AddSegmentForConversion("(", &segments); in TEST_F()
1515 AddCandidate(1, "(", &segments); in TEST_F()
1517 AddSegmentForConversion("もうじゅう", &segments); in TEST_F()
1518 AddCandidate(2, "猛獣", &segments); in TEST_F()
1520 AddSegmentForConversion(")と", &segments); in TEST_F()
1521 AddCandidate(3, ")と", &segments); in TEST_F()
1523 AddSegmentForConversion("ぞうりむし", &segments); in TEST_F()
1524 AddCandidate(4, "ゾウリムシ", &segments); in TEST_F()
1526 AddSegmentForConversion("(", &segments); in TEST_F()
1527 AddCandidate(5, "(", &segments); in TEST_F()
1529 AddSegmentForConversion("びせいぶつ", &segments); in TEST_F()
1530 AddCandidate(6, "微生物", &segments); in TEST_F()
1532 AddSegmentForConversion(")", &segments); in TEST_F()
1533 AddCandidate(7, ")", &segments); in TEST_F()
1535 predictor->Finish(*convreq_, &segments); in TEST_F()
1537 segments.Clear(); in TEST_F()
1539 MakeSegmentsForSuggestion("ぞうりむし", &segments); in TEST_F()
1540 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1542 for (int i = 0; i < segments.segment(0).candidates_size(); ++i) { in TEST_F()
1544 segments.segment(0).candidate(i).value.find( in TEST_F()
1548 segments.Clear(); in TEST_F()
1550 MakeSegmentsForSuggestion("らいおん", &segments); in TEST_F()
1551 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
1553 for (int i = 0; i < segments.segment(0).candidates_size(); ++i) { in TEST_F()
1555 segments.segment(0).candidate(i).value.find("ライオン(微生物")); in TEST_F()
1593 Segments segments; in TEST_F() local
1603 segments.Clear(); in TEST_F()
1604 MakeSegmentsForConversion(commands[i].key, &segments); in TEST_F()
1605 AddCandidate(commands[i].value, &segments); in TEST_F()
1606 predictor->Finish(*convreq_, &segments); in TEST_F()
1609 segments.Clear(); in TEST_F()
1610 MakeSegmentsForSuggestion(commands[i].key, &segments); in TEST_F()
1611 predictor->Predict(&segments); in TEST_F()
2129 Segments segments; in TEST_F() local
2130 MakeSegmentsForConversion(input, &segments); in TEST_F()
2131 AddCandidate(0, output, &segments); in TEST_F()
2132 predictor->Finish(*convreq_, &segments); in TEST_F()
2140 Segments segments; in TEST_F() local
2141 MakeSegmentsForSuggestion(partial_input, &segments); in TEST_F()
2143 EXPECT_FALSE(predictor->Predict(&segments)) in TEST_F()
2146 EXPECT_TRUE(predictor->Predict(&segments)) in TEST_F()
2149 segments.Clear(); in TEST_F()
2150 MakeSegmentsForPrediction(input, &segments); in TEST_F()
2152 EXPECT_FALSE(predictor->Predict(&segments)) in TEST_F()
2155 EXPECT_TRUE(predictor->Predict(&segments)) in TEST_F()
2162 Segments segments; in TEST_F() local
2163 MakeSegmentsForPrediction(partial_input, &segments); in TEST_F()
2165 EXPECT_FALSE(predictor->Predict(&segments)) in TEST_F()
2168 EXPECT_TRUE(predictor->Predict(&segments)) in TEST_F()
2171 segments.Clear(); in TEST_F()
2172 MakeSegmentsForPrediction(input, &segments); in TEST_F()
2174 EXPECT_FALSE(predictor->Predict(&segments)) in TEST_F()
2177 EXPECT_TRUE(predictor->Predict(&segments)) in TEST_F()
2192 Segments segments; in TEST_F() local
2193 MakeSegmentsForConversion("123", &segments); in TEST_F()
2194 AddSegmentForConversion("abc!", &segments); in TEST_F()
2195 AddCandidate(0, "123", &segments); in TEST_F()
2196 AddCandidate(1, "abc!", &segments); in TEST_F()
2197 predictor->Finish(*convreq_, &segments); in TEST_F()
2201 Segments segments; in TEST_F() local
2202 MakeSegmentsForSuggestion("123abc", &segments); in TEST_F()
2203 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
2204 segments.Clear(); in TEST_F()
2205 MakeSegmentsForSuggestion("123abc!", &segments); in TEST_F()
2206 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
2210 Segments segments; in TEST_F() local
2211 MakeSegmentsForPrediction("123abc", &segments); in TEST_F()
2212 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
2213 segments.Clear(); in TEST_F()
2214 MakeSegmentsForPrediction("123abc!", &segments); in TEST_F()
2215 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
2306 Segments segments; in TEST_F() local
2307 Segment *seg = segments.add_segment(); in TEST_F()
2316 UserHistoryPredictor::GetRomanMisspelledKey(*convreq_, segments)); in TEST_F()
2320 UserHistoryPredictor::GetRomanMisspelledKey(*convreq_, segments)); in TEST_F()
2324 UserHistoryPredictor::GetRomanMisspelledKey(*convreq_, segments)); in TEST_F()
2330 UserHistoryPredictor::GetRomanMisspelledKey(*convreq_, segments)); in TEST_F()
2334 UserHistoryPredictor::GetRomanMisspelledKey(*convreq_, segments)); in TEST_F()
2614 Segments *segments) { in InitSegmentsFromInputSequence() argument
2617 DCHECK(segments); in InitSegmentsFromInputSequence()
2637 segments->set_request_type(Segments::PREDICTION); in InitSegmentsFromInputSequence()
2638 Segment *segment = segments->add_segment(); in InitSegmentsFromInputSequence()
2649 Segments segments; in TEST_F() local
2654 &segments); in TEST_F()
2662 segments, in TEST_F()
2683 segments, in TEST_F()
2704 Segments segments; in TEST_F() local
2718 &segments); in TEST_F()
2723 segments, in TEST_F()
2736 Segments segments; in TEST_F() local
2742 &segments); in TEST_F()
2747 segments, in TEST_F()
2758 Segments segments; in TEST_F() local
2762 "n", composer_.get(), convreq_.get(), &segments); in TEST_F()
2767 segments, in TEST_F()
2783 segments.Clear(); in TEST_F()
2786 "nn", composer_.get(), convreq_.get(), &segments); in TEST_F()
2791 segments, in TEST_F()
2801 segments.Clear(); in TEST_F()
2804 convreq_.get(), &segments); in TEST_F()
2809 segments, in TEST_F()
2819 segments.Clear(); in TEST_F()
2822 convreq_.get(), &segments); in TEST_F()
2827 segments, in TEST_F()
2848 Segments segments; in TEST_F() local
2852 &segments); in TEST_F()
2857 segments, in TEST_F()
2877 Segments segments; in TEST_F() local
2883 &segments); in TEST_F()
2888 segments, in TEST_F()
2907 Segments segments; in TEST_F() local
2910 composer_.get(), convreq_.get(), &segments); in TEST_F()
2918 segments, in TEST_F()
2940 segments, in TEST_F()
2956 Segments segments; in TEST_F() local
2960 MakeSegmentsForPrediction(kKey, &segments); in TEST_F()
2962 segments.mutable_segment(0)->add_candidate(); in TEST_F()
2976 predictor->Finish(*convreq_, &segments); in TEST_F()
2977 segments.Clear(); in TEST_F()
2979 MakeSegmentsForPrediction("なかの", &segments); in TEST_F()
2980 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
2981 EXPECT_TRUE(FindCandidateByValue("中野です", segments)); in TEST_F()
2983 segments.Clear(); in TEST_F()
2984 MakeSegmentsForPrediction("なまえ", &segments); in TEST_F()
2985 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
2986 EXPECT_TRUE(FindCandidateByValue("名前は", segments)); in TEST_F()
2987 EXPECT_TRUE(FindCandidateByValue("名前は中野です", segments)); in TEST_F()
2996 Segments segments; in TEST_F() local
3000 MakeSegmentsForPrediction(kKey, &segments); in TEST_F()
3002 segments.mutable_segment(0)->add_candidate(); in TEST_F()
3016 predictor->Finish(*convreq_, &segments); in TEST_F()
3017 segments.Clear(); in TEST_F()
3019 MakeSegmentsForConversion("わたしの", &segments); in TEST_F()
3020 AddCandidate(0, "私の", &segments); in TEST_F()
3021 predictor->Finish(*convreq_, &segments); in TEST_F()
3022 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
3024 AddSegmentForSuggestion("", &segments); // empty request in TEST_F()
3027 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3028 EXPECT_TRUE(FindCandidateByValue("名前は", segments)); in TEST_F()
3039 Segments segments; in TEST_F() local
3043 MakeSegmentsForPrediction(kKey, &segments); in TEST_F()
3045 segments.mutable_segment(0)->add_candidate(); in TEST_F()
3052 predictor->Finish(*convreq_, &segments); in TEST_F()
3053 segments.Clear(); in TEST_F()
3056 MakeSegmentsForPrediction("よろ", &segments); in TEST_F()
3057 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3058 EXPECT_TRUE(FindCandidateByValue("よろしくお願いします", segments)); in TEST_F()
3625 Segments segments; in TEST_F() local
3626 MakeSegmentsForConversion("ぐーぐr", &segments); in TEST_F()
3627 AddCandidate("グーグr", &segments); in TEST_F()
3628 predictor->Finish(*convreq_, &segments); in TEST_F()
3653 Segments segments; in TEST_F() local
3654 segments.set_request_type(Segments::CONVERSION); in TEST_F()
3657 Segment *seg = segments.add_segment(); in TEST_F()
3668 seg = segments.add_segment(); in TEST_F()
3679 seg = segments.add_segment(); in TEST_F()
3689 predictor->Finish(*convreq_, &segments); in TEST_F()
3715 Segments segments; in TEST_F() local
3719 MakeSegmentsForPrediction(kKey, &segments); in TEST_F()
3721 segments.mutable_segment(0)->add_candidate(); in TEST_F()
3730 predictor->Finish(*convreq_, &segments); in TEST_F()
3733 segments.Clear(); in TEST_F()
3734 MakeSegmentsForPrediction("と", &segments); in TEST_F()
3735 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
3736 EXPECT_TRUE(FindCandidateByValue("東京", segments)); in TEST_F()
3737 EXPECT_TRUE(FindCandidateByValue("東京か", segments)); in TEST_F()
3739 segments.Clear(); in TEST_F()
3740 MakeSegmentsForPrediction("な", &segments); in TEST_F()
3741 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
3742 EXPECT_TRUE(FindCandidateByValue("名古屋", segments)); in TEST_F()
3743 EXPECT_TRUE(FindCandidateByValue("名古屋に", segments)); in TEST_F()
3745 segments.Clear(); in TEST_F()
3746 MakeSegmentsForPrediction("い", &segments); in TEST_F()
3747 EXPECT_TRUE(predictor->Predict(&segments)); in TEST_F()
3748 EXPECT_TRUE(FindCandidateByValue("行きたい", segments)); in TEST_F()
3757 Segments segments; in TEST_F() local
3759 MakeSegmentsForConversion("わたしの", &segments); in TEST_F()
3760 AddCandidate(0, "私の", &segments); in TEST_F()
3762 AddSegmentForConversion("なまえは", &segments); in TEST_F()
3763 AddCandidate(1, "名前は", &segments); in TEST_F()
3765 predictor->Finish(*convreq_, &segments); in TEST_F()
3766 segments.Clear(); in TEST_F()
3768 MakeSegmentsForSuggestion("わたし", &segments); in TEST_F()
3769 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3770 EXPECT_EQ(1, segments.segment(0).candidates_size()); in TEST_F()
3771 EXPECT_EQ("私の", segments.segment(0).candidate(0).value); in TEST_F()
3772 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
3774 segments.Clear(); in TEST_F()
3776 MakeSegmentsForPrediction("わたしの", &segments); in TEST_F()
3777 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3778 EXPECT_EQ(1, segments.segment(0).candidates_size()); in TEST_F()
3779 EXPECT_EQ("私の", segments.segment(0).candidate(0).value); in TEST_F()
3780 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
3782 segments.Clear(); in TEST_F()
3784 MakeSegmentsForPrediction("わたしのな", &segments); in TEST_F()
3785 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3786 EXPECT_EQ(1, segments.segment(0).candidates_size()); in TEST_F()
3787 EXPECT_EQ("私の名前は", segments.segment(0).candidate(0).value); in TEST_F()
3788 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
3790 segments.Clear(); in TEST_F()
3799 Segments segments; in TEST_F() local
3801 MakeSegmentsForConversion("わたしの", &segments); in TEST_F()
3802 AddCandidate(0, "私の", &segments); in TEST_F()
3804 AddSegmentForConversion("なまえは", &segments); in TEST_F()
3805 AddCandidate(1, "名前は", &segments); in TEST_F()
3807 predictor->Finish(*convreq_, &segments); in TEST_F()
3809 segments.Clear(); in TEST_F()
3811 MakeSegmentsForSuggestion("わたし", &segments); in TEST_F()
3812 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3813 EXPECT_EQ(2, segments.segment(0).candidates_size()); in TEST_F()
3814 EXPECT_EQ("私の", segments.segment(0).candidate(0).value); in TEST_F()
3815 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
3817 EXPECT_EQ("私の名前は", segments.segment(0).candidate(1).value); in TEST_F()
3818 EXPECT_TRUE(segments.segment(0).candidate(1).source_info & in TEST_F()
3820 segments.Clear(); in TEST_F()
3822 MakeSegmentsForPrediction("わたしの", &segments); in TEST_F()
3823 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3824 EXPECT_EQ(1, segments.segment(0).candidates_size()); in TEST_F()
3825 EXPECT_EQ("私の名前は", segments.segment(0).candidate(0).value); in TEST_F()
3826 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
3828 segments.Clear(); in TEST_F()
3830 MakeSegmentsForPrediction("わたしのな", &segments); in TEST_F()
3831 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3832 EXPECT_EQ(1, segments.segment(0).candidates_size()); in TEST_F()
3833 EXPECT_EQ("私の名前は", segments.segment(0).candidate(0).value); in TEST_F()
3834 EXPECT_TRUE(segments.segment(0).candidate(0).source_info & in TEST_F()
3836 segments.Clear(); in TEST_F()
3845 Segments segments; in TEST_F() local
3849 MakeSegmentsForConversion("なまえは", &segments); in TEST_F()
3850 AddCandidate(0, "名前は", &segments); in TEST_F()
3851 segments.mutable_conversion_segment(0)->mutable_candidate(0)->source_info |= in TEST_F()
3853 predictor->Finish(*convreq_, &segments); in TEST_F()
3858 segments.Clear(); in TEST_F()
3861 MakeSegmentsForConversion("", &segments); in TEST_F()
3862 AddCandidate(0, "名前は", &segments); in TEST_F()
3863 segments.mutable_conversion_segment(0)->mutable_candidate(0)->source_info |= in TEST_F()
3865 predictor->Finish(*convreq_, &segments); in TEST_F()
3878 Segments segments; in TEST_F() local
3880 MakeSegmentsForConversion("ございます", &segments); in TEST_F()
3881 AddCandidate(0, "ございます", &segments); in TEST_F()
3883 predictor->Finish(*convreq_, &segments); in TEST_F()
3884 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
3886 AddSegmentForConversion("!", &segments); in TEST_F()
3887 AddCandidate(1, "!", &segments); in TEST_F()
3888 predictor->Finish(*convreq_, &segments); in TEST_F()
3890 segments.Clear(); in TEST_F()
3891 MakeSegmentsForSuggestion("ございま", &segments); in TEST_F()
3892 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3893 EXPECT_EQ("ございます", segments.conversion_segment(0).candidate(0).value); in TEST_F()
3894 EXPECT_FALSE(FindCandidateByValue("ございます!", segments)); in TEST_F()
3897 segments.Clear(); in TEST_F()
3898 MakeSegmentsForConversion("ございます", &segments); in TEST_F()
3899 AddCandidate(0, "ございます", &segments); in TEST_F()
3900 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
3901 AddSegmentForSuggestion("", &segments); // empty request in TEST_F()
3902 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3903 EXPECT_EQ("!", segments.conversion_segment(0).candidate(0).value); in TEST_F()
3910 MakeSegmentsForConversion("!", &segments); in TEST_F()
3911 AddCandidate(0, "!", &segments); in TEST_F()
3913 predictor->Finish(*convreq_, &segments); in TEST_F()
3914 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
3916 AddSegmentForConversion("ございます", &segments); in TEST_F()
3917 AddCandidate(1, "ございます", &segments); in TEST_F()
3918 predictor->Finish(*convreq_, &segments); in TEST_F()
3921 segments.Clear(); in TEST_F()
3922 MakeSegmentsForConversion("!", &segments); in TEST_F()
3923 AddCandidate(0, "!", &segments); in TEST_F()
3924 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
3925 AddSegmentForSuggestion("", &segments); // empty request in TEST_F()
3926 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3933 MakeSegmentsForConversion("ございます!", &segments); in TEST_F()
3934 AddCandidate(0, "ございます!", &segments); in TEST_F()
3936 predictor->Finish(*convreq_, &segments); in TEST_F()
3937 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
3939 AddSegmentForConversion("よろしくおねがいします", &segments); in TEST_F()
3940 AddCandidate(1, "よろしくお願いします", &segments); in TEST_F()
3941 predictor->Finish(*convreq_, &segments); in TEST_F()
3944 segments.Clear(); in TEST_F()
3945 MakeSegmentsForConversion("!", &segments); in TEST_F()
3946 AddCandidate(0, "!", &segments); in TEST_F()
3947 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
3948 AddSegmentForSuggestion("", &segments); // empty request in TEST_F()
3949 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3952 segments.Clear(); in TEST_F()
3953 MakeSegmentsForConversion("ございます!", &segments); in TEST_F()
3954 AddCandidate(0, "ございます!", &segments); in TEST_F()
3955 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
3956 AddSegmentForSuggestion("", &segments); // empty request in TEST_F()
3957 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3964 MakeSegmentsForConversion("ございます", &segments); in TEST_F()
3965 AddCandidate(0, "ございます", &segments); in TEST_F()
3967 predictor->Finish(*convreq_, &segments); in TEST_F()
3968 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
3970 AddSegmentForConversion("!よろしくおねがいします", &segments); in TEST_F()
3971 AddCandidate(1, "!よろしくお願いします", &segments); in TEST_F()
3972 predictor->Finish(*convreq_, &segments); in TEST_F()
3974 segments.Clear(); in TEST_F()
3975 MakeSegmentsForSuggestion("ございま", &segments); in TEST_F()
3976 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3977 EXPECT_EQ("ございます", segments.conversion_segment(0).candidate(0).value); in TEST_F()
3979 FindCandidateByValue("ございます!よろしくお願いします", segments)); in TEST_F()
3982 segments.Clear(); in TEST_F()
3983 MakeSegmentsForConversion("ございます", &segments); in TEST_F()
3984 AddCandidate(0, "ございます", &segments); in TEST_F()
3985 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
3986 AddSegmentForSuggestion("", &segments); // empty request in TEST_F()
3987 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
3996 Segments segments; in TEST_F() local
3998 MakeSegmentsForConversion("ございます", &segments); in TEST_F()
3999 AddCandidate(0, "ございます", &segments); in TEST_F()
4001 predictor->Finish(*convreq_, &segments); in TEST_F()
4002 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
4004 AddSegmentForConversion("!", &segments); in TEST_F()
4005 AddCandidate(1, "!", &segments); in TEST_F()
4006 predictor->Finish(*convreq_, &segments); in TEST_F()
4008 segments.Clear(); in TEST_F()
4009 MakeSegmentsForSuggestion("ございま", &segments); in TEST_F()
4010 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
4011 EXPECT_EQ("ございます", segments.conversion_segment(0).candidate(0).value); in TEST_F()
4012 EXPECT_FALSE(FindCandidateByValue("ございます!", segments)); in TEST_F()
4014 segments.Clear(); in TEST_F()
4015 MakeSegmentsForSuggestion("ございます", &segments); in TEST_F()
4016 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
4017 EXPECT_EQ("ございます", segments.conversion_segment(0).candidate(0).value); in TEST_F()
4018 EXPECT_FALSE(FindCandidateByValue("ございます!", segments)); in TEST_F()
4025 MakeSegmentsForConversion("!", &segments); in TEST_F()
4026 AddCandidate(0, "!", &segments); in TEST_F()
4028 predictor->Finish(*convreq_, &segments); in TEST_F()
4029 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
4031 AddSegmentForConversion("よろしくおねがいします", &segments); in TEST_F()
4032 AddCandidate(1, "よろしくお願いします", &segments); in TEST_F()
4033 predictor->Finish(*convreq_, &segments); in TEST_F()
4035 segments.Clear(); in TEST_F()
4036 MakeSegmentsForSuggestion("!", &segments); in TEST_F()
4037 EXPECT_FALSE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
4044 MakeSegmentsForConversion("ございます!", &segments); in TEST_F()
4045 AddCandidate(0, "ございます!", &segments); in TEST_F()
4047 predictor->Finish(*convreq_, &segments); in TEST_F()
4048 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
4050 AddSegmentForConversion("よろしくおねがいします", &segments); in TEST_F()
4051 AddCandidate(1, "よろしくお願いします", &segments); in TEST_F()
4052 predictor->Finish(*convreq_, &segments); in TEST_F()
4054 segments.Clear(); in TEST_F()
4055 MakeSegmentsForSuggestion("ございます", &segments); in TEST_F()
4056 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
4058 segments.conversion_segment(0).candidate(0).value); in TEST_F()
4060 FindCandidateByValue("ございます!よろしくお願いします", segments)); in TEST_F()
4062 segments.Clear(); in TEST_F()
4063 MakeSegmentsForSuggestion("ございます!", &segments); in TEST_F()
4064 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
4066 segments.conversion_segment(0).candidate(0).value); in TEST_F()
4068 FindCandidateByValue("ございます!よろしくお願いします", segments)); in TEST_F()
4075 MakeSegmentsForConversion("ございます", &segments); in TEST_F()
4076 AddCandidate(0, "ございます", &segments); in TEST_F()
4078 predictor->Finish(*convreq_, &segments); in TEST_F()
4079 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
4081 AddSegmentForConversion("!よろしくおねがいします", &segments); in TEST_F()
4082 AddCandidate(1, "!よろしくお願いします", &segments); in TEST_F()
4083 predictor->Finish(*convreq_, &segments); in TEST_F()
4085 segments.Clear(); in TEST_F()
4086 MakeSegmentsForSuggestion("ございます", &segments); in TEST_F()
4087 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
4088 EXPECT_EQ("ございます", segments.conversion_segment(0).candidate(0).value); in TEST_F()
4089 EXPECT_FALSE(FindCandidateByValue("ございます!", segments)); in TEST_F()
4091 FindCandidateByValue("ございます!よろしくお願いします", segments)); in TEST_F()
4100 MakeSegmentsForConversion("よろしくおねがいします", &segments); in TEST_F()
4101 AddCandidate(0, "よろしくお願いします", &segments); in TEST_F()
4103 predictor->Finish(*convreq_, &segments); in TEST_F()
4104 segments.mutable_segment(0)->set_segment_type(Segment::HISTORY); in TEST_F()
4106 AddSegmentForConversion("!", &segments); in TEST_F()
4107 AddCandidate(1, "!", &segments); in TEST_F()
4108 predictor->Finish(*convreq_, &segments); in TEST_F()
4110 segments.Clear(); in TEST_F()
4111 MakeSegmentsForSuggestion("よろしくおねがいします", &segments); in TEST_F()
4112 EXPECT_TRUE(predictor->PredictForRequest(*convreq_, &segments)); in TEST_F()
4113 EXPECT_TRUE(FindCandidateByValue("よろしくお願いします!", segments)); in TEST_F()