All functions:
  Elements:
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::SentencePieceProcessor
      Src: /src/sample_encode_fuzzer.cc:25,1
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/sample_encode_fuzzer.cc:27,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPoint
      Src: /src/sample_encode_fuzzer.cc:28,1
    - Dst: FuzzedDataProvider::ConsumeRemainingBytesAsString
      Src: /src/sample_encode_fuzzer.cc:29,1
    - Dst: sentencepiece::SentencePieceProcessor::SampleEncodeAsSerializedProto
      Src: /src/sample_encode_fuzzer.cc:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/sample_encode_fuzzer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::SampleEncodeAsSerializedProto
    - FuzzedDataProvider::ConsumeRemainingBytesAsString
    - FuzzedDataProvider::ConsumeIntegral
    - FuzzedDataProvider::ConsumeFloatingPoint
    - sentencepiece::SentencePieceProcessor::SentencePieceProcessor
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/generate_model.cc:33,1
    - Dst: auto*::set_piece
      Src: /src/generate_model.cc:34,1
    - Dst: auto*::set_type
      Src: /src/generate_model.cc:35,1
    - Dst: auto*::set_score
      Src: /src/generate_model.cc:36,1
    - Dst: ModelProto*::add_pieces
      Src: /src/generate_model.cc:38,1
    - Dst: auto*::set_piece
      Src: /src/generate_model.cc:39,1
    - Dst: auto*::set_type
      Src: /src/generate_model.cc:40,1
    - Dst: auto*::set_score
      Src: /src/generate_model.cc:41,1
    - Dst: ModelProto*::add_pieces
      Src: /src/generate_model.cc:43,1
    - Dst: auto*::set_piece
      Src: /src/generate_model.cc:44,1
    - Dst: auto*::set_type
      Src: /src/generate_model.cc:45,1
    - Dst: auto*::set_score
      Src: /src/generate_model.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - model
    argTypes:
    - ModelProto*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: AddSpecialPieces
    functionSourceFile: /src/generate_model.cc
    functionUses: 0
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    - auto*::set_type
    linkageType: ''
    returnType: void
    signature: void AddSpecialPieces(ModelProto *model)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/generate_model.cc:50,1
    - Dst: auto*::set_piece
      Src: /src/generate_model.cc:51,1
    - Dst: auto*::set_score
      Src: /src/generate_model.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - model
    - piece
    - score
    argTypes:
    - ModelProto*
    - std::string
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: AddPiece
    functionSourceFile: /src/generate_model.cc
    functionUses: 0
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void AddPiece(ModelProto *model, const std::string &piece, float score)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/generate_model.cc:57,1
    - Dst: ModelProto*::add_pieces
      Src: /src/generate_model.cc:58,1
    - Dst: auto*::set_piece
      Src: /src/generate_model.cc:59,1
    - Dst: auto*::set_type
      Src: /src/generate_model.cc:60,1
    - Dst: auto*::set_score
      Src: /src/generate_model.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - model
    - byte
    argTypes:
    - ModelProto*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: AddBytePiece
    functionSourceFile: /src/generate_model.cc
    functionUses: 0
    functionsReached:
    - snprintf
    - auto*::set_type
    - auto*::set_piece
    - ModelProto*::add_pieces
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void AddBytePiece(ModelProto *model, unsigned char byte)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: AddSpecialPieces
      Src: /src/generate_model.cc:73,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/generate_model.cc:88,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/generate_model.cc:89,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/generate_model.cc:90,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:93,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:94,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:95,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:96,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:97,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:98,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:99,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:100,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:101,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:102,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:103,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:104,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:105,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:106,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:107,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:108,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:109,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:110,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:111,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:112,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:113,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:116,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:117,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:118,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:119,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:120,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:121,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:122,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:123,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:124,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:125,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:126,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:127,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:128,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:129,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:130,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:131,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:132,1
    - Dst: AddPiece
      Src: /src/generate_model.cc:133,1
    - Dst: AddBytePiece
      Src: /src/generate_model.cc:137,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/generate_model.cc:141,1
    - Dst: auto*::set_add_dummy_prefix
      Src: /src/generate_model.cc:142,1
    - Dst: auto*::set_remove_extra_whitespaces
      Src: /src/generate_model.cc:143,1
    - Dst: auto*::set_escape_whitespaces
      Src: /src/generate_model.cc:144,1
    - Dst: ModelProto::SerializeToString
      Src: /src/generate_model.cc:148,1
    - Dst: std::ofstream::write
      Src: /src/generate_model.cc:155,1
    - Dst: std::string::data
      Src: /src/generate_model.cc:155,1
    - Dst: std::string::size
      Src: /src/generate_model.cc:155,1
    - Dst: std::ofstream::close
      Src: /src/generate_model.cc:156,1
    - Dst: ModelProto::pieces_size
      Src: /src/generate_model.cc:159,1
    - Dst: std::string::size
      Src: /src/generate_model.cc:159,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 74
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 162
    functionName: main
    functionSourceFile: /src/generate_model.cc
    functionUses: 0
    functionsReached:
    - auto*::set_add_dummy_prefix
    - std::string::data
    - AddBytePiece
    - std::ofstream::close
    - std::ofstream::write
    - ModelProto::pieces_size
    - AddSpecialPieces
    - ModelProto::SerializeToString
    - std::string::size
    - auto*::set_remove_extra_whitespaces
    - ModelProto::mutable_normalizer_spec
    - AddPiece
    - auto*::set_escape_whitespaces
    - ModelProto::mutable_trainer_spec
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeRandomLengthString
      Src: /src/model_load_fuzzer.cc:34,1
    - Dst: FuzzedDataProvider::ConsumeRemainingBytesAsString
      Src: /src/model_load_fuzzer.cc:35,1
    - Dst: sentencepiece::SentencePieceProcessor::SentencePieceProcessor
      Src: /src/model_load_fuzzer.cc:37,1
    - Dst: sentencepiece::SentencePieceProcessor::LoadFromSerializedProto
      Src: /src/model_load_fuzzer.cc:40,1
    - Dst: auto::ok
      Src: /src/model_load_fuzzer.cc:41,1
    - Dst: sentencepiece::SentencePieceProcessor::Encode
      Src: /src/model_load_fuzzer.cc:48,1
    - Dst: sentencepiece::SentencePieceProcessor::Encode
      Src: /src/model_load_fuzzer.cc:52,1
    - Dst: std::vector::empty
      Src: /src/model_load_fuzzer.cc:55,1
    - Dst: sentencepiece::SentencePieceProcessor::Decode
      Src: /src/model_load_fuzzer.cc:57,1
    - Dst: std::vector::empty
      Src: /src/model_load_fuzzer.cc:61,1
    - Dst: sentencepiece::SentencePieceProcessor::Decode
      Src: /src/model_load_fuzzer.cc:63,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/model_load_fuzzer.cc:68,1
    - Dst: sentencepiece::SentencePieceProcessor::GetPieceSize
      Src: /src/model_load_fuzzer.cc:71,1
    - Dst: sentencepiece::SentencePieceProcessor::IdToPiece
      Src: /src/model_load_fuzzer.cc:75,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/model_load_fuzzer.cc:76,1
    - Dst: sentencepiece::SentencePieceProcessor::GetScore
      Src: /src/model_load_fuzzer.cc:77,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/model_load_fuzzer.cc:78,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/model_load_fuzzer.cc:79,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnused
      Src: /src/model_load_fuzzer.cc:80,1
    - Dst: sentencepiece::SentencePieceProcessor::IsByte
      Src: /src/model_load_fuzzer.cc:81,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/model_load_fuzzer.cc:85,1
    - Dst: sentencepiece::SentencePieceProcessor::unk_id
      Src: /src/model_load_fuzzer.cc:89,1
    - Dst: sentencepiece::SentencePieceProcessor::bos_id
      Src: /src/model_load_fuzzer.cc:90,1
    - Dst: sentencepiece::SentencePieceProcessor::eos_id
      Src: /src/model_load_fuzzer.cc:91,1
    - Dst: sentencepiece::SentencePieceProcessor::pad_id
      Src: /src/model_load_fuzzer.cc:92,1
    - Dst: sentencepiece::SentencePieceProcessor::NBestEncode
      Src: /src/model_load_fuzzer.cc:96,1
    - Dst: sentencepiece::SentencePieceProcessor::SampleEncode
      Src: /src/model_load_fuzzer.cc:100,1
    - Dst: sentencepiece::SentencePieceProcessor::EncodeAsSerializedProto
      Src: /src/model_load_fuzzer.cc:103,1
    - Dst: sentencepiece::SentencePieceProcessor::SampleEncodeAsSerializedProto
      Src: /src/model_load_fuzzer.cc:104,1
    - Dst: sentencepiece::SentencePieceProcessor::serialized_model_proto
      Src: /src/model_load_fuzzer.cc:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 110
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/model_load_fuzzer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::NBestEncode
    - sentencepiece::SentencePieceProcessor::SampleEncode
    - sentencepiece::SentencePieceProcessor::EncodeAsSerializedProto
    - sentencepiece::SentencePieceProcessor::LoadFromSerializedProto
    - auto::ok
    - sentencepiece::SentencePieceProcessor::IsUnused
    - sentencepiece::SentencePieceProcessor::pad_id
    - sentencepiece::SentencePieceProcessor::SampleEncodeAsSerializedProto
    - sentencepiece::SentencePieceProcessor::bos_id
    - std::vector::empty
    - sentencepiece::SentencePieceProcessor::eos_id
    - sentencepiece::SentencePieceProcessor::PieceToId
    - sentencepiece::SentencePieceProcessor::GetPieceSize
    - sentencepiece::SentencePieceProcessor::Decode
    - sentencepiece::SentencePieceProcessor::serialized_model_proto
    - FuzzedDataProvider::ConsumeRandomLengthString
    - sentencepiece::SentencePieceProcessor::unk_id
    - sentencepiece::SentencePieceProcessor::IsByte
    - sentencepiece::SentencePieceProcessor::SentencePieceProcessor
    - FuzzedDataProvider::ConsumeRemainingBytesAsString
    - sentencepiece::SentencePieceProcessor::Normalize
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - sentencepiece::SentencePieceProcessor::Encode
    - sentencepiece::SentencePieceProcessor::IdToPiece
    - sentencepiece::SentencePieceProcessor::IsControl
    - sentencepiece::SentencePieceProcessor::GetScore
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<sentencepiece::SentencePieceProcessor>
      Src: /src/processor_text_fuzzer.cc:35,1
    - Dst: LoadFromSerializedProto
      Src: /src/processor_text_fuzzer.cc:41,1
    - Dst: auto::ok
      Src: /src/processor_text_fuzzer.cc:42,1
    - Dst: fprintf
      Src: /src/processor_text_fuzzer.cc:43,1
    - Dst: auto::ToString
      Src: /src/processor_text_fuzzer.cc:44,1
    - Dst: abort
      Src: /src/processor_text_fuzzer.cc:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 49
    functionName: LLVMFuzzerInitialize
    functionSourceFile: /src/processor_text_fuzzer.cc
    functionUses: 0
    functionsReached:
    - auto::ToString
    - fprintf
    - auto::ok
    - LoadFromSerializedProto
    - std::make_unique<sentencepiece::SentencePieceProcessor>
    - abort
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerInitialize(int *argc, char ***argv)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeIntegral
      Src: /src/processor_text_fuzzer.cc:56,1
    - Dst: FuzzedDataProvider::ConsumeRemainingBytesAsString
      Src: /src/processor_text_fuzzer.cc:57,1
    - Dst: Encode
      Src: /src/processor_text_fuzzer.cc:63,1
    - Dst: std::vector::empty
      Src: /src/processor_text_fuzzer.cc:66,1
    - Dst: Decode
      Src: /src/processor_text_fuzzer.cc:68,1
    - Dst: Encode
      Src: /src/processor_text_fuzzer.cc:75,1
    - Dst: std::vector::empty
      Src: /src/processor_text_fuzzer.cc:78,1
    - Dst: Decode
      Src: /src/processor_text_fuzzer.cc:80,1
    - Dst: NBestEncode
      Src: /src/processor_text_fuzzer.cc:88,1
    - Dst: NBestEncode
      Src: /src/processor_text_fuzzer.cc:92,1
    - Dst: SampleEncode
      Src: /src/processor_text_fuzzer.cc:98,1
    - Dst: SampleEncode
      Src: /src/processor_text_fuzzer.cc:101,1
    - Dst: EncodeAsSerializedProto
      Src: /src/processor_text_fuzzer.cc:106,1
    - Dst: NBestEncodeAsSerializedProto
      Src: /src/processor_text_fuzzer.cc:109,1
    - Dst: SampleEncodeAsSerializedProto
      Src: /src/processor_text_fuzzer.cc:112,1
    - Dst: Normalize
      Src: /src/processor_text_fuzzer.cc:119,1
    - Dst: Normalize
      Src: /src/processor_text_fuzzer.cc:124,1
    - Dst: PieceToId
      Src: /src/processor_text_fuzzer.cc:130,1
    - Dst: std::string::size
      Src: /src/processor_text_fuzzer.cc:133,1
    - Dst: std::string::size
      Src: /src/processor_text_fuzzer.cc:134,1
    - Dst: std::string::substr
      Src: /src/processor_text_fuzzer.cc:135,1
    - Dst: PieceToId
      Src: /src/processor_text_fuzzer.cc:136,1
    - Dst: GetPieceSize
      Src: /src/processor_text_fuzzer.cc:137,1
    - Dst: IdToPiece
      Src: /src/processor_text_fuzzer.cc:138,1
    - Dst: GetScore
      Src: /src/processor_text_fuzzer.cc:139,1
    - Dst: IsUnknown
      Src: /src/processor_text_fuzzer.cc:140,1
    - Dst: IsControl
      Src: /src/processor_text_fuzzer.cc:141,1
    - Dst: IsUnused
      Src: /src/processor_text_fuzzer.cc:142,1
    - Dst: IsByte
      Src: /src/processor_text_fuzzer.cc:143,1
    - Dst: std::string::size
      Src: /src/processor_text_fuzzer.cc:151,1
    - Dst: std::string::size
      Src: /src/processor_text_fuzzer.cc:151,1
    - Dst: CalculateEntropy
      Src: /src/processor_text_fuzzer.cc:152,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 53
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 158
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/processor_text_fuzzer.cc
    functionUses: 0
    functionsReached:
    - std::string::substr
    - IsByte
    - CalculateEntropy
    - IsControl
    - FuzzedDataProvider::ConsumeIntegral
    - std::string::size
    - Normalize
    - PieceToId
    - IdToPiece
    - IsUnused
    - NBestEncodeAsSerializedProto
    - EncodeAsSerializedProto
    - std::vector::empty
    - SampleEncodeAsSerializedProto
    - SampleEncode
    - NBestEncode
    - GetScore
    - GetPieceSize
    - Encode
    - Decode
    - FuzzedDataProvider::ConsumeRemainingBytesAsString
    - IsUnknown
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/trainer_fuzzer.cc:29,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/trainer_fuzzer.cc:31,1
    - Dst: std::to_string
      Src: /src/trainer_fuzzer.cc:40,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/trainer_fuzzer.cc:44,1
    - Dst: std::to_string
      Src: /src/trainer_fuzzer.cc:45,1
    - Dst: FuzzedDataProvider::ConsumeFloatingPointInRange
      Src: /src/trainer_fuzzer.cc:45,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/trainer_fuzzer.cc:47,1
    - Dst: std::to_string
      Src: /src/trainer_fuzzer.cc:48,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/trainer_fuzzer.cc:48,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/trainer_fuzzer.cc:50,1
    - Dst: std::string
      Src: /src/trainer_fuzzer.cc:51,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/trainer_fuzzer.cc:51,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/trainer_fuzzer.cc:53,1
    - Dst: std::string
      Src: /src/trainer_fuzzer.cc:54,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/trainer_fuzzer.cc:54,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/trainer_fuzzer.cc:56,1
    - Dst: std::string
      Src: /src/trainer_fuzzer.cc:57,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/trainer_fuzzer.cc:57,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/trainer_fuzzer.cc:59,1
    - Dst: std::string
      Src: /src/trainer_fuzzer.cc:60,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/trainer_fuzzer.cc:60,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/trainer_fuzzer.cc:62,1
    - Dst: std::string
      Src: /src/trainer_fuzzer.cc:63,1
    - Dst: FuzzedDataProvider::ConsumeBool
      Src: /src/trainer_fuzzer.cc:63,1
    - Dst: FuzzedDataProvider::ConsumeIntegralInRange
      Src: /src/trainer_fuzzer.cc:70,1
    - Dst: FuzzedDataProvider::ConsumeRandomLengthString
      Src: /src/trainer_fuzzer.cc:74,1
    - Dst: std::string::empty
      Src: /src/trainer_fuzzer.cc:75,1
    - Dst: std::vector::push_back
      Src: /src/trainer_fuzzer.cc:76,1
    - Dst: std::vector::empty
      Src: /src/trainer_fuzzer.cc:82,1
    - Dst: std::vector::push_back
      Src: /src/trainer_fuzzer.cc:83,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/trainer_fuzzer.cc:89,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 92
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/trainer_fuzzer.cc
    functionUses: 0
    functionsReached:
    - FuzzedDataProvider::ConsumeFloatingPointInRange
    - FuzzedDataProvider::ConsumeIntegralInRange
    - sentencepiece::SentencePieceTrainer::Train
    - FuzzedDataProvider::ConsumeBool
    - std::vector::push_back
    - std::string::empty
    - std::vector::empty
    - FuzzedDataProvider::ConsumeRandomLengthString
    - std::to_string
    - std::string
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:37,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/invalid_model_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: sentencepiece::GetTestDataPath
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ::testing::SrcDir
    linkageType: ''
    returnType: std::string
    signature: std::string GetTestDataPath(absl::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:43,1
    - Dst: auto*::set_precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:44,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' base_model'
    - ' new_charsmap'
    argTypes:
    - ModelProto
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: sentencepiece::LoadModelWithModifiedCharsmap
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::Load
    - auto*::set_precompiled_charsmap
    - ModelProto::mutable_normalizer_spec
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status LoadModelWithModifiedCharsmap(const ModelProto& base_model,\n
      \                                          const std::string& new_charsmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetTestDataPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:52,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:55,1
    - Dst: ModelProto::ParseFromIstream
      Src: /src/sentencepiece/src/invalid_model_test.cc:55,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:58,1
    - Dst: auto*::precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:59,1
    - Dst: ASSERT_GE
      Src: /src/sentencepiece/src/invalid_model_test.cc:60,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/invalid_model_test.cc:60,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:66,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:66,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:66,1
    - Dst: auto*::set_precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:67,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:72,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:73,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:74,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:75,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 76
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - auto*::set_precompiled_charsmap
    - sentencepiece::GetTestDataPath
    - std::string::data
    - ASSERT_GE
    - ASSERT_TRUE
    - absl::Status::ok
    - std::string::size
    - absl::Status::message
    - absl::little_endian::Store32
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - SentencePieceProcessor::Load
    - ModelProto::ParseFromIstream
    - auto*::precompiled_charsmap
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, RejectCorruptedModel1269)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/invalid_model_test.cc:82,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/invalid_model_test.cc:83,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/invalid_model_test.cc:84,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:85,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/invalid_model_test.cc:87,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/invalid_model_test.cc:88,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/invalid_model_test.cc:89,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:90,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/invalid_model_test.cc:94,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/invalid_model_test.cc:95,1
    - Dst: std::string
      Src: /src/sentencepiece/src/invalid_model_test.cc:95,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/invalid_model_test.cc:96,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:97,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:100,1
    - Dst: auto*::set_model_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:101,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:104,1
    - Dst: auto*::set_name
      Src: /src/sentencepiece/src/invalid_model_test.cc:105,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:109,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:110,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:111,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:112,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 113
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - auto*::set_type
    - auto*::set_piece
    - absl::Status::ok
    - auto*::set_name
    - absl::Status::message
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - ModelProto::add_pieces
    - SentencePieceProcessor::Load
    - std::string
    - auto*::set_model_type
    - ModelProto::mutable_trainer_spec
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, ReproduceIssue1263)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetTestDataPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:120,1
    - Dst: ModelProto::ParseFromIstream
      Src: /src/sentencepiece/src/invalid_model_test.cc:120,1
    - Dst: ModelProto::normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:123,1
    - Dst: ASSERT_GE
      Src: /src/sentencepiece/src/invalid_model_test.cc:124,1
    - Dst: size
      Src: /src/sentencepiece/src/invalid_model_test.cc:124,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:128,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:129,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:130,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:131,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:131,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:139,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:139,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:139,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:140,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:141,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:142,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:143,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:143,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:150,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:150,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:150,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:151,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:152,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:153,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:154,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:154,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:161,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:161,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:161,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:162,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:163,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:164,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:165,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:165,1
    - Dst: std::string::back
      Src: /src/sentencepiece/src/invalid_model_test.cc:172,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:173,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:174,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:175,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:175,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:176,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 178
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - sentencepiece::GetTestDataPath
    - std::string::data
    - size
    - ASSERT_GE
    - ASSERT_TRUE
    - sentencepiece::LoadModelWithModifiedCharsmap
    - absl::Status::ok
    - ModelProto::normalizer_spec
    - absl::Status::message
    - absl::little_endian::Store32
    - EXPECT_EQ
    - std::string::back
    - EXPECT_FALSE
    - ModelProto::ParseFromIstream
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, CharsmapValidationTests)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetTestDataPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:181,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:184,1
    - Dst: ModelProto::ParseFromIstream
      Src: /src/sentencepiece/src/invalid_model_test.cc:184,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:186,1
    - Dst: auto*::precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:187,1
    - Dst: ASSERT_GE
      Src: /src/sentencepiece/src/invalid_model_test.cc:188,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/invalid_model_test.cc:188,1
    - Dst: absl::little_endian::Load32
      Src: /src/sentencepiece/src/invalid_model_test.cc:190,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:190,1
    - Dst: absl::little_endian::Load32
      Src: /src/sentencepiece/src/invalid_model_test.cc:195,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:195,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:199,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:200,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:200,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:205,1
    - Dst: auto*::set_precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:206,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:209,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:210,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:211,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:212,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 213
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - auto*::set_precompiled_charsmap
    - sentencepiece::GetTestDataPath
    - std::string::data
    - ASSERT_GE
    - ASSERT_TRUE
    - absl::little_endian::Load32
    - absl::Status::ok
    - std::string::size
    - absl::Status::message
    - absl::little_endian::Store32
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - SentencePieceProcessor::Load
    - ModelProto::ParseFromIstream
    - auto*::precompiled_charsmap
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, RejectModelWithOOBCharsmapValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:37,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/invalid_model_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: sentencepiece::GetTestDataPath
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::util::JoinPath
    - ::testing::SrcDir
    linkageType: ''
    returnType: std::string
    signature: std::string GetTestDataPath(absl::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:43,1
    - Dst: auto*::set_precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:44,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' base_model'
    - ' new_charsmap'
    argTypes:
    - ModelProto
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: sentencepiece::LoadModelWithModifiedCharsmap
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 1
    functionsReached:
    - SentencePieceProcessor::Load
    - auto*::set_precompiled_charsmap
    - ModelProto::mutable_normalizer_spec
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status LoadModelWithModifiedCharsmap(const ModelProto& base_model,\n
      \                                          const std::string& new_charsmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetTestDataPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:52,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:55,1
    - Dst: ModelProto::ParseFromIstream
      Src: /src/sentencepiece/src/invalid_model_test.cc:55,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:58,1
    - Dst: auto*::precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:59,1
    - Dst: ASSERT_GE
      Src: /src/sentencepiece/src/invalid_model_test.cc:60,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/invalid_model_test.cc:60,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:66,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:66,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:66,1
    - Dst: auto*::set_precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:67,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:72,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:73,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:74,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:75,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 76
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - auto*::set_precompiled_charsmap
    - sentencepiece::GetTestDataPath
    - std::string::data
    - ASSERT_GE
    - ASSERT_TRUE
    - absl::Status::ok
    - std::string::size
    - absl::Status::message
    - absl::little_endian::Store32
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - SentencePieceProcessor::Load
    - ModelProto::ParseFromIstream
    - auto*::precompiled_charsmap
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, RejectCorruptedModel1269)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/invalid_model_test.cc:82,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/invalid_model_test.cc:83,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/invalid_model_test.cc:84,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:85,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/invalid_model_test.cc:87,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/invalid_model_test.cc:88,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/invalid_model_test.cc:89,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:90,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/invalid_model_test.cc:94,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/invalid_model_test.cc:95,1
    - Dst: std::string
      Src: /src/sentencepiece/src/invalid_model_test.cc:95,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/invalid_model_test.cc:96,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:97,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:100,1
    - Dst: auto*::set_model_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:101,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:104,1
    - Dst: auto*::set_name
      Src: /src/sentencepiece/src/invalid_model_test.cc:105,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:109,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:110,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:111,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:112,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 113
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - auto*::set_type
    - auto*::set_piece
    - absl::Status::ok
    - auto*::set_name
    - absl::Status::message
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - ModelProto::add_pieces
    - SentencePieceProcessor::Load
    - std::string
    - auto*::set_model_type
    - ModelProto::mutable_trainer_spec
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, ReproduceIssue1263)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetTestDataPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:120,1
    - Dst: ModelProto::ParseFromIstream
      Src: /src/sentencepiece/src/invalid_model_test.cc:120,1
    - Dst: ModelProto::normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:123,1
    - Dst: ASSERT_GE
      Src: /src/sentencepiece/src/invalid_model_test.cc:124,1
    - Dst: size
      Src: /src/sentencepiece/src/invalid_model_test.cc:124,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:128,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:129,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:130,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:131,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:131,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:139,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:139,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:139,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:140,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:141,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:142,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:143,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:143,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:150,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:150,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:150,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:151,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:152,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:153,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:154,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:154,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:161,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:161,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:161,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:162,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:163,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:164,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:165,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:165,1
    - Dst: std::string::back
      Src: /src/sentencepiece/src/invalid_model_test.cc:172,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:173,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:174,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:175,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:175,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:176,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 178
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - sentencepiece::GetTestDataPath
    - std::string::data
    - size
    - ASSERT_GE
    - ASSERT_TRUE
    - sentencepiece::LoadModelWithModifiedCharsmap
    - absl::Status::ok
    - ModelProto::normalizer_spec
    - absl::Status::message
    - absl::little_endian::Store32
    - EXPECT_EQ
    - std::string::back
    - EXPECT_FALSE
    - ModelProto::ParseFromIstream
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, CharsmapValidationTests)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetTestDataPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:181,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:184,1
    - Dst: ModelProto::ParseFromIstream
      Src: /src/sentencepiece/src/invalid_model_test.cc:184,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:186,1
    - Dst: auto*::precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:187,1
    - Dst: ASSERT_GE
      Src: /src/sentencepiece/src/invalid_model_test.cc:188,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/invalid_model_test.cc:188,1
    - Dst: absl::little_endian::Load32
      Src: /src/sentencepiece/src/invalid_model_test.cc:190,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:190,1
    - Dst: absl::little_endian::Load32
      Src: /src/sentencepiece/src/invalid_model_test.cc:195,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:195,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:199,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:200,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:200,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:205,1
    - Dst: auto*::set_precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:206,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:209,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:210,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:211,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:212,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 213
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - auto*::set_precompiled_charsmap
    - sentencepiece::GetTestDataPath
    - std::string::data
    - ASSERT_GE
    - ASSERT_TRUE
    - absl::little_endian::Load32
    - absl::Status::ok
    - std::string::size
    - absl::Status::message
    - absl::little_endian::Store32
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - SentencePieceProcessor::Load
    - ModelProto::ParseFromIstream
    - auto*::precompiled_charsmap
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, RejectModelWithOOBCharsmapValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:37,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/invalid_model_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: sentencepiece::GetTestDataPath
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 6
    functionsReached:
    - sentencepiece::util::JoinPath
    - ::testing::SrcDir
    linkageType: ''
    returnType: std::string
    signature: std::string GetTestDataPath(absl::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:43,1
    - Dst: auto*::set_precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:44,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' base_model'
    - ' new_charsmap'
    argTypes:
    - ModelProto
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: sentencepiece::LoadModelWithModifiedCharsmap
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 2
    functionsReached:
    - SentencePieceProcessor::Load
    - auto*::set_precompiled_charsmap
    - ModelProto::mutable_normalizer_spec
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status LoadModelWithModifiedCharsmap(const ModelProto& base_model,\n
      \                                          const std::string& new_charsmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetTestDataPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:52,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:55,1
    - Dst: ModelProto::ParseFromIstream
      Src: /src/sentencepiece/src/invalid_model_test.cc:55,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:58,1
    - Dst: auto*::precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:59,1
    - Dst: ASSERT_GE
      Src: /src/sentencepiece/src/invalid_model_test.cc:60,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/invalid_model_test.cc:60,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:66,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:66,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:66,1
    - Dst: auto*::set_precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:67,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:72,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:73,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:74,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:75,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 76
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - auto*::set_precompiled_charsmap
    - sentencepiece::GetTestDataPath
    - std::string::data
    - ASSERT_GE
    - ASSERT_TRUE
    - absl::Status::ok
    - std::string::size
    - absl::Status::message
    - absl::little_endian::Store32
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - SentencePieceProcessor::Load
    - ModelProto::ParseFromIstream
    - auto*::precompiled_charsmap
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, RejectCorruptedModel1269)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/invalid_model_test.cc:82,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/invalid_model_test.cc:83,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/invalid_model_test.cc:84,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:85,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/invalid_model_test.cc:87,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/invalid_model_test.cc:88,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/invalid_model_test.cc:89,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:90,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/invalid_model_test.cc:94,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/invalid_model_test.cc:95,1
    - Dst: std::string
      Src: /src/sentencepiece/src/invalid_model_test.cc:95,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/invalid_model_test.cc:96,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:97,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:100,1
    - Dst: auto*::set_model_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:101,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:104,1
    - Dst: auto*::set_name
      Src: /src/sentencepiece/src/invalid_model_test.cc:105,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:109,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:110,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:111,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:112,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 113
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - auto*::set_type
    - auto*::set_piece
    - absl::Status::ok
    - auto*::set_name
    - absl::Status::message
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - ModelProto::add_pieces
    - SentencePieceProcessor::Load
    - std::string
    - auto*::set_model_type
    - ModelProto::mutable_trainer_spec
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, ReproduceIssue1263)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetTestDataPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:120,1
    - Dst: ModelProto::ParseFromIstream
      Src: /src/sentencepiece/src/invalid_model_test.cc:120,1
    - Dst: ModelProto::normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:123,1
    - Dst: ASSERT_GE
      Src: /src/sentencepiece/src/invalid_model_test.cc:124,1
    - Dst: size
      Src: /src/sentencepiece/src/invalid_model_test.cc:124,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:128,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:129,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:130,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:131,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:131,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:139,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:139,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:139,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:140,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:141,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:142,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:143,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:143,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:150,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:150,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:150,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:151,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:152,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:153,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:154,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:154,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:161,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:161,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:161,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:162,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:163,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:164,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:165,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:165,1
    - Dst: std::string::back
      Src: /src/sentencepiece/src/invalid_model_test.cc:172,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:173,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:174,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:175,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:175,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:176,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 178
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - sentencepiece::GetTestDataPath
    - std::string::data
    - size
    - ASSERT_GE
    - ASSERT_TRUE
    - sentencepiece::LoadModelWithModifiedCharsmap
    - absl::Status::ok
    - ModelProto::normalizer_spec
    - absl::Status::message
    - absl::little_endian::Store32
    - EXPECT_EQ
    - std::string::back
    - EXPECT_FALSE
    - ModelProto::ParseFromIstream
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, CharsmapValidationTests)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetTestDataPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:181,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:184,1
    - Dst: ModelProto::ParseFromIstream
      Src: /src/sentencepiece/src/invalid_model_test.cc:184,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:186,1
    - Dst: auto*::precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:187,1
    - Dst: ASSERT_GE
      Src: /src/sentencepiece/src/invalid_model_test.cc:188,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/invalid_model_test.cc:188,1
    - Dst: absl::little_endian::Load32
      Src: /src/sentencepiece/src/invalid_model_test.cc:190,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:190,1
    - Dst: absl::little_endian::Load32
      Src: /src/sentencepiece/src/invalid_model_test.cc:195,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:195,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:199,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:200,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:200,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:205,1
    - Dst: auto*::set_precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:206,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:209,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:210,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:211,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:212,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 213
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - auto*::set_precompiled_charsmap
    - sentencepiece::GetTestDataPath
    - std::string::data
    - ASSERT_GE
    - ASSERT_TRUE
    - absl::little_endian::Load32
    - absl::Status::ok
    - std::string::size
    - absl::Status::message
    - absl::little_endian::Store32
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - SentencePieceProcessor::Load
    - ModelProto::ParseFromIstream
    - auto*::precompiled_charsmap
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, RejectModelWithOOBCharsmapValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:37,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/invalid_model_test.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: sentencepiece::GetTestDataPath
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 9
    functionsReached:
    - sentencepiece::util::JoinPath
    - ::testing::SrcDir
    linkageType: ''
    returnType: std::string
    signature: std::string GetTestDataPath(absl::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:43,1
    - Dst: auto*::set_precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:44,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' base_model'
    - ' new_charsmap'
    argTypes:
    - ModelProto
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 47
    functionName: sentencepiece::LoadModelWithModifiedCharsmap
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 3
    functionsReached:
    - SentencePieceProcessor::Load
    - auto*::set_precompiled_charsmap
    - ModelProto::mutable_normalizer_spec
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status LoadModelWithModifiedCharsmap(const ModelProto& base_model,\n
      \                                          const std::string& new_charsmap)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetTestDataPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:52,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:55,1
    - Dst: ModelProto::ParseFromIstream
      Src: /src/sentencepiece/src/invalid_model_test.cc:55,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:58,1
    - Dst: auto*::precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:59,1
    - Dst: ASSERT_GE
      Src: /src/sentencepiece/src/invalid_model_test.cc:60,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/invalid_model_test.cc:60,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:66,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:66,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:66,1
    - Dst: auto*::set_precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:67,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:72,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:73,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:74,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:75,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 76
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - auto*::set_precompiled_charsmap
    - sentencepiece::GetTestDataPath
    - std::string::data
    - ASSERT_GE
    - ASSERT_TRUE
    - absl::Status::ok
    - std::string::size
    - absl::Status::message
    - absl::little_endian::Store32
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - SentencePieceProcessor::Load
    - ModelProto::ParseFromIstream
    - auto*::precompiled_charsmap
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, RejectCorruptedModel1269)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/invalid_model_test.cc:82,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/invalid_model_test.cc:83,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/invalid_model_test.cc:84,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:85,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/invalid_model_test.cc:87,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/invalid_model_test.cc:88,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/invalid_model_test.cc:89,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:90,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/invalid_model_test.cc:94,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/invalid_model_test.cc:95,1
    - Dst: std::string
      Src: /src/sentencepiece/src/invalid_model_test.cc:95,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/invalid_model_test.cc:96,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:97,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:100,1
    - Dst: auto*::set_model_type
      Src: /src/sentencepiece/src/invalid_model_test.cc:101,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:104,1
    - Dst: auto*::set_name
      Src: /src/sentencepiece/src/invalid_model_test.cc:105,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:109,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:110,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:111,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:112,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 113
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - auto*::set_type
    - auto*::set_piece
    - absl::Status::ok
    - auto*::set_name
    - absl::Status::message
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - ModelProto::add_pieces
    - SentencePieceProcessor::Load
    - std::string
    - auto*::set_model_type
    - ModelProto::mutable_trainer_spec
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, ReproduceIssue1263)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetTestDataPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:120,1
    - Dst: ModelProto::ParseFromIstream
      Src: /src/sentencepiece/src/invalid_model_test.cc:120,1
    - Dst: ModelProto::normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:123,1
    - Dst: ASSERT_GE
      Src: /src/sentencepiece/src/invalid_model_test.cc:124,1
    - Dst: size
      Src: /src/sentencepiece/src/invalid_model_test.cc:124,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:128,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:129,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:130,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:131,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:131,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:139,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:139,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:139,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:140,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:141,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:142,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:143,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:143,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:150,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:150,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:150,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:151,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:152,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:153,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:153,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:154,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:154,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:161,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:161,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:161,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:162,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:163,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:163,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:164,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:165,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:165,1
    - Dst: std::string::back
      Src: /src/sentencepiece/src/invalid_model_test.cc:172,1
    - Dst: sentencepiece::LoadModelWithModifiedCharsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:173,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:174,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:175,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:175,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:176,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 115
    functionDepth: 2
    functionLinenumber: 115
    functionLinenumberEnd: 178
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - sentencepiece::GetTestDataPath
    - std::string::data
    - size
    - ASSERT_GE
    - ASSERT_TRUE
    - sentencepiece::LoadModelWithModifiedCharsmap
    - absl::Status::ok
    - ModelProto::normalizer_spec
    - absl::Status::message
    - absl::little_endian::Store32
    - EXPECT_EQ
    - std::string::back
    - EXPECT_FALSE
    - ModelProto::ParseFromIstream
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, CharsmapValidationTests)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetTestDataPath
      Src: /src/sentencepiece/src/invalid_model_test.cc:181,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:184,1
    - Dst: ModelProto::ParseFromIstream
      Src: /src/sentencepiece/src/invalid_model_test.cc:184,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/invalid_model_test.cc:186,1
    - Dst: auto*::precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:187,1
    - Dst: ASSERT_GE
      Src: /src/sentencepiece/src/invalid_model_test.cc:188,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/invalid_model_test.cc:188,1
    - Dst: absl::little_endian::Load32
      Src: /src/sentencepiece/src/invalid_model_test.cc:190,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:190,1
    - Dst: absl::little_endian::Load32
      Src: /src/sentencepiece/src/invalid_model_test.cc:195,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:195,1
    - Dst: absl::little_endian::Store32
      Src: /src/sentencepiece/src/invalid_model_test.cc:199,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/invalid_model_test.cc:200,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/invalid_model_test.cc:200,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/invalid_model_test.cc:205,1
    - Dst: auto*::set_precompiled_charsmap
      Src: /src/sentencepiece/src/invalid_model_test.cc:206,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/invalid_model_test.cc:209,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/invalid_model_test.cc:210,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/invalid_model_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:211,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/invalid_model_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/invalid_model_test.cc:212,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/invalid_model_test.cc:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 213
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/invalid_model_test.cc
    functionUses: 0
    functionsReached:
    - absl::Status::code
    - auto*::set_precompiled_charsmap
    - sentencepiece::GetTestDataPath
    - std::string::data
    - ASSERT_GE
    - ASSERT_TRUE
    - absl::little_endian::Load32
    - absl::Status::ok
    - std::string::size
    - absl::Status::message
    - absl::little_endian::Store32
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - SentencePieceProcessor::Load
    - ModelProto::ParseFromIstream
    - auto*::precompiled_charsmap
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, RejectModelWithOOBCharsmapValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: sentencepiece::word::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/word_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: sentencepiece::word::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/word_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: sentencepiece::word::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/word_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: sentencepiece::word::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/word_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:31,1
    - Dst: text
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:31,1
    - Dst: text
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:32,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:32,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:32,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:33,1
    - Dst: score
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:33,1
    - Dst: score
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:33,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:34,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:34,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:35,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:37,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:37,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:38,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:38,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:39,1
    - Dst: surface
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:39,1
    - Dst: surface
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:40,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:40,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:41,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:41,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' expected'
    - ' actual'
    argTypes:
    - SentencePieceText
    - SentencePieceText
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: sentencepiece::ExpectSptEqual
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - score
    - surface
    - end
    - piece
    - pieces_size
    - begin
    - EXPECT_EQ
    - id
    - pieces
    - EXPECT_NEAR
    - text
    linkageType: ''
    returnType: void
    signature: "void ExpectSptEqual(const SentencePieceText& expected,\n                    const
      SentencePieceText& actual)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_loops
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: sentencepiece::SentencePieceProcessorMaxLoops::SentencePieceProcessorMaxLoops
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SentencePieceProcessorMaxLoops(int max_loops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:53,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:54,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:54,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:55,1
    - Dst: CHECK_GT
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:56,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:59,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:60,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' filename'
    - num_lines
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: sentencepiece::LoadTestData
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - CHECK
    - ::testing::SrcDir
    - CHECK_GT
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - absl::StrAppend
    linkageType: ''
    returnType: std::string
    signature: std::string LoadTestData(const std::string& filename, int num_lines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:68,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:68,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:71,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:71,1
    - Dst: SentencePieceProcessor::EncodeAsIds
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:77,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:82,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:83,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 87
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::ParallelEncode
    - CHECK_OK
    - ::testing::SrcDir
    - SentencePieceProcessor::EncodeAsIds
    - EXPECT_EQ
    - std::vector::clear
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestEmptyString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:91,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:91,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:94,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:94,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:102,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:103,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:103,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:106,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:107,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::ParallelEncode
    - CHECK_OK
    - ::testing::SrcDir
    - EXPECT_EQ
    - std::vector::clear
    - SentencePieceProcessor::Load
    - sentencepiece::LoadTestData
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestEn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:116,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:116,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:119,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:119,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:123,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:128,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:128,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:131,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:132,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:134,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:134,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 137
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::ParallelEncode
    - CHECK_OK
    - ::testing::SrcDir
    - std::vector::size
    - EXPECT_EQ
    - std::vector::clear
    - SentencePieceProcessor::Load
    - sentencepiece::LoadTestData
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestJaWithUNK)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:141,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:142,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:145,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:145,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:149,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:154,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:154,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:157,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:158,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:160,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:160,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 163
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::ParallelEncode
    - CHECK_OK
    - ::testing::SrcDir
    - std::vector::size
    - EXPECT_EQ
    - std::vector::clear
    - SentencePieceProcessor::Load
    - sentencepiece::LoadTestData
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestJaWithByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:167,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:168,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:171,1
    - Dst: SentencePieceProcessorMaxLoops::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:171,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:175,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:180,1
    - Dst: SentencePieceProcessorMaxLoops::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:180,1
    - Dst: SentencePieceText::Clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:183,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:184,1
    - Dst: SentencePieceProcessorMaxLoops::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:186,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:186,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:187,1
    - Dst: sentencepiece::ExpectSptEqual
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 190
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - CHECK_OK
    - SentencePieceProcessorMaxLoops::Encode
    - ::testing::SrcDir
    - SentencePieceProcessorMaxLoops::Load
    - SentencePieceProcessorMaxLoops::ParallelEncode
    - EXPECT_EQ
    - sentencepiece::ExpectSptEqual
    - SentencePieceText::pieces_size
    - sentencepiece::LoadTestData
    - SentencePieceText::Clear
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestJaWithByteIntoSPTZeroLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:194,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:195,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:198,1
    - Dst: SentencePieceProcessorMaxLoops::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:198,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:202,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:207,1
    - Dst: SentencePieceProcessorMaxLoops::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:207,1
    - Dst: SentencePieceText::Clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:210,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:211,1
    - Dst: SentencePieceProcessorMaxLoops::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:211,1
    - Dst: sentencepiece::ExpectSptEqual
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 215
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - CHECK_OK
    - SentencePieceProcessorMaxLoops::Encode
    - ::testing::SrcDir
    - SentencePieceProcessorMaxLoops::Load
    - SentencePieceProcessorMaxLoops::ParallelEncode
    - sentencepiece::ExpectSptEqual
    - sentencepiece::LoadTestData
    - SentencePieceText::Clear
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestJaWithByteIntoSPTOneLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:219,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:220,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:223,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:223,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:227,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:232,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:232,1
    - Dst: SentencePieceText::Clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:235,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:236,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:236,1
    - Dst: sentencepiece::ExpectSptEqual
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 240
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::ParallelEncode
    - CHECK_OK
    - ::testing::SrcDir
    - sentencepiece::ExpectSptEqual
    - SentencePieceProcessor::Load
    - sentencepiece::LoadTestData
    - SentencePieceText::Clear
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestJaWithByteIntoSPT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:244,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:244,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:246,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:246,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:250,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:253,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:253,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:258,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:258,1
    - Dst: sentencepiece::ExpectSptEqual
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 262
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::ParallelEncode
    - CHECK_OK
    - ::testing::SrcDir
    - sentencepiece::ExpectSptEqual
    - SentencePieceProcessor::Load
    - sentencepiece::LoadTestData
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestBotchan)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:31,1
    - Dst: text
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:31,1
    - Dst: text
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:32,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:32,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:32,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:33,1
    - Dst: score
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:33,1
    - Dst: score
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:33,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:34,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:34,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:35,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:37,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:37,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:38,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:38,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:39,1
    - Dst: surface
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:39,1
    - Dst: surface
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:40,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:40,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:41,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:41,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' expected'
    - ' actual'
    argTypes:
    - SentencePieceText
    - SentencePieceText
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: sentencepiece::ExpectSptEqual
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 4
    functionsReached:
    - score
    - surface
    - end
    - piece
    - pieces_size
    - begin
    - EXPECT_EQ
    - id
    - pieces
    - EXPECT_NEAR
    - text
    linkageType: ''
    returnType: void
    signature: "void ExpectSptEqual(const SentencePieceText& expected,\n                    const
      SentencePieceText& actual)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - max_loops
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: sentencepiece::SentencePieceProcessorMaxLoops::SentencePieceProcessorMaxLoops
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SentencePieceProcessorMaxLoops(int max_loops)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:53,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:54,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:54,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:55,1
    - Dst: CHECK_GT
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:56,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:59,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:60,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' filename'
    - num_lines
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: sentencepiece::LoadTestData
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 7
    functionsReached:
    - sentencepiece::util::JoinPath
    - CHECK
    - ::testing::SrcDir
    - CHECK_GT
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - absl::StrAppend
    linkageType: ''
    returnType: std::string
    signature: std::string LoadTestData(const std::string& filename, int num_lines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:68,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:68,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:71,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:71,1
    - Dst: SentencePieceProcessor::EncodeAsIds
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:77,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:82,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:83,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 87
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::ParallelEncode
    - CHECK_OK
    - ::testing::SrcDir
    - SentencePieceProcessor::EncodeAsIds
    - EXPECT_EQ
    - std::vector::clear
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestEmptyString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:91,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:91,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:94,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:94,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:102,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:103,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:103,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:106,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:107,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 111
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::ParallelEncode
    - CHECK_OK
    - ::testing::SrcDir
    - EXPECT_EQ
    - std::vector::clear
    - SentencePieceProcessor::Load
    - sentencepiece::LoadTestData
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestEn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:116,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:116,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:119,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:119,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:123,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:128,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:128,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:131,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:132,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:134,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:134,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 137
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::ParallelEncode
    - CHECK_OK
    - ::testing::SrcDir
    - std::vector::size
    - EXPECT_EQ
    - std::vector::clear
    - SentencePieceProcessor::Load
    - sentencepiece::LoadTestData
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestJaWithUNK)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:141,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:142,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:145,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:145,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:149,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:154,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:154,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:157,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:158,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:160,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:160,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 163
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::ParallelEncode
    - CHECK_OK
    - ::testing::SrcDir
    - std::vector::size
    - EXPECT_EQ
    - std::vector::clear
    - SentencePieceProcessor::Load
    - sentencepiece::LoadTestData
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestJaWithByte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:167,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:168,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:171,1
    - Dst: SentencePieceProcessorMaxLoops::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:171,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:175,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:180,1
    - Dst: SentencePieceProcessorMaxLoops::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:180,1
    - Dst: SentencePieceText::Clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:183,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:184,1
    - Dst: SentencePieceProcessorMaxLoops::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:186,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:186,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:187,1
    - Dst: sentencepiece::ExpectSptEqual
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 190
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - CHECK_OK
    - SentencePieceProcessorMaxLoops::Encode
    - ::testing::SrcDir
    - SentencePieceProcessorMaxLoops::Load
    - SentencePieceProcessorMaxLoops::ParallelEncode
    - EXPECT_EQ
    - sentencepiece::ExpectSptEqual
    - SentencePieceText::pieces_size
    - sentencepiece::LoadTestData
    - SentencePieceText::Clear
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestJaWithByteIntoSPTZeroLoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:194,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:195,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:198,1
    - Dst: SentencePieceProcessorMaxLoops::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:198,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:202,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:207,1
    - Dst: SentencePieceProcessorMaxLoops::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:207,1
    - Dst: SentencePieceText::Clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:210,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:211,1
    - Dst: SentencePieceProcessorMaxLoops::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:211,1
    - Dst: sentencepiece::ExpectSptEqual
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 192
    functionDepth: 2
    functionLinenumber: 192
    functionLinenumberEnd: 215
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - CHECK_OK
    - SentencePieceProcessorMaxLoops::Encode
    - ::testing::SrcDir
    - SentencePieceProcessorMaxLoops::Load
    - SentencePieceProcessorMaxLoops::ParallelEncode
    - sentencepiece::ExpectSptEqual
    - sentencepiece::LoadTestData
    - SentencePieceText::Clear
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestJaWithByteIntoSPTOneLoop)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:219,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:220,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:223,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:223,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:227,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:232,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:232,1
    - Dst: SentencePieceText::Clear
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:235,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:236,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:236,1
    - Dst: sentencepiece::ExpectSptEqual
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 240
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::ParallelEncode
    - CHECK_OK
    - ::testing::SrcDir
    - sentencepiece::ExpectSptEqual
    - SentencePieceProcessor::Load
    - sentencepiece::LoadTestData
    - SentencePieceText::Clear
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestJaWithByteIntoSPT)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:244,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:244,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:246,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:246,1
    - Dst: sentencepiece::LoadTestData
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:250,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:253,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:253,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:258,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:258,1
    - Dst: sentencepiece::ExpectSptEqual
      Src: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 262
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::ParallelEncode
    - CHECK_OK
    - ::testing::SrcDir
    - sentencepiece::ExpectSptEqual
    - SentencePieceProcessor::Load
    - sentencepiece::LoadTestData
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ParallelEncodeTestBotchan)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:24,1
    - Dst: FreeList::size
      Src: /src/sentencepiece/src/freelist_test.cc:24,1
    - Dst: FreeList::Allocate
      Src: /src/sentencepiece/src/freelist_test.cc:29,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:30,1
    - Dst: FreeList::swap
      Src: /src/sentencepiece/src/freelist_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:37,1
    - Dst: FreeList::size
      Src: /src/sentencepiece/src/freelist_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:39,1
    - Dst: FreeList::Free
      Src: /src/sentencepiece/src/freelist_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:43,1
    - Dst: FreeList::size
      Src: /src/sentencepiece/src/freelist_test.cc:43,1
    - Dst: FreeList::Allocate
      Src: /src/sentencepiece/src/freelist_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 50
    functionName: sentencepiece::model::TEST
    functionSourceFile: /src/sentencepiece/src/freelist_test.cc
    functionUses: 0
    functionsReached:
    - FreeList::Free
    - FreeList::Allocate
    - FreeList::swap
    - EXPECT_EQ
    - FreeList::size
    linkageType: ''
    returnType: void
    signature: void TEST(FreeListTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:24,1
    - Dst: FreeList::size
      Src: /src/sentencepiece/src/freelist_test.cc:24,1
    - Dst: FreeList::Allocate
      Src: /src/sentencepiece/src/freelist_test.cc:29,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:30,1
    - Dst: FreeList::swap
      Src: /src/sentencepiece/src/freelist_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:37,1
    - Dst: FreeList::size
      Src: /src/sentencepiece/src/freelist_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:39,1
    - Dst: FreeList::Free
      Src: /src/sentencepiece/src/freelist_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:43,1
    - Dst: FreeList::size
      Src: /src/sentencepiece/src/freelist_test.cc:43,1
    - Dst: FreeList::Allocate
      Src: /src/sentencepiece/src/freelist_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 50
    functionName: sentencepiece::model::TEST
    functionSourceFile: /src/sentencepiece/src/freelist_test.cc
    functionUses: 0
    functionsReached:
    - FreeList::Free
    - FreeList::Allocate
    - FreeList::swap
    - EXPECT_EQ
    - FreeList::size
    linkageType: ''
    returnType: void
    signature: void TEST(FreeListTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:24,1
    - Dst: FreeList::size
      Src: /src/sentencepiece/src/freelist_test.cc:24,1
    - Dst: FreeList::Allocate
      Src: /src/sentencepiece/src/freelist_test.cc:29,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:30,1
    - Dst: FreeList::swap
      Src: /src/sentencepiece/src/freelist_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:37,1
    - Dst: FreeList::size
      Src: /src/sentencepiece/src/freelist_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:39,1
    - Dst: FreeList::Free
      Src: /src/sentencepiece/src/freelist_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:43,1
    - Dst: FreeList::size
      Src: /src/sentencepiece/src/freelist_test.cc:43,1
    - Dst: FreeList::Allocate
      Src: /src/sentencepiece/src/freelist_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 50
    functionName: sentencepiece::model::TEST
    functionSourceFile: /src/sentencepiece/src/freelist_test.cc
    functionUses: 0
    functionsReached:
    - FreeList::Free
    - FreeList::Allocate
    - FreeList::swap
    - EXPECT_EQ
    - FreeList::size
    linkageType: ''
    returnType: void
    signature: void TEST(FreeListTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:24,1
    - Dst: FreeList::size
      Src: /src/sentencepiece/src/freelist_test.cc:24,1
    - Dst: FreeList::Allocate
      Src: /src/sentencepiece/src/freelist_test.cc:29,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:30,1
    - Dst: FreeList::swap
      Src: /src/sentencepiece/src/freelist_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:37,1
    - Dst: FreeList::size
      Src: /src/sentencepiece/src/freelist_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:39,1
    - Dst: FreeList::Free
      Src: /src/sentencepiece/src/freelist_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:43,1
    - Dst: FreeList::size
      Src: /src/sentencepiece/src/freelist_test.cc:43,1
    - Dst: FreeList::Allocate
      Src: /src/sentencepiece/src/freelist_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/freelist_test.cc:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 50
    functionName: sentencepiece::model::TEST
    functionSourceFile: /src/sentencepiece/src/freelist_test.cc
    functionUses: 0
    functionsReached:
    - FreeList::Free
    - FreeList::Allocate
    - FreeList::swap
    - EXPECT_EQ
    - FreeList::size
    linkageType: ''
    returnType: void
    signature: void TEST(FreeListTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/sentencepiece/src/util.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: sentencepiece::SetRandomGeneratorSeed
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - store
    linkageType: ''
    returnType: void
    signature: void SetRandomGeneratorSeed(uint32_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/sentencepiece/src/util.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: sentencepiece::GetRandomGeneratorSeed
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - load
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t GetRandomGeneratorSeed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<const std::string>
      Src: /src/sentencepiece/src/util.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: sentencepiece::GetSharedDataDir
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::make_shared<const std::string>
    linkageType: ''
    returnType: std::shared_ptr<const std::string>
    signature: std::shared_ptr<const std::string> * GetSharedDataDir()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<const std::string>
      Src: /src/sentencepiece/src/util.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: sentencepiece::GetSharedDataDir
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::make_shared<const std::string>
    linkageType: ''
    returnType: std::shared_ptr<const std::string>
    signature: std::shared_ptr<const std::string> * GetSharedDataDir()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_load
      Src: /src/sentencepiece/src/util.cc:47,1
    - Dst: sentencepiece::GetSharedDataDir
      Src: /src/sentencepiece/src/util.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: sentencepiece::GetDataDir
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::GetSharedDataDir
    - std::atomic_load
    linkageType: ''
    returnType: std::string
    signature: std::string GetDataDir()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<const std::string>
      Src: /src/sentencepiece/src/util.cc:53,1
    - Dst: std::string
      Src: /src/sentencepiece/src/util.cc:53,1
    - Dst: std::atomic_store
      Src: /src/sentencepiece/src/util.cc:54,1
    - Dst: sentencepiece::GetSharedDataDir
      Src: /src/sentencepiece/src/util.cc:54,1
    - Dst: std::move
      Src: /src/sentencepiece/src/util.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data_dir
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: sentencepiece::SetDataDir
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::make_shared<const std::string>
    - sentencepiece::GetSharedDataDir
    - std::move
    - std::atomic_store
    - std::string
    linkageType: ''
    returnType: void
    signature: void SetDataDir(absl::string_view data_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SetMinLogLevel
      Src: /src/sentencepiece/src/util.cc:58,1
    - Dst: static_cast<absl::LogSeverityAtLeast>
      Src: /src/sentencepiece/src/util.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: sentencepiece::SetMinLogLevel
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::SetMinLogLevel
    - static_cast<absl::LogSeverityAtLeast>
    linkageType: ''
    returnType: void
    signature: void SetMinLogLevel(int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/sentencepiece/src/util.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timeout_ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: sentencepiece::SetNBestTimeout
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - store
    linkageType: ''
    returnType: void
    signature: void SetNBestTimeout(int timeout_ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/sentencepiece/src/util.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: sentencepiece::GetNBestTimeout
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - load
    linkageType: ''
    returnType: int
    signature: int GetNBestTimeout()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/src/util.cc:71,1
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/src/util.cc:73,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:76,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:76,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:83,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:83,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:84,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:91,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:91,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:92,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:92,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 25
    argCount: 3
    argNames:
    - begin
    - end
    - mblen
    argTypes:
    - char*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 101
    functionName: sentencepiece::string_util::DecodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::IsTrailByte
    - static_cast<unsigned char>
    - sentencepiece::string_util::IsValidCodepoint
    linkageType: ''
    returnType: char32_t
    signature: char32_t DecodeUTF8(const char* begin, const char* end, size_t* mblen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:104,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:105,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:105,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.cc:108,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: sentencepiece::string_util::IsStructurallyValid
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - sentencepiece::string_util::DecodeUTF8
    - absl::string_view::size
    - sentencepiece::string_util::IsValidCodepoint
    linkageType: ''
    returnType: bool
    signature: bool IsStructurallyValid(absl::string_view str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/util.cc:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - c
    - output
    argTypes:
    - char32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 151
    functionName: sentencepiece::string_util::EncodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - static_cast<char>
    linkageType: ''
    returnType: size_t
    signature: size_t EncodeUTF8(char32_t c, char* output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/util.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: sentencepiece::string_util::UnicodeCharToUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeTextToUTF8
    linkageType: ''
    returnType: std::string
    signature: std::string UnicodeCharToUTF8(const char32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:159,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:160,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:160,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.cc:163,1
    - Dst: UnicodeText::push_back
      Src: /src/sentencepiece/src/util.cc:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - utf8
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: sentencepiece::string_util::UTF8ToUnicodeText
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - sentencepiece::string_util::DecodeUTF8
    - UnicodeText::push_back
    - absl::string_view::size
    linkageType: ''
    returnType: UnicodeText
    signature: UnicodeText UTF8ToUnicodeText(absl::string_view utf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::EncodeUTF8
      Src: /src/sentencepiece/src/util.cc:174,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/util.cc:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' utext'
    argTypes:
    - UnicodeText
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: sentencepiece::string_util::UnicodeTextToUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 1
    functionsReached:
    - std::string::append
    - sentencepiece::string_util::EncodeUTF8
    linkageType: ''
    returnType: std::string
    signature: std::string UnicodeTextToUTF8(const UnicodeText& utext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnicodeTextAndOffsets::unicode_text::reserve
      Src: /src/sentencepiece/src/util.cc:183,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:183,1
    - Dst: UnicodeTextAndOffsets::offsets::reserve
      Src: /src/sentencepiece/src/util.cc:184,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:184,1
    - Dst: UnicodeTextAndOffsets::offsets::push_back
      Src: /src/sentencepiece/src/util.cc:185,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:186,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:187,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:187,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.cc:190,1
    - Dst: UnicodeTextAndOffsets::unicode_text::push_back
      Src: /src/sentencepiece/src/util.cc:192,1
    - Dst: UnicodeTextAndOffsets::offsets::push_back
      Src: /src/sentencepiece/src/util.cc:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - utf8
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: sentencepiece::string_util::UTF8ToUnicodeTextAndOffsets
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - UnicodeTextAndOffsets::unicode_text::reserve
    - sentencepiece::string_util::DecodeUTF8
    - UnicodeTextAndOffsets::unicode_text::push_back
    - UnicodeTextAndOffsets::offsets::push_back
    - absl::string_view::size
    - absl::string_view::data
    - UnicodeTextAndOffsets::offsets::reserve
    linkageType: ''
    returnType: UnicodeTextAndOffsets
    signature: UnicodeTextAndOffsets UTF8ToUnicodeTextAndOffsets(absl::string_view
      utf8)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/src/util.cc:71,1
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/src/util.cc:73,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:76,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:76,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:83,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:83,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:84,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:91,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:91,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:92,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:92,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 25
    argCount: 3
    argNames:
    - begin
    - end
    - mblen
    argTypes:
    - char*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 101
    functionName: sentencepiece::string_util::DecodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::string_util::IsTrailByte
    - static_cast<unsigned char>
    - sentencepiece::string_util::IsValidCodepoint
    linkageType: ''
    returnType: char32_t
    signature: char32_t DecodeUTF8(const char* begin, const char* end, size_t* mblen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:104,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:105,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:105,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.cc:108,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: sentencepiece::string_util::IsStructurallyValid
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - sentencepiece::string_util::DecodeUTF8
    - absl::string_view::size
    - sentencepiece::string_util::IsValidCodepoint
    linkageType: ''
    returnType: bool
    signature: bool IsStructurallyValid(absl::string_view str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/util.cc:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - c
    - output
    argTypes:
    - char32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 151
    functionName: sentencepiece::string_util::EncodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 1
    functionsReached:
    - static_cast<char>
    linkageType: ''
    returnType: size_t
    signature: size_t EncodeUTF8(char32_t c, char* output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/util.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: sentencepiece::string_util::UnicodeCharToUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeTextToUTF8
    linkageType: ''
    returnType: std::string
    signature: std::string UnicodeCharToUTF8(const char32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:159,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:160,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:160,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.cc:163,1
    - Dst: UnicodeText::push_back
      Src: /src/sentencepiece/src/util.cc:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - utf8
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: sentencepiece::string_util::UTF8ToUnicodeText
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - sentencepiece::string_util::DecodeUTF8
    - UnicodeText::push_back
    - absl::string_view::size
    linkageType: ''
    returnType: UnicodeText
    signature: UnicodeText UTF8ToUnicodeText(absl::string_view utf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::EncodeUTF8
      Src: /src/sentencepiece/src/util.cc:174,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/util.cc:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' utext'
    argTypes:
    - UnicodeText
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: sentencepiece::string_util::UnicodeTextToUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 2
    functionsReached:
    - std::string::append
    - sentencepiece::string_util::EncodeUTF8
    linkageType: ''
    returnType: std::string
    signature: std::string UnicodeTextToUTF8(const UnicodeText& utext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnicodeTextAndOffsets::unicode_text::reserve
      Src: /src/sentencepiece/src/util.cc:183,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:183,1
    - Dst: UnicodeTextAndOffsets::offsets::reserve
      Src: /src/sentencepiece/src/util.cc:184,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:184,1
    - Dst: UnicodeTextAndOffsets::offsets::push_back
      Src: /src/sentencepiece/src/util.cc:185,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:186,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:187,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:187,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.cc:190,1
    - Dst: UnicodeTextAndOffsets::unicode_text::push_back
      Src: /src/sentencepiece/src/util.cc:192,1
    - Dst: UnicodeTextAndOffsets::offsets::push_back
      Src: /src/sentencepiece/src/util.cc:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - utf8
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: sentencepiece::string_util::UTF8ToUnicodeTextAndOffsets
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - UnicodeTextAndOffsets::unicode_text::reserve
    - sentencepiece::string_util::DecodeUTF8
    - UnicodeTextAndOffsets::unicode_text::push_back
    - UnicodeTextAndOffsets::offsets::push_back
    - absl::string_view::size
    - absl::string_view::data
    - UnicodeTextAndOffsets::offsets::reserve
    linkageType: ''
    returnType: UnicodeTextAndOffsets
    signature: UnicodeTextAndOffsets UTF8ToUnicodeTextAndOffsets(absl::string_view
      utf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetRandomGeneratorSeed
      Src: /src/sentencepiece/src/util.cc:206,1
    - Dst: std::make_unique<absl::BitGen>
      Src: /src/sentencepiece/src/util.cc:207,1
    - Dst: std::make_unique<absl::BitGen>
      Src: /src/sentencepiece/src/util.cc:208,1
    - Dst: GetRandomGeneratorSeed
      Src: /src/sentencepiece/src/util.cc:209,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/util.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: sentencepiece::random::GetRandomGenerator
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - GetRandomGeneratorSeed
    - std::make_unique<absl::BitGen>
    - auto::get
    linkageType: ''
    returnType: absl::BitGen
    signature: absl::BitGen * GetRandomGenerator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetRandomGeneratorSeed
      Src: /src/sentencepiece/src/util.cc:206,1
    - Dst: std::make_unique<absl::BitGen>
      Src: /src/sentencepiece/src/util.cc:207,1
    - Dst: std::make_unique<absl::BitGen>
      Src: /src/sentencepiece/src/util.cc:208,1
    - Dst: GetRandomGeneratorSeed
      Src: /src/sentencepiece/src/util.cc:209,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/util.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: sentencepiece::random::GetRandomGenerator
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - GetRandomGeneratorSeed
    - std::make_unique<absl::BitGen>
    - auto::get
    linkageType: ''
    returnType: absl::BitGen
    signature: absl::BitGen * GetRandomGenerator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strerror_r
      Src: /src/sentencepiece/src/util.cc:221,1
    - Dst: strerror_s
      Src: /src/sentencepiece/src/util.cc:223,1
    - Dst: strerror_r
      Src: /src/sentencepiece/src/util.cc:226,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.cc:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - errnum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: sentencepiece::util::StrError
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - strerror_r
    - absl::StrCat
    - strerror_s
    linkageType: ''
    returnType: std::string
    signature: std::string StrError(int errnum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/sentencepiece/src/util.cc:233,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/util.cc:234,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/util.cc:234,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:235,1
    - Dst: std::find
      Src: /src/sentencepiece/src/util.cc:251,1
    - Dst: std::find
      Src: /src/sentencepiece/src/util.cc:254,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/util.cc:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 262
    functionName: sentencepiece::util::StrSplitAsCSV
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::string::data
    - std::vector::push_back
    - std::find
    - absl::string_view::size
    - std::string
    - const_cast<char*>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> StrSplitAsCSV(absl::string_view text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::MultiByteToWideChar
      Src: /src/sentencepiece/src/util.cc:266,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:267,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/util.cc:267,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:267,1
    - Dst: ::MultiByteToWideChar
      Src: /src/sentencepiece/src/util.cc:272,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:272,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/util.cc:273,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:273,1
    - Dst: std::wstring::data
      Src: /src/sentencepiece/src/util.cc:274,1
    - Dst: std::wstring::size
      Src: /src/sentencepiece/src/util.cc:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 276
    functionName: sentencepiece::util::Utf8ToWide
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::wstring::size
    - absl::string_view::size
    - absl::string_view::data
    - ::MultiByteToWideChar
    - std::wstring::data
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring Utf8ToWide(absl::string_view input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strerror_r
      Src: /src/sentencepiece/src/util.cc:221,1
    - Dst: strerror_s
      Src: /src/sentencepiece/src/util.cc:223,1
    - Dst: strerror_r
      Src: /src/sentencepiece/src/util.cc:226,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.cc:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - errnum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: sentencepiece::util::StrError
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - strerror_r
    - absl::StrCat
    - strerror_s
    linkageType: ''
    returnType: std::string
    signature: std::string StrError(int errnum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/sentencepiece/src/util.cc:233,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/util.cc:234,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/util.cc:234,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:235,1
    - Dst: std::find
      Src: /src/sentencepiece/src/util.cc:251,1
    - Dst: std::find
      Src: /src/sentencepiece/src/util.cc:254,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/util.cc:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 262
    functionName: sentencepiece::util::StrSplitAsCSV
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::string::data
    - std::vector::push_back
    - std::find
    - absl::string_view::size
    - std::string
    - const_cast<char*>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> StrSplitAsCSV(absl::string_view text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::MultiByteToWideChar
      Src: /src/sentencepiece/src/util.cc:266,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:267,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/util.cc:267,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:267,1
    - Dst: ::MultiByteToWideChar
      Src: /src/sentencepiece/src/util.cc:272,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:272,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/util.cc:273,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:273,1
    - Dst: std::wstring::data
      Src: /src/sentencepiece/src/util.cc:274,1
    - Dst: std::wstring::size
      Src: /src/sentencepiece/src/util.cc:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 276
    functionName: sentencepiece::util::Utf8ToWide
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::wstring::size
    - absl::string_view::size
    - absl::string_view::data
    - ::MultiByteToWideChar
    - std::wstring::data
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring Utf8ToWide(absl::string_view input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/util.cc:283,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/util.cc:283,1
    - Dst: reserve
      Src: /src/sentencepiece/src/util.cc:284,1
    - Dst: push_back
      Src: /src/sentencepiece/src/util.cc:286,1
    - Dst: std::thread
      Src: /src/sentencepiece/src/util.cc:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - num_threads
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 288
    functionName: sentencepiece::ThreadPool::Impl::Impl
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::max<int>
    - push_back
    - std::thread
    - reserve
    - std::min<int>
    linkageType: ''
    returnType: void
    signature: void Impl(int num_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/util.cc:293,1
    - Dst: push
      Src: /src/sentencepiece/src/util.cc:294,1
    - Dst: join
      Src: /src/sentencepiece/src/util.cc:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 298
    functionName: ~Impl()
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - join
    - push
    - size
    linkageType: ''
    returnType: void
    signature: void ~Impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/sentencepiece/src/util.cc:302,1
    - Dst: std::move
      Src: /src/sentencepiece/src/util.cc:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - absl::AnyInvocable<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: sentencepiece::ThreadPool::Impl::Schedule
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - push
    - std::move
    linkageType: ''
    returnType: void
    signature: void Schedule(absl::AnyInvocable<void()> func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/util.cc:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 305
    functionName: sentencepiece::ThreadPool::Impl::num_threads
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t num_threads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/util.cc:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: sentencepiece::ThreadPool::Impl::ABSL_EXCLUSIVE_LOCKS_REQUIRED
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: void ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Await
      Src: /src/sentencepiece/src/util.cc:317,1
    - Dst: absl::Condition
      Src: /src/sentencepiece/src/util.cc:317,1
    - Dst: std::move
      Src: /src/sentencepiece/src/util.cc:318,1
    - Dst: front
      Src: /src/sentencepiece/src/util.cc:318,1
    - Dst: pop
      Src: /src/sentencepiece/src/util.cc:319,1
    - Dst: func
      Src: /src/sentencepiece/src/util.cc:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 326
    functionName: sentencepiece::ThreadPool::Impl::WorkLoop
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - func
    - pop
    - front
    - std::move
    - Await
    - absl::Condition
    linkageType: ''
    returnType: void
    signature: void WorkLoop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Impl>
      Src: /src/sentencepiece/src/util.cc:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - num_threads
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: sentencepiece::ThreadPool::ThreadPool
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Impl>
    linkageType: ''
    returnType: void
    signature: void ThreadPool::ThreadPool(size_t num_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    functionName: ThreadPool::~ThreadPool()
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ThreadPool::~ThreadPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ThreadPool::Schedule
      Src: /src/sentencepiece/src/util.cc:339,1
    - Dst: std::move
      Src: /src/sentencepiece/src/util.cc:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: sentencepiece::ThreadPool::Schedule
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::ThreadPool::Schedule
    - std::move
    linkageType: ''
    returnType: void
    signature: void ThreadPool::Schedule(std::function<void()> func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ThreadPool::num_threads
      Src: /src/sentencepiece/src/util.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: sentencepiece::ThreadPool::num_threads
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::ThreadPool::num_threads
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadPool::num_threads() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util.cc:347,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/util.cc:350,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/util.cc:350,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util.cc:357,1
    - Dst: Schedule
      Src: /src/sentencepiece/src/util.cc:360,1
    - Dst: std::atomic::load
      Src: /src/sentencepiece/src/util.cc:364,1
    - Dst: std::atomic::fetch_add
      Src: /src/sentencepiece/src/util.cc:365,1
    - Dst: task_func
      Src: /src/sentencepiece/src/util.cc:367,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/util.cc:369,1
    - Dst: std::atomic::store
      Src: /src/sentencepiece/src/util.cc:371,1
    - Dst: std::move
      Src: /src/sentencepiece/src/util.cc:375,1
    - Dst: absl::BlockingCounter::DecrementCount
      Src: /src/sentencepiece/src/util.cc:379,1
    - Dst: absl::BlockingCounter::Wait
      Src: /src/sentencepiece/src/util.cc:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - total_tasks
    - task_func
    - ' pool'
    argTypes:
    - size_t
    - std::function<absl::Status(size_t)>
    - ThreadPool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 387
    functionName: sentencepiece::RunBatch
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - Schedule
    - absl::Status::ok
    - task_func
    - std::atomic::load
    - std::move
    - std::atomic::store
    - std::min<size_t>
    - absl::BlockingCounter::DecrementCount
    - absl::BlockingCounter::Wait
    - std::atomic::fetch_add
    - num_threads
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status RunBatch(size_t total_tasks,\n                      std::function<absl::Status(size_t)>
      task_func,\n                      ThreadPool& pool)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/util.cc:391,1
    - Dst: std::numeric_limits<double>::max
      Src: /src/sentencepiece/src/util.cc:392,1
    - Dst: front
      Src: /src/sentencepiece/src/util.cc:394,1
    - Dst: std::swap
      Src: /src/sentencepiece/src/util.cc:398,1
    - Dst: std::log1p
      Src: /src/sentencepiece/src/util.cc:400,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/util.cc:400,1
    - Dst: size
      Src: /src/sentencepiece/src/util.cc:402,1
    - Dst: log_add
      Src: /src/sentencepiece/src/util.cc:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' xs'
    argTypes:
    - std::vector<double>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 406
    functionName: sentencepiece::log_domain::LogSum
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::numeric_limits<double>::max
    - size
    - std::swap
    - front
    - std::log1p
    - empty
    - std::exp
    - log_add
    linkageType: ''
    returnType: double
    signature: double LogSum(const std::vector<double>& xs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/util.cc:391,1
    - Dst: std::numeric_limits<double>::max
      Src: /src/sentencepiece/src/util.cc:392,1
    - Dst: front
      Src: /src/sentencepiece/src/util.cc:394,1
    - Dst: std::swap
      Src: /src/sentencepiece/src/util.cc:398,1
    - Dst: std::log1p
      Src: /src/sentencepiece/src/util.cc:400,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/util.cc:400,1
    - Dst: size
      Src: /src/sentencepiece/src/util.cc:402,1
    - Dst: log_add
      Src: /src/sentencepiece/src/util.cc:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' xs'
    argTypes:
    - std::vector<double>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 406
    functionName: sentencepiece::log_domain::LogSum
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::numeric_limits<double>::max
    - size
    - std::swap
    - front
    - std::log1p
    - empty
    - std::exp
    - log_add
    linkageType: ''
    returnType: double
    signature: double LogSum(const std::vector<double>& xs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/sentencepiece/src/util.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: sentencepiece::SetRandomGeneratorSeed
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - store
    linkageType: ''
    returnType: void
    signature: void SetRandomGeneratorSeed(uint32_t seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/sentencepiece/src/util.cc:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: sentencepiece::GetRandomGeneratorSeed
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - load
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t GetRandomGeneratorSeed()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<const std::string>
      Src: /src/sentencepiece/src/util.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: sentencepiece::GetSharedDataDir
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 2
    functionsReached:
    - std::make_shared<const std::string>
    linkageType: ''
    returnType: std::shared_ptr<const std::string>
    signature: std::shared_ptr<const std::string> * GetSharedDataDir()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<const std::string>
      Src: /src/sentencepiece/src/util.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: sentencepiece::GetSharedDataDir
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 2
    functionsReached:
    - std::make_shared<const std::string>
    linkageType: ''
    returnType: std::shared_ptr<const std::string>
    signature: std::shared_ptr<const std::string> * GetSharedDataDir()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_load
      Src: /src/sentencepiece/src/util.cc:47,1
    - Dst: sentencepiece::GetSharedDataDir
      Src: /src/sentencepiece/src/util.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: sentencepiece::GetDataDir
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::GetSharedDataDir
    - std::atomic_load
    linkageType: ''
    returnType: std::string
    signature: std::string GetDataDir()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<const std::string>
      Src: /src/sentencepiece/src/util.cc:53,1
    - Dst: std::string
      Src: /src/sentencepiece/src/util.cc:53,1
    - Dst: std::atomic_store
      Src: /src/sentencepiece/src/util.cc:54,1
    - Dst: sentencepiece::GetSharedDataDir
      Src: /src/sentencepiece/src/util.cc:54,1
    - Dst: std::move
      Src: /src/sentencepiece/src/util.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data_dir
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: sentencepiece::SetDataDir
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::make_shared<const std::string>
    - sentencepiece::GetSharedDataDir
    - std::move
    - std::atomic_store
    - std::string
    linkageType: ''
    returnType: void
    signature: void SetDataDir(absl::string_view data_dir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SetMinLogLevel
      Src: /src/sentencepiece/src/util.cc:58,1
    - Dst: static_cast<absl::LogSeverityAtLeast>
      Src: /src/sentencepiece/src/util.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: sentencepiece::SetMinLogLevel
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::SetMinLogLevel
    - static_cast<absl::LogSeverityAtLeast>
    linkageType: ''
    returnType: void
    signature: void SetMinLogLevel(int v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/sentencepiece/src/util.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - timeout_ms
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: sentencepiece::SetNBestTimeout
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - store
    linkageType: ''
    returnType: void
    signature: void SetNBestTimeout(int timeout_ms)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/sentencepiece/src/util.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: sentencepiece::GetNBestTimeout
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - load
    linkageType: ''
    returnType: int
    signature: int GetNBestTimeout()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/src/util.cc:71,1
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/src/util.cc:73,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:76,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:76,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:83,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:83,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:84,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:91,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:91,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:92,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:92,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 25
    argCount: 3
    argNames:
    - begin
    - end
    - mblen
    argTypes:
    - char*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 101
    functionName: sentencepiece::string_util::DecodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 6
    functionsReached:
    - sentencepiece::string_util::IsTrailByte
    - static_cast<unsigned char>
    - sentencepiece::string_util::IsValidCodepoint
    linkageType: ''
    returnType: char32_t
    signature: char32_t DecodeUTF8(const char* begin, const char* end, size_t* mblen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:104,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:105,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:105,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.cc:108,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: sentencepiece::string_util::IsStructurallyValid
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - sentencepiece::string_util::DecodeUTF8
    - absl::string_view::size
    - sentencepiece::string_util::IsValidCodepoint
    linkageType: ''
    returnType: bool
    signature: bool IsStructurallyValid(absl::string_view str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/util.cc:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - c
    - output
    argTypes:
    - char32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 151
    functionName: sentencepiece::string_util::EncodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 2
    functionsReached:
    - static_cast<char>
    linkageType: ''
    returnType: size_t
    signature: size_t EncodeUTF8(char32_t c, char* output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/util.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: sentencepiece::string_util::UnicodeCharToUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeTextToUTF8
    linkageType: ''
    returnType: std::string
    signature: std::string UnicodeCharToUTF8(const char32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:159,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:160,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:160,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.cc:163,1
    - Dst: UnicodeText::push_back
      Src: /src/sentencepiece/src/util.cc:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - utf8
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: sentencepiece::string_util::UTF8ToUnicodeText
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - sentencepiece::string_util::DecodeUTF8
    - UnicodeText::push_back
    - absl::string_view::size
    linkageType: ''
    returnType: UnicodeText
    signature: UnicodeText UTF8ToUnicodeText(absl::string_view utf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::EncodeUTF8
      Src: /src/sentencepiece/src/util.cc:174,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/util.cc:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' utext'
    argTypes:
    - UnicodeText
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: sentencepiece::string_util::UnicodeTextToUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 3
    functionsReached:
    - std::string::append
    - sentencepiece::string_util::EncodeUTF8
    linkageType: ''
    returnType: std::string
    signature: std::string UnicodeTextToUTF8(const UnicodeText& utext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnicodeTextAndOffsets::unicode_text::reserve
      Src: /src/sentencepiece/src/util.cc:183,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:183,1
    - Dst: UnicodeTextAndOffsets::offsets::reserve
      Src: /src/sentencepiece/src/util.cc:184,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:184,1
    - Dst: UnicodeTextAndOffsets::offsets::push_back
      Src: /src/sentencepiece/src/util.cc:185,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:186,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:187,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:187,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.cc:190,1
    - Dst: UnicodeTextAndOffsets::unicode_text::push_back
      Src: /src/sentencepiece/src/util.cc:192,1
    - Dst: UnicodeTextAndOffsets::offsets::push_back
      Src: /src/sentencepiece/src/util.cc:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - utf8
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: sentencepiece::string_util::UTF8ToUnicodeTextAndOffsets
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - UnicodeTextAndOffsets::unicode_text::reserve
    - sentencepiece::string_util::DecodeUTF8
    - UnicodeTextAndOffsets::unicode_text::push_back
    - UnicodeTextAndOffsets::offsets::push_back
    - absl::string_view::size
    - absl::string_view::data
    - UnicodeTextAndOffsets::offsets::reserve
    linkageType: ''
    returnType: UnicodeTextAndOffsets
    signature: UnicodeTextAndOffsets UTF8ToUnicodeTextAndOffsets(absl::string_view
      utf8)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/src/util.cc:71,1
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/src/util.cc:73,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:76,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:76,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:83,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:83,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:84,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:91,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:91,1
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.cc:92,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:92,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 25
    argCount: 3
    argNames:
    - begin
    - end
    - mblen
    argTypes:
    - char*
    - char*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 101
    functionName: sentencepiece::string_util::DecodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 9
    functionsReached:
    - sentencepiece::string_util::IsTrailByte
    - static_cast<unsigned char>
    - sentencepiece::string_util::IsValidCodepoint
    linkageType: ''
    returnType: char32_t
    signature: char32_t DecodeUTF8(const char* begin, const char* end, size_t* mblen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:104,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:105,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:105,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.cc:108,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util.cc:110,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: sentencepiece::string_util::IsStructurallyValid
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - sentencepiece::string_util::DecodeUTF8
    - absl::string_view::size
    - sentencepiece::string_util::IsValidCodepoint
    linkageType: ''
    returnType: bool
    signature: bool IsStructurallyValid(absl::string_view str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/util.cc:118,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 2
    argNames:
    - c
    - output
    argTypes:
    - char32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 151
    functionName: sentencepiece::string_util::EncodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 3
    functionsReached:
    - static_cast<char>
    linkageType: ''
    returnType: size_t
    signature: size_t EncodeUTF8(char32_t c, char* output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/util.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: sentencepiece::string_util::UnicodeCharToUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeTextToUTF8
    linkageType: ''
    returnType: std::string
    signature: std::string UnicodeCharToUTF8(const char32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:159,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:160,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:160,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.cc:163,1
    - Dst: UnicodeText::push_back
      Src: /src/sentencepiece/src/util.cc:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - utf8
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 168
    functionName: sentencepiece::string_util::UTF8ToUnicodeText
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - sentencepiece::string_util::DecodeUTF8
    - UnicodeText::push_back
    - absl::string_view::size
    linkageType: ''
    returnType: UnicodeText
    signature: UnicodeText UTF8ToUnicodeText(absl::string_view utf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::EncodeUTF8
      Src: /src/sentencepiece/src/util.cc:174,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/util.cc:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' utext'
    argTypes:
    - UnicodeText
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 178
    functionName: sentencepiece::string_util::UnicodeTextToUTF8
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 4
    functionsReached:
    - std::string::append
    - sentencepiece::string_util::EncodeUTF8
    linkageType: ''
    returnType: std::string
    signature: std::string UnicodeTextToUTF8(const UnicodeText& utext)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UnicodeTextAndOffsets::unicode_text::reserve
      Src: /src/sentencepiece/src/util.cc:183,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:183,1
    - Dst: UnicodeTextAndOffsets::offsets::reserve
      Src: /src/sentencepiece/src/util.cc:184,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:184,1
    - Dst: UnicodeTextAndOffsets::offsets::push_back
      Src: /src/sentencepiece/src/util.cc:185,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:186,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:187,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:187,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.cc:190,1
    - Dst: UnicodeTextAndOffsets::unicode_text::push_back
      Src: /src/sentencepiece/src/util.cc:192,1
    - Dst: UnicodeTextAndOffsets::offsets::push_back
      Src: /src/sentencepiece/src/util.cc:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - utf8
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 197
    functionName: sentencepiece::string_util::UTF8ToUnicodeTextAndOffsets
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - UnicodeTextAndOffsets::unicode_text::reserve
    - sentencepiece::string_util::DecodeUTF8
    - UnicodeTextAndOffsets::unicode_text::push_back
    - UnicodeTextAndOffsets::offsets::push_back
    - absl::string_view::size
    - absl::string_view::data
    - UnicodeTextAndOffsets::offsets::reserve
    linkageType: ''
    returnType: UnicodeTextAndOffsets
    signature: UnicodeTextAndOffsets UTF8ToUnicodeTextAndOffsets(absl::string_view
      utf8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetRandomGeneratorSeed
      Src: /src/sentencepiece/src/util.cc:206,1
    - Dst: std::make_unique<absl::BitGen>
      Src: /src/sentencepiece/src/util.cc:207,1
    - Dst: std::make_unique<absl::BitGen>
      Src: /src/sentencepiece/src/util.cc:208,1
    - Dst: GetRandomGeneratorSeed
      Src: /src/sentencepiece/src/util.cc:209,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/util.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: sentencepiece::random::GetRandomGenerator
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - GetRandomGeneratorSeed
    - std::make_unique<absl::BitGen>
    - auto::get
    linkageType: ''
    returnType: absl::BitGen
    signature: absl::BitGen * GetRandomGenerator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetRandomGeneratorSeed
      Src: /src/sentencepiece/src/util.cc:206,1
    - Dst: std::make_unique<absl::BitGen>
      Src: /src/sentencepiece/src/util.cc:207,1
    - Dst: std::make_unique<absl::BitGen>
      Src: /src/sentencepiece/src/util.cc:208,1
    - Dst: GetRandomGeneratorSeed
      Src: /src/sentencepiece/src/util.cc:209,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/util.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 211
    functionName: sentencepiece::random::GetRandomGenerator
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - GetRandomGeneratorSeed
    - std::make_unique<absl::BitGen>
    - auto::get
    linkageType: ''
    returnType: absl::BitGen
    signature: absl::BitGen * GetRandomGenerator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strerror_r
      Src: /src/sentencepiece/src/util.cc:221,1
    - Dst: strerror_s
      Src: /src/sentencepiece/src/util.cc:223,1
    - Dst: strerror_r
      Src: /src/sentencepiece/src/util.cc:226,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.cc:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - errnum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: sentencepiece::util::StrError
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - strerror_r
    - absl::StrCat
    - strerror_s
    linkageType: ''
    returnType: std::string
    signature: std::string StrError(int errnum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/sentencepiece/src/util.cc:233,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/util.cc:234,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/util.cc:234,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:235,1
    - Dst: std::find
      Src: /src/sentencepiece/src/util.cc:251,1
    - Dst: std::find
      Src: /src/sentencepiece/src/util.cc:254,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/util.cc:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 262
    functionName: sentencepiece::util::StrSplitAsCSV
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::string::data
    - std::vector::push_back
    - std::find
    - absl::string_view::size
    - std::string
    - const_cast<char*>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> StrSplitAsCSV(absl::string_view text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::MultiByteToWideChar
      Src: /src/sentencepiece/src/util.cc:266,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:267,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/util.cc:267,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:267,1
    - Dst: ::MultiByteToWideChar
      Src: /src/sentencepiece/src/util.cc:272,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:272,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/util.cc:273,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:273,1
    - Dst: std::wstring::data
      Src: /src/sentencepiece/src/util.cc:274,1
    - Dst: std::wstring::size
      Src: /src/sentencepiece/src/util.cc:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 276
    functionName: sentencepiece::util::Utf8ToWide
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::wstring::size
    - absl::string_view::size
    - absl::string_view::data
    - ::MultiByteToWideChar
    - std::wstring::data
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring Utf8ToWide(absl::string_view input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strerror_r
      Src: /src/sentencepiece/src/util.cc:221,1
    - Dst: strerror_s
      Src: /src/sentencepiece/src/util.cc:223,1
    - Dst: strerror_r
      Src: /src/sentencepiece/src/util.cc:226,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.cc:229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - errnum
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: sentencepiece::util::StrError
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - strerror_r
    - absl::StrCat
    - strerror_s
    linkageType: ''
    returnType: std::string
    signature: std::string StrError(int errnum)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string
      Src: /src/sentencepiece/src/util.cc:233,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/util.cc:234,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/util.cc:234,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:235,1
    - Dst: std::find
      Src: /src/sentencepiece/src/util.cc:251,1
    - Dst: std::find
      Src: /src/sentencepiece/src/util.cc:254,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/util.cc:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 262
    functionName: sentencepiece::util::StrSplitAsCSV
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::string::data
    - std::vector::push_back
    - std::find
    - absl::string_view::size
    - std::string
    - const_cast<char*>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> StrSplitAsCSV(absl::string_view text)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::MultiByteToWideChar
      Src: /src/sentencepiece/src/util.cc:266,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:267,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/util.cc:267,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:267,1
    - Dst: ::MultiByteToWideChar
      Src: /src/sentencepiece/src/util.cc:272,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.cc:272,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/util.cc:273,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.cc:273,1
    - Dst: std::wstring::data
      Src: /src/sentencepiece/src/util.cc:274,1
    - Dst: std::wstring::size
      Src: /src/sentencepiece/src/util.cc:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 276
    functionName: sentencepiece::util::Utf8ToWide
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::wstring::size
    - absl::string_view::size
    - absl::string_view::data
    - ::MultiByteToWideChar
    - std::wstring::data
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring Utf8ToWide(absl::string_view input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/util.cc:283,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/util.cc:283,1
    - Dst: reserve
      Src: /src/sentencepiece/src/util.cc:284,1
    - Dst: push_back
      Src: /src/sentencepiece/src/util.cc:286,1
    - Dst: std::thread
      Src: /src/sentencepiece/src/util.cc:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - num_threads
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 288
    functionName: sentencepiece::ThreadPool::Impl::Impl
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::max<int>
    - push_back
    - std::thread
    - reserve
    - std::min<int>
    linkageType: ''
    returnType: void
    signature: void Impl(int num_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/util.cc:293,1
    - Dst: push
      Src: /src/sentencepiece/src/util.cc:294,1
    - Dst: join
      Src: /src/sentencepiece/src/util.cc:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 298
    functionName: ~Impl()
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - join
    - push
    - size
    linkageType: ''
    returnType: void
    signature: void ~Impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/sentencepiece/src/util.cc:302,1
    - Dst: std::move
      Src: /src/sentencepiece/src/util.cc:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - absl::AnyInvocable<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    functionName: sentencepiece::ThreadPool::Impl::Schedule
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - push
    - std::move
    linkageType: ''
    returnType: void
    signature: void Schedule(absl::AnyInvocable<void()> func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/util.cc:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 305
    functionName: sentencepiece::ThreadPool::Impl::num_threads
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t num_threads() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/util.cc:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 310
    functionName: sentencepiece::ThreadPool::Impl::ABSL_EXCLUSIVE_LOCKS_REQUIRED
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: void
    signature: void ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Await
      Src: /src/sentencepiece/src/util.cc:317,1
    - Dst: absl::Condition
      Src: /src/sentencepiece/src/util.cc:317,1
    - Dst: std::move
      Src: /src/sentencepiece/src/util.cc:318,1
    - Dst: front
      Src: /src/sentencepiece/src/util.cc:318,1
    - Dst: pop
      Src: /src/sentencepiece/src/util.cc:319,1
    - Dst: func
      Src: /src/sentencepiece/src/util.cc:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 326
    functionName: sentencepiece::ThreadPool::Impl::WorkLoop
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - func
    - pop
    - front
    - std::move
    - Await
    - absl::Condition
    linkageType: ''
    returnType: void
    signature: void WorkLoop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Impl>
      Src: /src/sentencepiece/src/util.cc:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - num_threads
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 334
    functionName: sentencepiece::ThreadPool::ThreadPool
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Impl>
    linkageType: ''
    returnType: void
    signature: void ThreadPool::ThreadPool(size_t num_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    functionName: ThreadPool::~ThreadPool()
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ThreadPool::~ThreadPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ThreadPool::Schedule
      Src: /src/sentencepiece/src/util.cc:339,1
    - Dst: std::move
      Src: /src/sentencepiece/src/util.cc:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - func
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: sentencepiece::ThreadPool::Schedule
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::ThreadPool::Schedule
    - std::move
    linkageType: ''
    returnType: void
    signature: void ThreadPool::Schedule(std::function<void()> func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ThreadPool::num_threads
      Src: /src/sentencepiece/src/util.cc:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 342
    functionName: sentencepiece::ThreadPool::num_threads
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::ThreadPool::num_threads
    linkageType: ''
    returnType: size_t
    signature: size_t ThreadPool::num_threads() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util.cc:347,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/util.cc:350,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/util.cc:350,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util.cc:357,1
    - Dst: Schedule
      Src: /src/sentencepiece/src/util.cc:360,1
    - Dst: std::atomic::load
      Src: /src/sentencepiece/src/util.cc:364,1
    - Dst: std::atomic::fetch_add
      Src: /src/sentencepiece/src/util.cc:365,1
    - Dst: task_func
      Src: /src/sentencepiece/src/util.cc:367,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/util.cc:369,1
    - Dst: std::atomic::store
      Src: /src/sentencepiece/src/util.cc:371,1
    - Dst: std::move
      Src: /src/sentencepiece/src/util.cc:375,1
    - Dst: absl::BlockingCounter::DecrementCount
      Src: /src/sentencepiece/src/util.cc:379,1
    - Dst: absl::BlockingCounter::Wait
      Src: /src/sentencepiece/src/util.cc:384,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - total_tasks
    - task_func
    - ' pool'
    argTypes:
    - size_t
    - std::function<absl::Status(size_t)>
    - ThreadPool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 387
    functionName: sentencepiece::RunBatch
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - Schedule
    - absl::Status::ok
    - task_func
    - std::atomic::load
    - std::move
    - std::atomic::store
    - std::min<size_t>
    - absl::BlockingCounter::DecrementCount
    - absl::BlockingCounter::Wait
    - std::atomic::fetch_add
    - num_threads
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status RunBatch(size_t total_tasks,\n                      std::function<absl::Status(size_t)>
      task_func,\n                      ThreadPool& pool)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/util.cc:391,1
    - Dst: std::numeric_limits<double>::max
      Src: /src/sentencepiece/src/util.cc:392,1
    - Dst: front
      Src: /src/sentencepiece/src/util.cc:394,1
    - Dst: std::swap
      Src: /src/sentencepiece/src/util.cc:398,1
    - Dst: std::log1p
      Src: /src/sentencepiece/src/util.cc:400,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/util.cc:400,1
    - Dst: size
      Src: /src/sentencepiece/src/util.cc:402,1
    - Dst: log_add
      Src: /src/sentencepiece/src/util.cc:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' xs'
    argTypes:
    - std::vector<double>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 406
    functionName: sentencepiece::log_domain::LogSum
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::numeric_limits<double>::max
    - size
    - std::swap
    - front
    - std::log1p
    - empty
    - std::exp
    - log_add
    linkageType: ''
    returnType: double
    signature: double LogSum(const std::vector<double>& xs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/util.cc:391,1
    - Dst: std::numeric_limits<double>::max
      Src: /src/sentencepiece/src/util.cc:392,1
    - Dst: front
      Src: /src/sentencepiece/src/util.cc:394,1
    - Dst: std::swap
      Src: /src/sentencepiece/src/util.cc:398,1
    - Dst: std::log1p
      Src: /src/sentencepiece/src/util.cc:400,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/util.cc:400,1
    - Dst: size
      Src: /src/sentencepiece/src/util.cc:402,1
    - Dst: log_add
      Src: /src/sentencepiece/src/util.cc:403,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' xs'
    argTypes:
    - std::vector<double>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 406
    functionName: sentencepiece::log_domain::LogSum
    functionSourceFile: /src/sentencepiece/src/util.cc
    functionUses: 0
    functionsReached:
    - std::numeric_limits<double>::max
    - size
    - std::swap
    - front
    - std::log1p
    - empty
    - std::exp
    - log_add
    linkageType: ''
    returnType: double
    signature: double LogSum(const std::vector<double>& xs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::setf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:44,1
    - Dst: std::stringstream::setf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:45,1
    - Dst: std::stringstream::setf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:46,1
    - Dst: std::stringstream::fill
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:47,1
    - Dst: std::stringstream::unsetf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:48,1
    - Dst: second::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:52,1
    - Dst: second::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:53,1
    - Dst: second::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:53,1
    - Dst: std::vector<size_t>*::push_back
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:55,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:58,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:59,1
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:61,1
    - Dst: std::setw
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:64,1
    - Dst: std::stringstream::str
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ' data'
    - offset
    argTypes:
    - std::vector<std::pair<std::string, std::string>>
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: sentencepiece::ToHexUInt64Array
    functionSourceFile: /src/sentencepiece/src/compile_charsmap_main.cc
    functionUses: 0
    functionsReached:
    - second::size
    - reinterpret_cast<unsigned char*>
    - std::stringstream::str
    - std::stringstream::setf
    - std::vector<size_t>*::push_back
    - static_cast<unsigned char>
    - std::min<size_t>
    - second::data
    - std::setw
    - std::stringstream::fill
    - std::stringstream::unsetf
    linkageType: ''
    returnType: std::string
    signature: "std::string ToHexUInt64Array(\n    const std::vector<std::pair<std::string,
      std::string>>& data,\n    std::vector<size_t>* offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:75,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:76,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:76,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:84,1
    - Dst: std::stringstream::str
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 102
    functionName: sentencepiece::ToHexData
    functionSourceFile: /src/sentencepiece/src/compile_charsmap_main.cc
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - absl::string_view::data
    - absl::string_view::size
    - std::min<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string ToHexData(absl::string_view data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ToHexUInt64Array
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:135,1
    - Dst: QCHECK_EQ
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:136,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:136,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:136,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:139,1
    - Dst: second::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:140,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:147,1
    - Dst: second::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:148,1
    - Dst: sentencepiece::ToHexData
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:149,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:154,1
    - Dst: std::stringstream::str
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<std::pair<std::string, std::string>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 158
    functionName: sentencepiece::MakeHeader
    functionSourceFile: /src/sentencepiece/src/compile_charsmap_main.cc
    functionUses: 0
    functionsReached:
    - size
    - QCHECK_EQ
    - second::size
    - sentencepiece::ToHexUInt64Array
    - std::vector::size
    - std::stringstream::str
    - sentencepiece::ToHexData
    linkageType: ''
    returnType: std::string
    signature: "std::string MakeHeader(\n    const std::vector<std::pair<std::string,
      std::string>>& data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::setf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:44,1
    - Dst: std::stringstream::setf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:45,1
    - Dst: std::stringstream::setf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:46,1
    - Dst: std::stringstream::fill
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:47,1
    - Dst: std::stringstream::unsetf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:48,1
    - Dst: second::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:52,1
    - Dst: second::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:53,1
    - Dst: second::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:53,1
    - Dst: std::vector<size_t>*::push_back
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:55,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:58,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:59,1
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:61,1
    - Dst: std::setw
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:64,1
    - Dst: std::stringstream::str
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ' data'
    - offset
    argTypes:
    - std::vector<std::pair<std::string, std::string>>
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: sentencepiece::ToHexUInt64Array
    functionSourceFile: /src/sentencepiece/src/compile_charsmap_main.cc
    functionUses: 1
    functionsReached:
    - second::size
    - reinterpret_cast<unsigned char*>
    - std::stringstream::str
    - std::stringstream::setf
    - std::vector<size_t>*::push_back
    - static_cast<unsigned char>
    - std::min<size_t>
    - second::data
    - std::setw
    - std::stringstream::fill
    - std::stringstream::unsetf
    linkageType: ''
    returnType: std::string
    signature: "std::string ToHexUInt64Array(\n    const std::vector<std::pair<std::string,
      std::string>>& data,\n    std::vector<size_t>* offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:75,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:76,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:76,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:84,1
    - Dst: std::stringstream::str
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 102
    functionName: sentencepiece::ToHexData
    functionSourceFile: /src/sentencepiece/src/compile_charsmap_main.cc
    functionUses: 1
    functionsReached:
    - std::stringstream::str
    - absl::string_view::data
    - absl::string_view::size
    - std::min<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string ToHexData(absl::string_view data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ToHexUInt64Array
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:135,1
    - Dst: QCHECK_EQ
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:136,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:136,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:136,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:139,1
    - Dst: second::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:140,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:147,1
    - Dst: second::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:148,1
    - Dst: sentencepiece::ToHexData
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:149,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:154,1
    - Dst: std::stringstream::str
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<std::pair<std::string, std::string>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 158
    functionName: sentencepiece::MakeHeader
    functionSourceFile: /src/sentencepiece/src/compile_charsmap_main.cc
    functionUses: 0
    functionsReached:
    - size
    - QCHECK_EQ
    - second::size
    - sentencepiece::ToHexUInt64Array
    - std::vector::size
    - std::stringstream::str
    - sentencepiece::ToHexData
    linkageType: ''
    returnType: std::string
    signature: "std::string MakeHeader(\n    const std::vector<std::pair<std::string,
      std::string>>& data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::setf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:44,1
    - Dst: std::stringstream::setf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:45,1
    - Dst: std::stringstream::setf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:46,1
    - Dst: std::stringstream::fill
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:47,1
    - Dst: std::stringstream::unsetf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:48,1
    - Dst: second::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:52,1
    - Dst: second::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:53,1
    - Dst: second::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:53,1
    - Dst: std::vector<size_t>*::push_back
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:55,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:58,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:59,1
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:61,1
    - Dst: std::setw
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:64,1
    - Dst: std::stringstream::str
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ' data'
    - offset
    argTypes:
    - std::vector<std::pair<std::string, std::string>>
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: sentencepiece::ToHexUInt64Array
    functionSourceFile: /src/sentencepiece/src/compile_charsmap_main.cc
    functionUses: 2
    functionsReached:
    - second::size
    - reinterpret_cast<unsigned char*>
    - std::stringstream::str
    - std::stringstream::setf
    - std::vector<size_t>*::push_back
    - static_cast<unsigned char>
    - std::min<size_t>
    - second::data
    - std::setw
    - std::stringstream::fill
    - std::stringstream::unsetf
    linkageType: ''
    returnType: std::string
    signature: "std::string ToHexUInt64Array(\n    const std::vector<std::pair<std::string,
      std::string>>& data,\n    std::vector<size_t>* offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:75,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:76,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:76,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:84,1
    - Dst: std::stringstream::str
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 102
    functionName: sentencepiece::ToHexData
    functionSourceFile: /src/sentencepiece/src/compile_charsmap_main.cc
    functionUses: 2
    functionsReached:
    - std::stringstream::str
    - absl::string_view::data
    - absl::string_view::size
    - std::min<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string ToHexData(absl::string_view data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ToHexUInt64Array
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:135,1
    - Dst: QCHECK_EQ
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:136,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:136,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:136,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:139,1
    - Dst: second::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:140,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:147,1
    - Dst: second::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:148,1
    - Dst: sentencepiece::ToHexData
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:149,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:154,1
    - Dst: std::stringstream::str
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<std::pair<std::string, std::string>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 158
    functionName: sentencepiece::MakeHeader
    functionSourceFile: /src/sentencepiece/src/compile_charsmap_main.cc
    functionUses: 0
    functionsReached:
    - size
    - QCHECK_EQ
    - second::size
    - sentencepiece::ToHexUInt64Array
    - std::vector::size
    - std::stringstream::str
    - sentencepiece::ToHexData
    linkageType: ''
    returnType: std::string
    signature: "std::string MakeHeader(\n    const std::vector<std::pair<std::string,
      std::string>>& data)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stringstream::setf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:44,1
    - Dst: std::stringstream::setf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:45,1
    - Dst: std::stringstream::setf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:46,1
    - Dst: std::stringstream::fill
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:47,1
    - Dst: std::stringstream::unsetf
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:48,1
    - Dst: second::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:52,1
    - Dst: second::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:53,1
    - Dst: second::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:53,1
    - Dst: std::vector<size_t>*::push_back
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:55,1
    - Dst: reinterpret_cast<unsigned char*>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:58,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:59,1
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:61,1
    - Dst: std::setw
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:64,1
    - Dst: std::stringstream::str
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - ' data'
    - offset
    argTypes:
    - std::vector<std::pair<std::string, std::string>>
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 72
    functionName: sentencepiece::ToHexUInt64Array
    functionSourceFile: /src/sentencepiece/src/compile_charsmap_main.cc
    functionUses: 3
    functionsReached:
    - second::size
    - reinterpret_cast<unsigned char*>
    - std::stringstream::str
    - std::stringstream::setf
    - std::vector<size_t>*::push_back
    - static_cast<unsigned char>
    - std::min<size_t>
    - second::data
    - std::setw
    - std::stringstream::fill
    - std::stringstream::unsetf
    linkageType: ''
    returnType: std::string
    signature: "std::string ToHexUInt64Array(\n    const std::vector<std::pair<std::string,
      std::string>>& data,\n    std::vector<size_t>* offset)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:75,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:76,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:76,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:84,1
    - Dst: std::stringstream::str
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - data
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 102
    functionName: sentencepiece::ToHexData
    functionSourceFile: /src/sentencepiece/src/compile_charsmap_main.cc
    functionUses: 3
    functionsReached:
    - std::stringstream::str
    - absl::string_view::data
    - absl::string_view::size
    - std::min<size_t>
    linkageType: ''
    returnType: std::string
    signature: std::string ToHexData(absl::string_view data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ToHexUInt64Array
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:135,1
    - Dst: QCHECK_EQ
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:136,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:136,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:136,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:139,1
    - Dst: second::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:140,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:147,1
    - Dst: second::size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:148,1
    - Dst: sentencepiece::ToHexData
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:149,1
    - Dst: size
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:154,1
    - Dst: std::stringstream::str
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<std::pair<std::string, std::string>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 158
    functionName: sentencepiece::MakeHeader
    functionSourceFile: /src/sentencepiece/src/compile_charsmap_main.cc
    functionUses: 0
    functionsReached:
    - size
    - QCHECK_EQ
    - second::size
    - sentencepiece::ToHexUInt64Array
    - std::vector::size
    - std::stringstream::str
    - sentencepiece::ToHexData
    linkageType: ''
    returnType: std::string
    signature: "std::string MakeHeader(\n    const std::vector<std::pair<std::string,
      std::string>>& data)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:164,1
    - Dst: sentencepiece::ParseCommandLineFlags
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:165,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:183,1
    - Dst: func
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:183,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:187,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:187,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:190,1
    - Dst: sentencepiece::normalizer::Builder::SaveCharsMap
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:191,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:191,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:199,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:202,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:205,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:206,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:206,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:207,1
    - Dst: sentencepiece::MakeHeader
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:207,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:210,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:212,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:213,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/compile_charsmap_main.cc:215,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 19
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 220
    functionName: main
    functionSourceFile: /src/sentencepiece/src/compile_charsmap_main.cc
    functionUses: 0
    functionsReached:
    - func
    - sentencepiece::normalizer::Builder::SaveCharsMap
    - std::vector::emplace_back
    - auto::status
    - absl::StrCat
    - auto::Write
    - sentencepiece::MakeHeader
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - sentencepiece::ParseCommandLineFlags
    - sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
    - absl::GetFlag
    - QCHECK_OK
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: sentencepiece::SentencePieceProcessor::SentencePieceProcessor
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SentencePieceProcessor::SentencePieceProcessor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: SentencePieceProcessor::~SentencePieceProcessor()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SentencePieceProcessor::~SentencePieceProcessor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:77,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:78,1
    - Dst: sentencepiece::io::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:78,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:78,1
    - Dst: sentencepiece::SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:79,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: sentencepiece::SentencePieceProcessor::Load
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached:
    - auto::get
    - sentencepiece::io::LoadModelProto
    - std::make_unique<ModelProto>
    - sentencepiece::SentencePieceProcessor::Load
    - std::move
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status SentencePieceProcessor::Load(absl::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:83,1
    - Dst: sentencepiece::SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: sentencepiece::SentencePieceProcessor::LoadOrDie
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::Load
    - CHECK_OK
    linkageType: ''
    returnType: void
    signature: void SentencePieceProcessor::LoadOrDie(absl::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:87,1
    - Dst: sentencepiece::SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:89,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: sentencepiece::SentencePieceProcessor::Load
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::SentencePieceProcessor::Load
    - std::make_unique<ModelProto>
    - std::move
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status SentencePieceProcessor::Load(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:94,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:95,1
    - Dst: auto::ParseFromArray
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:95,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:95,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:95,1
    - Dst: sentencepiece::SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:96,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - serialized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: sentencepiece::SentencePieceProcessor::LoadFromSerializedProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached:
    - std::make_unique<ModelProto>
    - sentencepiece::SentencePieceProcessor::Load
    - std::move
    - absl::string_view::size
    - RET_CHECK
    - absl::string_view::data
    - auto::ParseFromArray
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::LoadFromSerializedProto(\n    absl::string_view
      serialized)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:101,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:102,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:103,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:104,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:104,1
    - Dst: has_denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:105,1
    - Dst: denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:106,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:107,1
    - Dst: denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:108,1
    - Dst: SetPrefixMatcher
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:112,1
    - Dst: prefix_matcher
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:112,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:114,1
    - Dst: sentencepiece::SentencePieceProcessor::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:114,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:118,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:118,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:119,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:121,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:121,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:122,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:124,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:124,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:125,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:127,1
    - Dst: pad_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:127,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:128,1
    - Dst: self_test_data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:132,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:133,1
    - Dst: sentencepiece::SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:133,1
    - Dst: input
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:133,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:134,1
    - Dst: VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:135,1
    - Dst: expected
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:135,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:136,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:137,1
    - Dst: input
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:137,1
    - Dst: expected
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:137,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:141,1
    - Dst: LOG
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:142,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:142,1
    - Dst: self_test_data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:143,1
    - Dst: LOG
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:146,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:148,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:151,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - model_proto
    argTypes:
    - std::unique_ptr<ModelProto>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 152
    functionName: sentencepiece::SentencePieceProcessor::Load
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 4
    functionsReached:
    - absl::OkStatus
    - sentencepiece::ModelFactory::Create
    - eos_piece
    - absl::StrJoin
    - absl::StrCat
    - std::move
    - std::vector::size
    - std::make_unique<normalizer::Normalizer>
    - expected
    - denormalizer_spec
    - bos_piece
    - sentencepiece::SentencePieceProcessor::status
    - pad_piece
    - std::vector::empty
    - LOG
    - input
    - VerifyOutputsEquivalent
    - sentencepiece::SentencePieceProcessor::PieceToId
    - std::vector::emplace_back
    - unk_piece
    - normalizer_spec
    - self_test_data
    - absl::InternalError
    - has_denormalizer_spec
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - SetPrefixMatcher
    - sentencepiece::SentencePieceProcessor::Encode
    - trainer_spec
    - sentencepiece::SentencePieceProcessor::IsControl
    - prefix_matcher
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Load(\n    std::unique_ptr<ModelProto>
      model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::ParseExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - extra_options
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: sentencepiece::SentencePieceProcessor::SetEncodeExtraOptions
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::ParseExtraOptions
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::SetEncodeExtraOptions(\n    absl::string_view
      extra_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::ParseExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - extra_options
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: sentencepiece::SentencePieceProcessor::SetDecodeExtraOptions
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::ParseExtraOptions
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::SetDecodeExtraOptions(\n    absl::string_view
      extra_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:165,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:166,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:167,1
    - Dst: sentencepiece::SentencePieceProcessor::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:167,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:168,1
    - Dst: sentencepiece::SentencePieceProcessor::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:168,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: sentencepiece::SentencePieceProcessor::status
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - sentencepiece::SentencePieceProcessor::status
    - RETURN_IF_ERROR
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status SentencePieceProcessor::status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - container
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: RET_CHECK_STATUS_STL
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_STATUS_STL(container)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - proto
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: RET_CHECK_STATUS_PROTO
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_STATUS_PROTO(proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::EncodeOptimized
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - pieces
    argTypes:
    - absl::string_view
    - std::vector<std::string>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: sentencepiece::SentencePieceProcessor::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::SentencePieceProcessor::EncodeOptimized
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Encode(\n    absl::string_view
      input, std::vector<std::string>* pieces) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::EncodeOptimized
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - ids
    argTypes:
    - absl::string_view
    - std::vector<int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: sentencepiece::SentencePieceProcessor::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::SentencePieceProcessor::EncodeOptimized
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Encode(absl::string_view input,\n
      \                                           std::vector<int>* ids) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const std::string>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:196,1
    - Dst: absl::Span<const std::string>::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:196,1
    - Dst: sentencepiece::SentencePieceProcessor::DecodeOptimized
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pieces
    - detokenized
    argTypes:
    - absl::Span<const std::string>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: sentencepiece::SentencePieceProcessor::Decode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached:
    - absl::Span<const std::string>::begin
    - sentencepiece::SentencePieceProcessor::DecodeOptimized
    - absl::Span<const std::string>::end
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Decode(\n    absl::Span<const
      std::string> pieces, std::string* detokenized) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::DecodeOptimized
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pieces
    - detokenized
    argTypes:
    - absl::Span<const absl::string_view>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: sentencepiece::SentencePieceProcessor::Decode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::SentencePieceProcessor::DecodeOptimized
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Decode(\n    absl::Span<const
      absl::string_view> pieces,\n    std::string* detokenized) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::DecodeOptimized
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ids
    - detokenized
    argTypes:
    - absl::Span<const int>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: sentencepiece::SentencePieceProcessor::Decode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::SentencePieceProcessor::DecodeOptimized
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Decode(absl::Span<const int>
      ids,\n                                            std::string* detokenized)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_STL
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:214,1
    - Dst: Arena::Create<NBestSentencePieceText>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:217,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:218,1
    - Dst: sentencepiece::SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:218,1
    - Dst: std::vector<std::vector<std::string>>*::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:219,1
    - Dst: auto*::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:219,1
    - Dst: auto*::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:220,1
    - Dst: std::vector<std::vector<std::string>>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:221,1
    - Dst: reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:222,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:222,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:223,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:224,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:224,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - input
    - nbest_size
    - pieces
    argTypes:
    - absl::string_view
    - int
    - std::vector<std::vector<std::string>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 229
    functionName: sentencepiece::SentencePieceProcessor::NBestEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - RET_CHECK_STATUS_STL
    - sentencepiece::SentencePieceProcessor::NBestEncode
    - auto*::nbests
    - std::vector<std::vector<std::string>>*::emplace_back
    - piece
    - emplace_back
    - std::vector<std::vector<std::string>>*::reserve
    - reserve
    - pieces
    - RETURN_IF_ERROR
    - Arena::Create<NBestSentencePieceText>
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::NBestEncode(\n    absl::string_view
      input, int nbest_size,\n    std::vector<std::vector<std::string>>* pieces) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_STL
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:234,1
    - Dst: Arena::Create<NBestSentencePieceText>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:237,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:238,1
    - Dst: sentencepiece::SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:238,1
    - Dst: std::vector<std::vector<int>>*::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:239,1
    - Dst: auto*::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:239,1
    - Dst: auto*::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:240,1
    - Dst: std::vector<std::vector<int>>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:241,1
    - Dst: reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:242,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:242,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:243,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:244,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:244,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - input
    - nbest_size
    - ids
    argTypes:
    - absl::string_view
    - int
    - std::vector<std::vector<int>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 249
    functionName: sentencepiece::SentencePieceProcessor::NBestEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 3
    functionsReached:
    - absl::OkStatus
    - RET_CHECK_STATUS_STL
    - sentencepiece::SentencePieceProcessor::NBestEncode
    - auto*::nbests
    - std::vector<std::vector<int>>*::reserve
    - std::vector<std::vector<int>>*::emplace_back
    - emplace_back
    - id
    - reserve
    - pieces
    - RETURN_IF_ERROR
    - Arena::Create<NBestSentencePieceText>
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::NBestEncode(\n    absl::string_view
      input, int nbest_size,\n    std::vector<std::vector<int>>* ids) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_STL
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:254,1
    - Dst: Arena::Create<SentencePieceText>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:257,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:258,1
    - Dst: sentencepiece::SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:258,1
    - Dst: std::vector<std::string>*::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:259,1
    - Dst: auto*::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:259,1
    - Dst: auto*::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:260,1
    - Dst: std::vector<std::string>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:261,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:261,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - input
    - nbest_size
    - alpha
    - pieces
    argTypes:
    - absl::string_view
    - int
    - float
    - std::vector<std::string>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 265
    functionName: sentencepiece::SentencePieceProcessor::SampleEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - RET_CHECK_STATUS_STL
    - sentencepiece::SentencePieceProcessor::SampleEncode
    - std::vector<std::string>*::reserve
    - piece
    - auto*::pieces
    - Arena::Create<SentencePieceText>
    - std::vector<std::string>*::emplace_back
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::SampleEncode(\n    absl::string_view
      input, int nbest_size, float alpha,\n    std::vector<std::string>* pieces) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_STL
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:270,1
    - Dst: Arena::Create<SentencePieceText>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:273,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:274,1
    - Dst: sentencepiece::SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:274,1
    - Dst: auto*::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:275,1
    - Dst: std::vector<int>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:276,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:276,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - input
    - nbest_size
    - alpha
    - ids
    argTypes:
    - absl::string_view
    - int
    - float
    - std::vector<int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 280
    functionName: sentencepiece::SentencePieceProcessor::SampleEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 3
    functionsReached:
    - absl::OkStatus
    - RET_CHECK_STATUS_STL
    - sentencepiece::SentencePieceProcessor::SampleEncode
    - auto*::pieces
    - Arena::Create<SentencePieceText>
    - id
    - std::vector<int>*::emplace_back
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::SampleEncode(absl::string_view
      input,\n                                                  int nbest_size, float
      alpha,\n                                                  std::vector<int>*
      ids) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:293,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:293,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:295,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:297,1
    - Dst: SentencePieceText*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:299,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:300,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:300,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:300,1
    - Dst: auto*::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:301,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:302,1
    - Dst: auto*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:304,1
    - Dst: auto*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:305,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:308,1
    - Dst: RET_CHECK_LT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:309,1
    - Dst: absl::Span<const size_t>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:309,1
    - Dst: RET_CHECK_LT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:310,1
    - Dst: absl::Span<const size_t>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:310,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:311,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:312,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:315,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:315,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:316,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:316,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:317,1
    - Dst: absl::ClippedSubstr
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:319,1
    - Dst: ByteFallbackEnabled
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:321,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:323,1
    - Dst: static_cast<uint8_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:325,1
    - Dst: SentencePieceText*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:326,1
    - Dst: SentencePieceText::SentencePiece*::mutable_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:327,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:328,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:329,1
    - Dst: SentencePieceText::SentencePiece*::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:330,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:334,1
    - Dst: SentencePieceText::SentencePiece*::set_surface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:335,1
    - Dst: auto::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:335,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:335,1
    - Dst: SentencePieceText::SentencePiece*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:336,1
    - Dst: SentencePieceText::SentencePiece*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:337,1
    - Dst: SentencePieceText::SentencePiece*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:340,1
    - Dst: SentencePieceText::SentencePiece*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:341,1
    - Dst: SentencePieceText*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:350,1
    - Dst: SentencePieceText*::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:350,1
    - Dst: auto*::mutable_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:351,1
    - Dst: auto*::mutable_surface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:352,1
    - Dst: auto*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:353,1
    - Dst: SentencePieceText*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:355,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:356,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:356,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:356,1
    - Dst: auto*::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:357,1
    - Dst: auto*::set_surface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:358,1
    - Dst: auto::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:358,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:358,1
    - Dst: auto*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:359,1
    - Dst: auto*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:360,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:363,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:368,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:368,1
    - Dst: SentencePieceText*::set_text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:371,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:371,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:371,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:373,1
    - Dst: sentencepiece::SentencePieceProcessor::ApplyExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:373,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:375,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 7
    argNames:
    - input
    - normalized
    - norm_to_orig
    - ' result'
    - spt
    - skip_surface
    - input_start_offset
    argTypes:
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    - EncodeResult
    - SentencePieceText*
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 376
    functionName: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - auto*::set_surface
    - RET_CHECK_GE
    - SentencePieceText::SentencePiece*::mutable_piece
    - SentencePieceText::SentencePiece*::set_id
    - auto::size
    - absl::string_view::empty
    - RET_CHECK_LE
    - RET_CHECK_EQ
    - sentencepiece::SentencePieceProcessor::ApplyExtraOptions
    - auto*::set_begin
    - SentencePieceText*::pieces_size
    - auto*::set_end
    - RET_CHECK_LT
    - auto*::set_piece
    - SentencePieceText::SentencePiece*::set_end
    - sentencepiece::SentencePieceProcessor::PieceToId
    - ByteFallbackEnabled
    - auto::data
    - static_cast<uint8_t>
    - ByteToPiece
    - SentencePieceText*::mutable_pieces
    - absl::ClippedSubstr
    - absl::string_view::size
    - RET_CHECK
    - absl::string_view::data
    - SentencePieceText*::set_text
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - auto*::mutable_surface
    - auto*::mutable_piece
    - absl::Span<const size_t>::size
    - SentencePieceText::SentencePiece*::set_surface
    - SentencePieceText*::add_pieces
    - sentencepiece::SentencePieceProcessor::IsControl
    - SentencePieceText::SentencePiece*::set_begin
    - RETURN_IF_ERROR
    - auto*::set_id
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::PopulateSentencePieceText(\n
      \   absl::string_view input, absl::string_view normalized,\n    absl::Span<const
      size_t> norm_to_orig, const EncodeResult& result,\n    SentencePieceText* spt,
      bool skip_surface,\n    size_t input_start_offset) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_PROTO
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:380,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:384,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:384,1
    - Dst: sentencepiece::SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:386,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:387,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:388,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - input
    - spt
    argTypes:
    - absl::string_view
    - SentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 391
    functionName: sentencepiece::SentencePieceProcessor::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
    - absl::OkStatus
    - sentencepiece::SentencePieceProcessor::Normalize
    - sentencepiece::SentencePieceProcessor::Encode
    - RET_CHECK_STATUS_PROTO
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Encode(absl::string_view input,\n
      \                                           SentencePieceText* spt) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_PROTO
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:396,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:398,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:403,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:403,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:405,1
    - Dst: IsNBestEncodeAvailable
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:405,1
    - Dst: sentencepiece::SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:408,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:409,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:409,1
    - Dst: NBestSentencePieceText*::add_nbests
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:412,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:413,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:414,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:414,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - input
    - nbest_size
    - nbest_spt
    argTypes:
    - absl::string_view
    - int
    - NBestSentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 419
    functionName: sentencepiece::SentencePieceProcessor::NBestEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 4
    functionsReached:
    - IsNBestEncodeAvailable
    - sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
    - sentencepiece::SentencePieceProcessor::NBestEncode
    - sentencepiece::SentencePieceProcessor::Normalize
    - absl::OkStatus
    - auto::empty
    - RET_CHECK_LE
    - NBestSentencePieceText*::add_nbests
    - RET_CHECK
    - RET_CHECK_STATUS_PROTO
    - RETURN_IF_ERROR
    - auto*::set_score
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::NBestEncode(\n    absl::string_view
      input, int nbest_size,\n    NBestSentencePieceText* nbest_spt) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_PROTO
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:424,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:426,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:426,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:427,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:428,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:433,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:433,1
    - Dst: IsNBestEncodeAvailable
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:435,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:436,1
    - Dst: IsSampleEncodeAvailable
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:436,1
    - Dst: sentencepiece::SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:438,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:439,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:439,1
    - Dst: sentencepiece::SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:442,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:443,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:443,1
    - Dst: sentencepiece::SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:446,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:447,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:447,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:450,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:450,1
    - Dst: std::transform
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:451,1
    - Dst: auto::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:451,1
    - Dst: auto::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:451,1
    - Dst: std::back_inserter
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:451,1
    - Dst: sentencepiece::log_domain::LogSum
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:454,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:456,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:456,1
    - Dst: std::transform
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:457,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:458,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:458,1
    - Dst: std::back_inserter
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:458,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:459,1
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:461,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:462,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:462,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:463,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:463,1
    - Dst: dist
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:464,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - input
    - nbest_size
    - alpha
    - spt
    argTypes:
    - absl::string_view
    - int
    - float
    - SentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 468
    functionName: sentencepiece::SentencePieceProcessor::SampleEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 4
    functionsReached:
    - IsNBestEncodeAvailable
    - sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
    - sentencepiece::SentencePieceProcessor::NBestEncode
    - sentencepiece::SentencePieceProcessor::SampleEncode
    - RET_CHECK_GE
    - auto::size
    - auto::end
    - absl::OkStatus
    - RET_CHECK_LE
    - std::vector::size
    - std::transform
    - IsSampleEncodeAvailable
    - RET_CHECK_STATUS_PROTO
    - std::isnan
    - std::back_inserter
    - std::exp
    - std::vector::reserve
    - sentencepiece::log_domain::LogSum
    - RET_CHECK
    - std::vector::begin
    - sentencepiece::SentencePieceProcessor::Normalize
    - dist
    - auto::empty
    - std::vector::end
    - sentencepiece::random::GetRandomGenerator
    - sentencepiece::SentencePieceProcessor::Encode
    - auto::begin
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::SampleEncode(\n    absl::string_view
      input, int nbest_size, float alpha,\n    SentencePieceText* spt) const"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_PROTO
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:472,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:475,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:476,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:485,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:486,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:487,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:488,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:489,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:489,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:491,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:491,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:499,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:500,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:503,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:506,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:512,1
    - Dst: absl::StrReplaceAll
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:512,1
    - Dst: SentencePieceText*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:516,1
    - Dst: absl::Span<const absl::string_view>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:516,1
    - Dst: SentencePieceText*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:518,1
    - Dst: auto*::mutable_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:519,1
    - Dst: data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:519,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:519,1
    - Dst: auto*::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:520,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:520,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:523,1
    - Dst: sentencepiece::SentencePieceProcessor::ApplyExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:523,1
    - Dst: SentencePieceText*::mutable_text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:525,1
    - Dst: SentencePieceText*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:527,1
    - Dst: auto*::set_surface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:528,1
    - Dst: data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:528,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:528,1
    - Dst: auto*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:529,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:529,1
    - Dst: auto*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:530,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:530,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:530,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:531,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:537,1
    - Dst: SentencePieceText*::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:543,1
    - Dst: PieceToByte
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:544,1
    - Dst: auto*::piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:544,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:545,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:546,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:551,1
    - Dst: sentencepiece::string_util::IsValidDecodeUTF8
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:555,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:556,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:564,1
    - Dst: SetSurface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:565,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:568,1
    - Dst: SetSurface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:574,1
    - Dst: SetSurface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:576,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:582,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:584,1
    - Dst: SentencePieceText*::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:592,1
    - Dst: SentencePieceText*::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:593,1
    - Dst: sentencepiece::SentencePieceProcessor::IsByte
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:594,1
    - Dst: auto*::id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:594,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:595,1
    - Dst: ProcessBytePieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:595,1
    - Dst: std::string*::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:598,1
    - Dst: std::tie
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:601,1
    - Dst: DecodeSentencePiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:602,1
    - Dst: auto*::piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:602,1
    - Dst: auto*::id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:602,1
    - Dst: SetSurface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:604,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:607,1
    - Dst: ProcessBytePieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:607,1
    - Dst: SentencePieceText*::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:607,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:610,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:613,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 2
    argNames:
    - pieces
    - spt
    argTypes:
    - absl::Span<const absl::string_view>
    - SentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 614
    functionName: sentencepiece::SentencePieceProcessor::Decode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached:
    - absl::OkStatus
    - auto*::set_surface
    - absl::StrReplaceAll
    - sentencepiece::SentencePieceProcessor::ApplyExtraOptions
    - std::string*::size
    - RET_CHECK_LE
    - RET_CHECK_EQ
    - std::string::size
    - absl::ConsumePrefix
    - auto*::set_begin
    - SentencePieceText*::pieces_size
    - auto*::set_end
    - RET_CHECK_STATUS_PROTO
    - data
    - IdToPiece
    - auto*::piece
    - std::tie
    - size
    - sentencepiece::string_util::IsValidDecodeUTF8
    - absl::string_view
    - sentencepiece::SentencePieceProcessor::PieceToId
    - std::string
    - absl::StrAppend
    - absl::Span<const absl::string_view>::size
    - ProcessBytePieces
    - normalizer_spec
    - SentencePieceText*::mutable_pieces
    - sentencepiece::SentencePieceProcessor::IsByte
    - std::string*::empty
    - DecodeSentencePiece
    - std::make_pair
    - sentencepiece::SentencePieceProcessor::Normalize
    - SentencePieceText*::mutable_text
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - auto*::mutable_piece
    - PieceToByte
    - SetSurface
    - auto*::id
    - trainer_spec
    - SentencePieceText*::add_pieces
    - SentencePieceText*::pieces
    - sentencepiece::SentencePieceProcessor::IsControl
    - std::string::append
    - RETURN_IF_ERROR
    - auto*::set_id
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Decode(\n    absl::Span<const
      absl::string_view> pieces, SentencePieceText* spt) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:619,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:620,1
    - Dst: absl::Span<const int>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:620,1
    - Dst: absl::Status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:623,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:624,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:626,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:626,1
    - Dst: sentencepiece::SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ids
    - spt
    argTypes:
    - absl::Span<const int>
    - SentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 629
    functionName: sentencepiece::SentencePieceProcessor::Decode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::SentencePieceProcessor::Decode
    - absl::Status
    - IdToPiece
    - std::vector::emplace_back
    - absl::StrCat
    - std::vector::reserve
    - sentencepiece::SentencePieceProcessor::GetPieceSize
    - absl::Span<const int>::size
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Decode(absl::Span<const int>
      ids,\n                                            SentencePieceText* spt) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:640,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:640,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:642,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' input_unicode'
    - ' utf8_offsets'
    - chunk_len
    - i
    - overlap
    - ' chunk_boundaries'
    argTypes:
    - string_util::UnicodeText
    - std::vector<uint32_t>
    - size_t
    - size_t
    - size_t
    - std::tuple<size_t, size_t, size_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 647
    functionName: sentencepiece::GetIthChunkBoundaries
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - size
    - std::min<size_t>
    linkageType: ''
    returnType: void
    signature: "void GetIthChunkBoundaries(\n    const string_util::UnicodeText& input_unicode,\n
      \   const std::vector<uint32_t>& utf8_offsets, const size_t chunk_len,\n    const
      size_t i, const size_t overlap,\n    std::tuple<size_t, size_t, size_t>& chunk_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:656,1
    - Dst: std::get<2>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:657,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:658,1
    - Dst: std::lower_bound
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:661,1
    - Dst: absl::Span<const size_t>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:661,1
    - Dst: absl::Span<const size_t>::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:661,1
    - Dst: absl::Span<const size_t>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:663,1
    - Dst: std::upper_bound
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:666,1
    - Dst: absl::Span<const size_t>::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:666,1
    - Dst: absl::Span<const size_t>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:668,1
    - Dst: absl::ClippedSubstr
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:670,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:673,1
    - Dst: absl::Span<const size_t>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:673,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:675,1
    - Dst: absl::Span<const size_t>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:675,1
    - Dst: absl::Span<const size_t>::subspan
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - input
    - normalized
    - norm_to_orig
    - ' chunk_boundaries'
    - ' input_chunk'
    - ' normalized_chunk'
    - ' norm_to_orig_chunk'
    argTypes:
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    - std::tuple<size_t, size_t, size_t>
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 678
    functionName: sentencepiece::GetChunkOfInput
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::substr
    - absl::Span<const size_t>::begin
    - absl::Span<const size_t>::subspan
    - absl::Span<const size_t>::size
    - std::upper_bound
    - std::lower_bound
    - absl::Span<const size_t>::end
    - absl::ClippedSubstr
    - std::get<0>
    - std::min<size_t>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: "void GetChunkOfInput(const absl::string_view input,\n                     const
      absl::string_view normalized,\n                     absl::Span<const size_t>
      norm_to_orig,\n                     const std::tuple<size_t, size_t, size_t>&
      chunk_boundaries,\n                     absl::string_view& input_chunk,\n                     absl::string_view&
      normalized_chunk,\n                     absl::Span<const size_t>& norm_to_orig_chunk)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:690,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:691,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:691,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:692,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:692,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:693,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:693,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:694,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:694,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:695,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:695,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:696,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:696,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:697,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:697,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:698,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:698,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:700,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:702,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:702,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 13
    argCount: 5
    argNames:
    - ' current_piece'
    - ' next_chunk'
    - chunk_len
    - unk_id
    - start_index_in_next_chunk
    argTypes:
    - SentencePieceText_SentencePiece
    - SentencePieceText
    - size_t
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 710
    functionName: sentencepiece::FindMatchingToken
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - end
    - static_cast<uint32_t>
    - begin
    - id
    - pieces
    linkageType: ''
    returnType: bool
    signature: "bool FindMatchingToken(const SentencePieceText_SentencePiece& current_piece,\n
      \                      const SentencePieceText& next_chunk, size_t chunk_len,\n
      \                      int unk_id, size_t* start_index_in_next_chunk)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:729,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:729,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:730,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:730,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:732,1
    - Dst: empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:737,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:738,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:738,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:748,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:749,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:755,1
    - Dst: std::get<1>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:757,1
    - Dst: std::get<2>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:759,1
    - Dst: GetChunkOfInput
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:768,1
    - Dst: Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:770,1
    - Dst: Create
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:771,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:772,1
    - Dst: populate_sentence_piece_text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:772,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:774,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:777,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:778,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:784,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:785,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:786,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:790,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:791,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 9
    argNames:
    - ' bad_joins'
    - input
    - normalized
    - norm_to_orig
    - ' arena'
    - ' model'
    - populate_sentence_piece_text
    - ' spt_chunks'
    - ' input_chunk_boundaries'
    argTypes:
    - std::vector<size_t>
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    - Arena
    - ModelInterface
    - "absl::FunctionRef<absl::Status(\n        absl::string_view input, absl::string_view
      normalized,\n        absl::Span<const size_t> norm_to_orig, const EncodeResult&
      result,\n        SentencePieceText* spt, size_t input_start_offset)>"
    - std::vector<SentencePieceText*>
    - std::vector<std::tuple<size_t, size_t, size_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 794
    functionName: "absl::Status ReparseBadRanges(\n    const std::vector<size_t>&
      bad_joins, const absl::string_view input,\n    const absl::string_view normalized,
      absl::Span<const size_t> norm_to_orig,\n    Arena& arena, const ModelInterface&
      model,\n    absl::FunctionRef<absl::Status(\n        absl::string_view input,
      absl::string_view normalized,\n        absl::Span<const size_t> norm_to_orig,
      const EncodeResult& result,\n        SentencePieceText* spt, size_t input_start_offset)>\n
      \       populate_sentence_piece_text,\n    std::vector<SentencePieceText*>&
      spt_chunks,\n    std::vector<std::tuple<size_t, size_t, size_t>>& input_chunk_boundaries)"
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - Encode
    - size
    - std::vector::emplace_back
    - std::get<1>
    - populate_sentence_piece_text
    - std::vector::push_back
    - std::vector::empty
    - std::move
    - empty
    - GetChunkOfInput
    - Create
    - std::get<0>
    - RETURN_IF_ERROR
    - std::make_pair
    - std::get<2>
    - std::vector::back
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_COLD
    signature: "ABSL_ATTRIBUTE_COLD absl::Status ReparseBadRanges(\n    const std::vector<size_t>&
      bad_joins, const absl::string_view input,\n    const absl::string_view normalized,
      absl::Span<const size_t> norm_to_orig,\n    Arena& arena, const ModelInterface&
      model,\n    absl::FunctionRef<absl::Status(\n        absl::string_view input,
      absl::string_view normalized,\n        absl::Span<const size_t> norm_to_orig,
      const EncodeResult& result,\n        SentencePieceText* spt, size_t input_start_offset)>\n
      \       populate_sentence_piece_text,\n    std::vector<SentencePieceText*>&
      spt_chunks,\n    std::vector<std::tuple<size_t, size_t, size_t>>& input_chunk_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:640,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:640,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:642,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' input_unicode'
    - ' utf8_offsets'
    - chunk_len
    - i
    - overlap
    - ' chunk_boundaries'
    argTypes:
    - string_util::UnicodeText
    - std::vector<uint32_t>
    - size_t
    - size_t
    - size_t
    - std::tuple<size_t, size_t, size_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 647
    functionName: sentencepiece::GetIthChunkBoundaries
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - size
    - std::min<size_t>
    linkageType: ''
    returnType: void
    signature: "void GetIthChunkBoundaries(\n    const string_util::UnicodeText& input_unicode,\n
      \   const std::vector<uint32_t>& utf8_offsets, const size_t chunk_len,\n    const
      size_t i, const size_t overlap,\n    std::tuple<size_t, size_t, size_t>& chunk_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:656,1
    - Dst: std::get<2>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:657,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:658,1
    - Dst: std::lower_bound
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:661,1
    - Dst: absl::Span<const size_t>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:661,1
    - Dst: absl::Span<const size_t>::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:661,1
    - Dst: absl::Span<const size_t>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:663,1
    - Dst: std::upper_bound
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:666,1
    - Dst: absl::Span<const size_t>::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:666,1
    - Dst: absl::Span<const size_t>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:668,1
    - Dst: absl::ClippedSubstr
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:670,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:673,1
    - Dst: absl::Span<const size_t>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:673,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:675,1
    - Dst: absl::Span<const size_t>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:675,1
    - Dst: absl::Span<const size_t>::subspan
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - input
    - normalized
    - norm_to_orig
    - ' chunk_boundaries'
    - ' input_chunk'
    - ' normalized_chunk'
    - ' norm_to_orig_chunk'
    argTypes:
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    - std::tuple<size_t, size_t, size_t>
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 678
    functionName: sentencepiece::GetChunkOfInput
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::substr
    - absl::Span<const size_t>::begin
    - absl::Span<const size_t>::subspan
    - absl::Span<const size_t>::size
    - std::upper_bound
    - std::lower_bound
    - absl::Span<const size_t>::end
    - absl::ClippedSubstr
    - std::get<0>
    - std::min<size_t>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: "void GetChunkOfInput(const absl::string_view input,\n                     const
      absl::string_view normalized,\n                     absl::Span<const size_t>
      norm_to_orig,\n                     const std::tuple<size_t, size_t, size_t>&
      chunk_boundaries,\n                     absl::string_view& input_chunk,\n                     absl::string_view&
      normalized_chunk,\n                     absl::Span<const size_t>& norm_to_orig_chunk)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:690,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:691,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:691,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:692,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:692,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:693,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:693,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:694,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:694,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:695,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:695,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:696,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:696,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:697,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:697,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:698,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:698,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:700,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:702,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:702,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 13
    argCount: 5
    argNames:
    - ' current_piece'
    - ' next_chunk'
    - chunk_len
    - unk_id
    - start_index_in_next_chunk
    argTypes:
    - SentencePieceText_SentencePiece
    - SentencePieceText
    - size_t
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 710
    functionName: sentencepiece::FindMatchingToken
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - end
    - static_cast<uint32_t>
    - begin
    - id
    - pieces
    linkageType: ''
    returnType: bool
    signature: "bool FindMatchingToken(const SentencePieceText_SentencePiece& current_piece,\n
      \                      const SentencePieceText& next_chunk, size_t chunk_len,\n
      \                      int unk_id, size_t* start_index_in_next_chunk)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:729,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:729,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:730,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:730,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:732,1
    - Dst: empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:737,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:738,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:738,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:748,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:749,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:755,1
    - Dst: std::get<1>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:757,1
    - Dst: std::get<2>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:759,1
    - Dst: GetChunkOfInput
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:768,1
    - Dst: Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:770,1
    - Dst: Create
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:771,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:772,1
    - Dst: populate_sentence_piece_text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:772,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:774,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:777,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:778,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:784,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:785,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:786,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:790,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:791,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 9
    argNames:
    - ' bad_joins'
    - input
    - normalized
    - norm_to_orig
    - ' arena'
    - ' model'
    - populate_sentence_piece_text
    - ' spt_chunks'
    - ' input_chunk_boundaries'
    argTypes:
    - std::vector<size_t>
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    - Arena
    - ModelInterface
    - "absl::FunctionRef<absl::Status(\n        absl::string_view input, absl::string_view
      normalized,\n        absl::Span<const size_t> norm_to_orig, const EncodeResult&
      result,\n        SentencePieceText* spt, size_t input_start_offset)>"
    - std::vector<SentencePieceText*>
    - std::vector<std::tuple<size_t, size_t, size_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 794
    functionName: "absl::Status ReparseBadRanges(\n    const std::vector<size_t>&
      bad_joins, const absl::string_view input,\n    const absl::string_view normalized,
      absl::Span<const size_t> norm_to_orig,\n    Arena& arena, const ModelInterface&
      model,\n    absl::FunctionRef<absl::Status(\n        absl::string_view input,
      absl::string_view normalized,\n        absl::Span<const size_t> norm_to_orig,
      const EncodeResult& result,\n        SentencePieceText* spt, size_t input_start_offset)>\n
      \       populate_sentence_piece_text,\n    std::vector<SentencePieceText*>&
      spt_chunks,\n    std::vector<std::tuple<size_t, size_t, size_t>>& input_chunk_boundaries)"
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - Encode
    - size
    - std::vector::emplace_back
    - std::get<1>
    - populate_sentence_piece_text
    - std::vector::push_back
    - std::vector::empty
    - std::move
    - empty
    - GetChunkOfInput
    - Create
    - std::get<0>
    - RETURN_IF_ERROR
    - std::make_pair
    - std::get<2>
    - std::vector::back
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_COLD
    signature: "ABSL_ATTRIBUTE_COLD absl::Status ReparseBadRanges(\n    const std::vector<size_t>&
      bad_joins, const absl::string_view input,\n    const absl::string_view normalized,
      absl::Span<const size_t> norm_to_orig,\n    Arena& arena, const ModelInterface&
      model,\n    absl::FunctionRef<absl::Status(\n        absl::string_view input,
      absl::string_view normalized,\n        absl::Span<const size_t> norm_to_orig,
      const EncodeResult& result,\n        SentencePieceText* spt, size_t input_start_offset)>\n
      \       populate_sentence_piece_text,\n    std::vector<SentencePieceText*>&
      spt_chunks,\n    std::vector<std::tuple<size_t, size_t, size_t>>& input_chunk_boundaries)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:802,1
    - Dst: SentencePieceText*::Clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:804,1
    - Dst: SentencePieceText*::set_text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:805,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:807,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:810,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:810,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:811,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:812,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:812,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeTextAndOffsets
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:817,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:824,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:824,1
    - Dst: model_proto
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:827,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:828,1
    - Dst: std::vector::resize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:838,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:843,1
    - Dst: std::make_unique<Arena>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:845,1
    - Dst: Arena::Create
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:850,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:859,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:862,1
    - Dst: Schedule
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:863,1
    - Dst: get
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:864,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:865,1
    - Dst: GetIthChunkBoundaries
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:869,1
    - Dst: GetChunkOfInput
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:871,1
    - Dst: sentencepiece::SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:875,1
    - Dst: Arena*::Create
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:876,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:877,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:880,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:883,1
    - Dst: absl::BlockingCounter::DecrementCount
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:888,1
    - Dst: absl::BlockingCounter::Wait
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:892,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:895,1
    - Dst: SentencePieceText*::clear_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:906,1
    - Dst: std::vector<std::string>*::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:907,1
    - Dst: std::vector<int>*::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:908,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:909,1
    - Dst: std::get<1>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:910,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:911,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:913,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:916,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:919,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:919,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:919,1
    - Dst: std::vector<std::string>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:925,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:925,1
    - Dst: std::vector<int>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:926,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:926,1
    - Dst: SentencePieceText*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:927,1
    - Dst: auto::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:928,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:928,1
    - Dst: auto::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:929,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:929,1
    - Dst: auto::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:930,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:930,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:930,1
    - Dst: auto::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:931,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:931,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:931,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:939,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:939,1
    - Dst: sentencepiece::SentencePieceProcessor::IsByte
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:940,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:940,1
    - Dst: auto::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:940,1
    - Dst: auto::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:940,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:941,1
    - Dst: auto::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:941,1
    - Dst: auto::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:941,1
    - Dst: auto::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:941,1
    - Dst: auto::set_surface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:942,1
    - Dst: auto::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:942,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:942,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:948,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:948,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:948,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:949,1
    - Dst: FindMatchingToken
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:951,1
    - Dst: sentencepiece::SentencePieceProcessor::unk_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:952,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:958,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:960,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:965,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:973,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:976,1
    - Dst: ReparseBadRanges
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:976,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:982,1
    - Dst: SentencePieceText*::set_text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:990,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:990,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:990,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:993,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 86
    argCount: 6
    argNames:
    - input
    - chunk_len
    - ' thread_pool'
    - pieces
    - ids
    - spt
    argTypes:
    - absl::string_view
    - size_t
    - ThreadPool
    - std::vector<std::string>*
    - std::vector<int>*
    - SentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 994
    functionName: sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - absl::InvalidArgumentError
    - sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
    - auto::end
    - model_proto
    - auto::size
    - absl::string_view::empty
    - absl::StrCat
    - auto::ok
    - std::vector::size
    - std::make_unique<Arena>
    - id
    - auto::set_id
    - size
    - std::numeric_limits<uint32_t>::max
    - std::vector<int>*::clear
    - std::get<1>
    - piece
    - Arena::Create
    - std::vector::push_back
    - FindMatchingToken
    - std::vector::empty
    - begin
    - auto::set_piece
    - std::get<0>
    - std::vector::clear
    - end
    - auto::data
    - ReparseBadRanges
    - std::vector<std::string>*::clear
    - get
    - absl::string_view::substr
    - auto::set_begin
    - std::vector<std::string>*::emplace_back
    - SentencePieceText*::clear_pieces
    - sentencepiece::SentencePieceProcessor::unk_id
    - std::vector::resize
    - absl::string_view::size
    - std::vector<int>*::emplace_back
    - sentencepiece::SentencePieceProcessor::IsByte
    - absl::string_view::data
    - absl::BlockingCounter::DecrementCount
    - absl::BlockingCounter::Wait
    - SentencePieceText*::set_text
    - sentencepiece::SentencePieceProcessor::Normalize
    - Schedule
    - sentencepiece::SentencePieceProcessor::Encode
    - auto::set_surface
    - SentencePieceText*::Clear
    - auto::set_end
    - auto::begin
    - SentencePieceText*::add_pieces
    - GetIthChunkBoundaries
    - GetChunkOfInput
    - sentencepiece::SentencePieceProcessor::IsControl
    - sentencepiece::string_util::UTF8ToUnicodeTextAndOffsets
    - pieces
    - Arena*::Create
    - RETURN_IF_ERROR
    - num_threads
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::ParallelEncodeInternal(\n    absl::string_view
      input, size_t chunk_len, ThreadPool& thread_pool,\n    std::vector<std::string>*
      pieces, std::vector<int>* ids,\n    SentencePieceText* spt) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - input
    - chunk_len
    - ' thread_pool'
    - pieces
    argTypes:
    - absl::string_view
    - int
    - ThreadPool
    - std::vector<std::string>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 996
    functionDepth: 3
    functionLinenumber: 996
    functionLinenumberEnd: 1002
    functionName: sentencepiece::SentencePieceProcessor::ParallelEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::ParallelEncode(\n    absl::string_view
      input, int chunk_len, ThreadPool& thread_pool,\n    std::vector<std::string>*
      pieces) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - input
    - chunk_len
    - ' thread_pool'
    - ids
    argTypes:
    - absl::string_view
    - int
    - ThreadPool
    - std::vector<int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1004
    functionDepth: 3
    functionLinenumber: 1004
    functionLinenumberEnd: 1010
    functionName: sentencepiece::SentencePieceProcessor::ParallelEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::ParallelEncode(\n    absl::string_view
      input, int chunk_len, ThreadPool& thread_pool,\n    std::vector<int>* ids) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - input
    - chunk_len
    - ' thread_pool'
    - spt
    argTypes:
    - absl::string_view
    - int
    - ThreadPool
    - SentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1017
    functionName: sentencepiece::SentencePieceProcessor::ParallelEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::ParallelEncode(\n    absl::string_view
      input, int chunk_len, ThreadPool& thread_pool,\n    SentencePieceText* spt)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1024
    functionName: RET_CHECK_OR_RETURN_DEFAULT
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_OR_RETURN_DEFAULT(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1027,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - normalized
    argTypes:
    - absl::string_view
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1029
    functionName: sentencepiece::SentencePieceProcessor::Normalize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 7
    functionsReached:
    - sentencepiece::SentencePieceProcessor::Normalize
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Normalize(absl::string_view input,\n
      \                                              std::string* normalized) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1034,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - input
    - normalized
    - norm_to_orig
    argTypes:
    - absl::string_view
    - std::string*
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1036
    functionName: sentencepiece::SentencePieceProcessor::Normalize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 8
    functionsReached:
    - sentencepiece::SentencePieceProcessor::Normalize
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Normalize(\n    absl::string_view
      input, std::string* normalized,\n    std::vector<size_t>* norm_to_orig) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1042
    functionName: sentencepiece::SentencePieceProcessor::Normalize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 9
    functionsReached:
    - sentencepiece::SentencePieceProcessor::Normalize
    linkageType: ''
    returnType: std::string
    signature: std::string SentencePieceProcessor::Normalize(absl::string_view input)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1045,1
    - Dst: sentencepiece::SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1047
    functionName: sentencepiece::SentencePieceProcessor::GetPieceSize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::SentencePieceProcessor::GetPieceSize
    - RET_CHECK_OR_RETURN_DEFAULT
    linkageType: ''
    returnType: int
    signature: int SentencePieceProcessor::GetPieceSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1050,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1052
    functionName: sentencepiece::SentencePieceProcessor::PieceToId
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 5
    functionsReached:
    - sentencepiece::SentencePieceProcessor::PieceToId
    - RET_CHECK_OR_RETURN_DEFAULT
    linkageType: ''
    returnType: int
    signature: int SentencePieceProcessor::PieceToId(absl::string_view piece) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::string
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1055,1
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1056,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1058
    functionName: '& SentencePieceProcessor::IdToPiece(int id) const'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - RET_CHECK_OR_RETURN_DEFAULT
    - std::string::string
    - IdToPiece
    linkageType: ''
    returnType: std::string
    signature: std::string & SentencePieceProcessor::IdToPiece(int id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1061,1
    - Dst: sentencepiece::SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1062,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - id
    - piece
    argTypes:
    - int
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1060
    functionDepth: 2
    functionLinenumber: 1060
    functionLinenumberEnd: 1067
    functionName: sentencepiece::SentencePieceProcessor::SafeIdToPiece
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::GetPieceSize
    - RET_CHECK_OR_RETURN_DEFAULT
    - IdToPiece
    linkageType: ''
    returnType: bool
    signature: bool SentencePieceProcessor::SafeIdToPiece(int id, std::string* piece)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1070,1
    - Dst: sentencepiece::SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1069
    functionDepth: 1
    functionLinenumber: 1069
    functionLinenumberEnd: 1072
    functionName: sentencepiece::SentencePieceProcessor::GetScore
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::SentencePieceProcessor::GetScore
    - RET_CHECK_OR_RETURN_DEFAULT
    linkageType: ''
    returnType: float
    signature: float SentencePieceProcessor::GetScore(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1075,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1077
    functionName: sentencepiece::SentencePieceProcessor::IsControl
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 6
    functionsReached:
    - RET_CHECK_OR_RETURN_DEFAULT
    - sentencepiece::SentencePieceProcessor::IsControl
    linkageType: ''
    returnType: bool
    signature: bool SentencePieceProcessor::IsControl(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1080,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1082
    functionName: sentencepiece::SentencePieceProcessor::IsUnknown
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 5
    functionsReached:
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - RET_CHECK_OR_RETURN_DEFAULT
    linkageType: ''
    returnType: bool
    signature: bool SentencePieceProcessor::IsUnknown(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1085,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnused
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1087
    functionName: sentencepiece::SentencePieceProcessor::IsUnused
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - RET_CHECK_OR_RETURN_DEFAULT
    - sentencepiece::SentencePieceProcessor::IsUnused
    linkageType: ''
    returnType: bool
    signature: bool SentencePieceProcessor::IsUnused(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1090,1
    - Dst: sentencepiece::SentencePieceProcessor::IsByte
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1092
    functionName: sentencepiece::SentencePieceProcessor::IsByte
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 4
    functionsReached:
    - RET_CHECK_OR_RETURN_DEFAULT
    - sentencepiece::SentencePieceProcessor::IsByte
    linkageType: ''
    returnType: bool
    signature: bool SentencePieceProcessor::IsByte(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1094
    functionName: sentencepiece::SentencePieceProcessor::unk_id
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SentencePieceProcessor::unk_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1096
    functionName: sentencepiece::SentencePieceProcessor::bos_id
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SentencePieceProcessor::bos_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1098
    functionName: sentencepiece::SentencePieceProcessor::eos_id
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SentencePieceProcessor::eos_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1100
    functionName: sentencepiece::SentencePieceProcessor::pad_id
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SentencePieceProcessor::pad_id() const
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: std::reverse
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1109,1
    - Dst: T*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1109,1
    - Dst: T*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1110,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1112,1
    - Dst: T*::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1112,1
    - Dst: T*::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1112,1
    - Dst: sentencepiece::SentencePieceProcessor::eos_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1116,1
    - Dst: T*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1118,1
    - Dst: auto*::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1119,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1120,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1120,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1121,1
    - Dst: auto*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1122,1
    - Dst: T*::text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1122,1
    - Dst: auto*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1123,1
    - Dst: T*::text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1123,1
    - Dst: T*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1127,1
    - Dst: T*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1129,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1129,1
    - Dst: sentencepiece::SentencePieceProcessor::bos_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1135,1
    - Dst: T*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1137,1
    - Dst: auto*::Add
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1138,1
    - Dst: auto*::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1139,1
    - Dst: auto*::SwapElements
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1140,1
    - Dst: auto*::Mutable
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1142,1
    - Dst: auto*::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1143,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1144,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1144,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1145,1
    - Dst: auto*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1146,1
    - Dst: auto*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1147,1
    - Dst: T*::emplace
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1151,1
    - Dst: T*::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1151,1
    - Dst: T*::emplace
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1153,1
    - Dst: T*::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1153,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1153,1
    - Dst: T*::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1160,1
    - Dst: T*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1161,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1162,1
    - Dst: auto*::id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1162,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1163,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1163,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1164,1
    - Dst: T*::Clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1171,1
    - Dst: T*::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1173,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1175,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1178,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 2
    argNames:
    - extra_options
    - output
    argTypes:
    - absl::Span<const ExtraOption>
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1179
    functionName: sentencepiece::SentencePieceProcessor::ApplyExtraOptions
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - eos_piece
    - auto*::SwapElements
    - auto*::set_begin
    - auto*::set_end
    - T*::emplace
    - auto*::set_piece
    - bos_piece
    - T*::end
    - sentencepiece::SentencePieceProcessor::bos_id
    - T*::clear
    - T*::emplace_back
    - sentencepiece::SentencePieceProcessor::eos_id
    - T*::mutable_pieces
    - std::reverse
    - auto*::Add
    - T*::begin
    - T*::pieces_size
    - unk_piece
    - auto*::Mutable
    - auto*::size
    - absl::InternalError
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - T*::text
    - auto*::id
    - T*::add_pieces
    - auto*::set_id
    - T*::Clear
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::ApplyExtraOptions(\n    absl::Span<const
      ExtraOption> extra_options, T* output) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1186
    functionName: sentencepiece::SentencePieceProcessor::HasUnkPieceOption
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SentencePieceProcessor::HasUnkPieceOption() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1192,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1192,1
    - Dst: std::vector<SentencePieceProcessor::ExtraOption>*::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1194,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1195,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1195,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1197,1
    - Dst: sentencepiece::SentencePieceProcessor::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1197,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1205,1
    - Dst: std::map::find
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1206,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1207,1
    - Dst: std::map::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1207,1
    - Dst: std::vector<SentencePieceProcessor::ExtraOption>*::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1209,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1212,1
    - Dst: sentencepiece::SentencePieceProcessor::bos_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1212,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1213,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1216,1
    - Dst: sentencepiece::SentencePieceProcessor::eos_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1216,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1217,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - _extra_option
    - extra_options
    argTypes:
    - absl::string_view
    - std::vector<SentencePieceProcessor::ExtraOption>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1221
    functionName: sentencepiece::SentencePieceProcessor::ParseExtraOptions
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - sentencepiece::SentencePieceProcessor::status
    - std::map::find
    - eos_piece
    - std::vector<SentencePieceProcessor::ExtraOption>*::clear
    - absl::string_view::empty
    - std::map::end
    - RET_CHECK
    - sentencepiece::SentencePieceProcessor::bos_id
    - absl::string_view::size
    - absl::StrSplit
    - sentencepiece::SentencePieceProcessor::eos_id
    - absl::string_view::data
    - RETURN_IF_ERROR
    - std::vector<SentencePieceProcessor::ExtraOption>*::push_back
    - bos_piece
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::ParseExtraOptions(\n    absl::string_view
      _extra_option,\n    std::vector<SentencePieceProcessor::ExtraOption>* extra_options)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - std::unique_ptr<ModelInterface>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1225
    functionName: sentencepiece::SentencePieceProcessor::SetModel
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SentencePieceProcessor::SetModel(std::unique_ptr<ModelInterface>&&
      model)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' normalizer'
    argTypes:
    - std::unique_ptr<normalizer::Normalizer>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1230
    functionName: sentencepiece::SentencePieceProcessor::SetNormalizer
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void SentencePieceProcessor::SetNormalizer(\n    std::unique_ptr<normalizer::Normalizer>&&
      normalizer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1234
    functionName: '& SentencePieceProcessor::model_proto() const'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto & SentencePieceProcessor::model_proto() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1238
    functionName: sentencepiece::SentencePieceProcessor::serialized_model_proto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached:
    - SerializeAsString
    linkageType: ''
    returnType: std::string
    signature: std::string SentencePieceProcessor::serialized_model_proto() const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_STL
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1249,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1251,1
    - Dst: std::vector<T>*::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1252,1
    - Dst: sentencepiece::SentencePieceProcessor::ApplyExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1253,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1257,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1258,1
    - Dst: sentencepiece::SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1259,1
    - Dst: ByteFallbackEnabled
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1260,1
    - Dst: sentencepiece::SentencePieceProcessor::HasUnkPieceOption
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1261,1
    - Dst: std::vector<T>*::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1263,1
    - Dst: std::vector<T>*::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1264,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1264,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1268,1
    - Dst: first::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1268,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1270,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1272,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1274,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1274,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1274,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1278,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1280,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1283,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1283,1
    - Dst: static_cast<uint8_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1283,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1284,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1286,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1286,1
    - Dst: static_cast<uint8_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1286,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1293,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1296,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1296,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1298,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1298,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1298,1
    - Dst: std::vector<T>*::back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1304,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1304,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1304,1
    - Dst: sentencepiece::SentencePieceProcessor::ApplyExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1313,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - absl::string_view
    - std::vector<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1247
    functionDepth: 3
    functionLinenumber: 1247
    functionLinenumberEnd: 1314
    functionName: sentencepiece::SentencePieceProcessor::EncodeOptimized
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::SentencePieceProcessor::ApplyExtraOptions
    - absl::string_view::empty
    - std::vector<T>*::back
    - first::empty
    - EncodeResult::size
    - std::vector<T>*::clear
    - sentencepiece::SentencePieceProcessor::PieceToId
    - ByteFallbackEnabled
    - static_cast<uint8_t>
    - unk_piece
    - ByteToPiece
    - sentencepiece::SentencePieceProcessor::HasUnkPieceOption
    - std::vector<T>*::reserve
    - RET_CHECK
    - std::vector<T>*::emplace_back
    - absl::string_view::data
    - absl::string_view::size
    - RET_CHECK_STATUS_STL
    - sentencepiece::SentencePieceProcessor::Normalize
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - sentencepiece::SentencePieceProcessor::Encode
    - sentencepiece::SentencePieceProcessor::IsControl
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::EncodeOptimized(\n    absl::string_view
      input, std::vector<T>* output) const"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_STL
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1319,1
    - Dst: absl::Span<const T>::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1321,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1322,1
    - Dst: empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1333,1
    - Dst: std::vector::assign
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1334,1
    - Dst: absl::Span<const T>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1334,1
    - Dst: absl::Span<const T>::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1334,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1335,1
    - Dst: sentencepiece::SentencePieceProcessor::ApplyExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1335,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1340,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1341,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1346,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1346,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1348,1
    - Dst: sentencepiece::string_util::IsValidDecodeUTF8
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1351,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1352,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1354,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1355,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1358,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1359,1
    - Dst: std::string::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1363,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1364,1
    - Dst: sentencepiece::SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1373,1
    - Dst: absl::Status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1374,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1375,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1377,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1380,1
    - Dst: sentencepiece::SentencePieceProcessor::IsByte
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1383,1
    - Dst: PieceToByte
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1384,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1385,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1386,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1388,1
    - Dst: ProcessByteQueue
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1388,1
    - Dst: std::string*::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1389,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1393,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1402,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1403,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1404,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1406,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1411,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1412,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1413,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1415,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1418,1
    - Dst: absl::StrReplaceAll
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1419,1
    - Dst: std::string*::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1422,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1427,1
    - Dst: ProcessByteQueue
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1427,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1430,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1433,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 2
    argNames:
    - input
    - detokenized
    argTypes:
    - absl::Span<const T>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1317
    functionDepth: 3
    functionLinenumber: 1317
    functionLinenumberEnd: 1434
    functionName: sentencepiece::SentencePieceProcessor::DecodeOptimized
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 3
    functionsReached:
    - absl::OkStatus
    - absl::Status
    - absl::StrReplaceAll
    - sentencepiece::SentencePieceProcessor::ApplyExtraOptions
    - RET_CHECK_LE
    - RET_CHECK_EQ
    - absl::StrCat
    - std::string::size
    - absl::Span<const T>::begin
    - absl::ConsumePrefix
    - empty
    - IdToPiece
    - absl::Span<const T>::empty
    - sentencepiece::string_util::IsValidDecodeUTF8
    - absl::string_view
    - std::string::clear
    - ProcessByteQueue
    - sentencepiece::SentencePieceProcessor::PieceToId
    - sentencepiece::SentencePieceProcessor::GetPieceSize
    - absl::StrAppend
    - std::vector::assign
    - absl::Span<const T>::end
    - normalizer_spec
    - sentencepiece::SentencePieceProcessor::IsByte
    - std::string*::empty
    - RET_CHECK_STATUS_STL
    - sentencepiece::SentencePieceProcessor::Normalize
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - PieceToByte
    - std::string::empty
    - trainer_spec
    - sentencepiece::SentencePieceProcessor::IsControl
    - std::string::append
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::DecodeOptimized(\n    absl::Span<const
      T> input, std::string* detokenized) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1439,1
    - Dst: absl::NotFoundError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1440,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1443,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1444,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1444,1
    - Dst: auto::ReadAll
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1446,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1447,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1447,1
    - Dst: ModelProto*::ParseFromArray
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1449,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1449,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1449,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1450,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1451,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - filename
    - model_proto
    argTypes:
    - absl::string_view
    - ModelProto*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1455
    functionName: sentencepiece::io::LoadModelProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached:
    - absl::OkStatus
    - std::string::data
    - auto::ReadAll
    - absl::string_view::empty
    - auto::status
    - absl::StrCat
    - ModelProto*::ParseFromArray
    - std::string::size
    - absl::NotFoundError
    - sentencepiece::filesystem::NewReadableFile
    - RETURN_IF_ERROR
    - absl::InternalError
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status LoadModelProto(absl::string_view filename,\n                            ModelProto*
      model_proto)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1459,1
    - Dst: absl::NotFoundError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1460,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1462,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1463,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1463,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1464,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1464,1
    - Dst: SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1464,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - ' model_proto'
    argTypes:
    - absl::string_view
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1467
    functionName: sentencepiece::io::SaveModelProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - SerializeAsString
    - absl::string_view::empty
    - auto::status
    - auto::Write
    - absl::NotFoundError
    - RET_CHECK
    - RETURN_IF_ERROR
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SaveModelProto(absl::string_view filename,\n                            const
      ModelProto& model_proto)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1439,1
    - Dst: absl::NotFoundError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1440,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1443,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1444,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1444,1
    - Dst: auto::ReadAll
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1446,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1447,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1447,1
    - Dst: ModelProto*::ParseFromArray
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1449,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1449,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1449,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1450,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1451,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - filename
    - model_proto
    argTypes:
    - absl::string_view
    - ModelProto*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1455
    functionName: sentencepiece::io::LoadModelProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached:
    - absl::OkStatus
    - std::string::data
    - auto::ReadAll
    - absl::string_view::empty
    - auto::status
    - absl::StrCat
    - ModelProto*::ParseFromArray
    - std::string::size
    - absl::NotFoundError
    - sentencepiece::filesystem::NewReadableFile
    - RETURN_IF_ERROR
    - absl::InternalError
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status LoadModelProto(absl::string_view filename,\n                            ModelProto*
      model_proto)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1459,1
    - Dst: absl::NotFoundError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1460,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1462,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1463,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1463,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1464,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1464,1
    - Dst: SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1464,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - ' model_proto'
    argTypes:
    - absl::string_view
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1467
    functionName: sentencepiece::io::SaveModelProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - SerializeAsString
    - absl::string_view::empty
    - auto::status
    - auto::Write
    - absl::NotFoundError
    - RET_CHECK
    - RETURN_IF_ERROR
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SaveModelProto(absl::string_view filename,\n                            const
      ModelProto& model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: sentencepiece::SentencePieceProcessor::SentencePieceProcessor
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SentencePieceProcessor::SentencePieceProcessor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: SentencePieceProcessor::~SentencePieceProcessor()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SentencePieceProcessor::~SentencePieceProcessor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:77,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:78,1
    - Dst: sentencepiece::io::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:78,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:78,1
    - Dst: sentencepiece::SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:79,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: sentencepiece::SentencePieceProcessor::Load
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 5
    functionsReached:
    - auto::get
    - sentencepiece::io::LoadModelProto
    - std::make_unique<ModelProto>
    - sentencepiece::SentencePieceProcessor::Load
    - std::move
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status SentencePieceProcessor::Load(absl::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:83,1
    - Dst: sentencepiece::SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: sentencepiece::SentencePieceProcessor::LoadOrDie
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::Load
    - CHECK_OK
    linkageType: ''
    returnType: void
    signature: void SentencePieceProcessor::LoadOrDie(absl::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:87,1
    - Dst: sentencepiece::SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:89,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: sentencepiece::SentencePieceProcessor::Load
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 7
    functionsReached:
    - sentencepiece::SentencePieceProcessor::Load
    - std::make_unique<ModelProto>
    - std::move
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status SentencePieceProcessor::Load(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:94,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:95,1
    - Dst: auto::ParseFromArray
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:95,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:95,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:95,1
    - Dst: sentencepiece::SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:96,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - serialized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: sentencepiece::SentencePieceProcessor::LoadFromSerializedProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached:
    - std::make_unique<ModelProto>
    - sentencepiece::SentencePieceProcessor::Load
    - std::move
    - absl::string_view::size
    - RET_CHECK
    - absl::string_view::data
    - auto::ParseFromArray
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::LoadFromSerializedProto(\n    absl::string_view
      serialized)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:101,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:102,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:103,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:104,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:104,1
    - Dst: has_denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:105,1
    - Dst: denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:106,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:107,1
    - Dst: denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:108,1
    - Dst: SetPrefixMatcher
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:112,1
    - Dst: prefix_matcher
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:112,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:114,1
    - Dst: sentencepiece::SentencePieceProcessor::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:114,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:118,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:118,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:119,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:121,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:121,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:122,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:124,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:124,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:125,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:127,1
    - Dst: pad_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:127,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:128,1
    - Dst: self_test_data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:132,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:133,1
    - Dst: sentencepiece::SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:133,1
    - Dst: input
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:133,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:134,1
    - Dst: VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:135,1
    - Dst: expected
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:135,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:136,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:137,1
    - Dst: input
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:137,1
    - Dst: expected
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:137,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:141,1
    - Dst: LOG
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:142,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:142,1
    - Dst: self_test_data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:143,1
    - Dst: LOG
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:146,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:148,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:151,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - model_proto
    argTypes:
    - std::unique_ptr<ModelProto>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 152
    functionName: sentencepiece::SentencePieceProcessor::Load
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 8
    functionsReached:
    - absl::OkStatus
    - sentencepiece::ModelFactory::Create
    - eos_piece
    - absl::StrJoin
    - absl::StrCat
    - std::move
    - std::vector::size
    - std::make_unique<normalizer::Normalizer>
    - expected
    - denormalizer_spec
    - bos_piece
    - sentencepiece::SentencePieceProcessor::status
    - pad_piece
    - std::vector::empty
    - LOG
    - input
    - VerifyOutputsEquivalent
    - sentencepiece::SentencePieceProcessor::PieceToId
    - std::vector::emplace_back
    - unk_piece
    - normalizer_spec
    - self_test_data
    - absl::InternalError
    - has_denormalizer_spec
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - SetPrefixMatcher
    - sentencepiece::SentencePieceProcessor::Encode
    - trainer_spec
    - sentencepiece::SentencePieceProcessor::IsControl
    - prefix_matcher
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Load(\n    std::unique_ptr<ModelProto>
      model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::ParseExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - extra_options
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: sentencepiece::SentencePieceProcessor::SetEncodeExtraOptions
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::ParseExtraOptions
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::SetEncodeExtraOptions(\n    absl::string_view
      extra_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::ParseExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - extra_options
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 3
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: sentencepiece::SentencePieceProcessor::SetDecodeExtraOptions
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::ParseExtraOptions
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::SetDecodeExtraOptions(\n    absl::string_view
      extra_options)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:165,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:166,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:167,1
    - Dst: sentencepiece::SentencePieceProcessor::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:167,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:168,1
    - Dst: sentencepiece::SentencePieceProcessor::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:168,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 170
    functionName: sentencepiece::SentencePieceProcessor::status
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 5
    functionsReached:
    - absl::OkStatus
    - sentencepiece::SentencePieceProcessor::status
    - RETURN_IF_ERROR
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status SentencePieceProcessor::status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - container
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: RET_CHECK_STATUS_STL
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_STATUS_STL(container)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - proto
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: RET_CHECK_STATUS_PROTO
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_STATUS_PROTO(proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::EncodeOptimized
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - pieces
    argTypes:
    - absl::string_view
    - std::vector<std::string>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 4
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: sentencepiece::SentencePieceProcessor::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 7
    functionsReached:
    - sentencepiece::SentencePieceProcessor::EncodeOptimized
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Encode(\n    absl::string_view
      input, std::vector<std::string>* pieces) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::EncodeOptimized
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - ids
    argTypes:
    - absl::string_view
    - std::vector<int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: sentencepiece::SentencePieceProcessor::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 7
    functionsReached:
    - sentencepiece::SentencePieceProcessor::EncodeOptimized
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Encode(absl::string_view input,\n
      \                                           std::vector<int>* ids) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const std::string>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:196,1
    - Dst: absl::Span<const std::string>::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:196,1
    - Dst: sentencepiece::SentencePieceProcessor::DecodeOptimized
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pieces
    - detokenized
    argTypes:
    - absl::Span<const std::string>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 4
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: sentencepiece::SentencePieceProcessor::Decode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - absl::Span<const std::string>::begin
    - sentencepiece::SentencePieceProcessor::DecodeOptimized
    - absl::Span<const std::string>::end
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Decode(\n    absl::Span<const
      std::string> pieces, std::string* detokenized) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::DecodeOptimized
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pieces
    - detokenized
    argTypes:
    - absl::Span<const absl::string_view>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 200
    functionDepth: 4
    functionLinenumber: 200
    functionLinenumberEnd: 204
    functionName: sentencepiece::SentencePieceProcessor::Decode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::SentencePieceProcessor::DecodeOptimized
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Decode(\n    absl::Span<const
      absl::string_view> pieces,\n    std::string* detokenized) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::DecodeOptimized
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ids
    - detokenized
    argTypes:
    - absl::Span<const int>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 4
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: sentencepiece::SentencePieceProcessor::Decode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::SentencePieceProcessor::DecodeOptimized
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Decode(absl::Span<const int>
      ids,\n                                            std::string* detokenized)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_STL
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:214,1
    - Dst: Arena::Create<NBestSentencePieceText>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:217,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:218,1
    - Dst: sentencepiece::SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:218,1
    - Dst: std::vector<std::vector<std::string>>*::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:219,1
    - Dst: auto*::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:219,1
    - Dst: auto*::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:220,1
    - Dst: std::vector<std::vector<std::string>>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:221,1
    - Dst: reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:222,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:222,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:223,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:224,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:224,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:228,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - input
    - nbest_size
    - pieces
    argTypes:
    - absl::string_view
    - int
    - std::vector<std::vector<std::string>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 229
    functionName: sentencepiece::SentencePieceProcessor::NBestEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 6
    functionsReached:
    - absl::OkStatus
    - RET_CHECK_STATUS_STL
    - sentencepiece::SentencePieceProcessor::NBestEncode
    - auto*::nbests
    - std::vector<std::vector<std::string>>*::emplace_back
    - piece
    - emplace_back
    - std::vector<std::vector<std::string>>*::reserve
    - reserve
    - pieces
    - RETURN_IF_ERROR
    - Arena::Create<NBestSentencePieceText>
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::NBestEncode(\n    absl::string_view
      input, int nbest_size,\n    std::vector<std::vector<std::string>>* pieces) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_STL
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:234,1
    - Dst: Arena::Create<NBestSentencePieceText>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:237,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:238,1
    - Dst: sentencepiece::SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:238,1
    - Dst: std::vector<std::vector<int>>*::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:239,1
    - Dst: auto*::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:239,1
    - Dst: auto*::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:240,1
    - Dst: std::vector<std::vector<int>>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:241,1
    - Dst: reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:242,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:242,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:243,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:244,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:244,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - input
    - nbest_size
    - ids
    argTypes:
    - absl::string_view
    - int
    - std::vector<std::vector<int>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 249
    functionName: sentencepiece::SentencePieceProcessor::NBestEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 7
    functionsReached:
    - absl::OkStatus
    - RET_CHECK_STATUS_STL
    - sentencepiece::SentencePieceProcessor::NBestEncode
    - auto*::nbests
    - std::vector<std::vector<int>>*::reserve
    - std::vector<std::vector<int>>*::emplace_back
    - emplace_back
    - id
    - reserve
    - pieces
    - RETURN_IF_ERROR
    - Arena::Create<NBestSentencePieceText>
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::NBestEncode(\n    absl::string_view
      input, int nbest_size,\n    std::vector<std::vector<int>>* ids) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_STL
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:254,1
    - Dst: Arena::Create<SentencePieceText>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:257,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:258,1
    - Dst: sentencepiece::SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:258,1
    - Dst: std::vector<std::string>*::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:259,1
    - Dst: auto*::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:259,1
    - Dst: auto*::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:260,1
    - Dst: std::vector<std::string>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:261,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:261,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - input
    - nbest_size
    - alpha
    - pieces
    argTypes:
    - absl::string_view
    - int
    - float
    - std::vector<std::string>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 265
    functionName: sentencepiece::SentencePieceProcessor::SampleEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 5
    functionsReached:
    - absl::OkStatus
    - RET_CHECK_STATUS_STL
    - sentencepiece::SentencePieceProcessor::SampleEncode
    - std::vector<std::string>*::reserve
    - piece
    - auto*::pieces
    - Arena::Create<SentencePieceText>
    - std::vector<std::string>*::emplace_back
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::SampleEncode(\n    absl::string_view
      input, int nbest_size, float alpha,\n    std::vector<std::string>* pieces) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_STL
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:270,1
    - Dst: Arena::Create<SentencePieceText>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:273,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:274,1
    - Dst: sentencepiece::SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:274,1
    - Dst: auto*::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:275,1
    - Dst: std::vector<int>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:276,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:276,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - input
    - nbest_size
    - alpha
    - ids
    argTypes:
    - absl::string_view
    - int
    - float
    - std::vector<int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 280
    functionName: sentencepiece::SentencePieceProcessor::SampleEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 6
    functionsReached:
    - absl::OkStatus
    - RET_CHECK_STATUS_STL
    - sentencepiece::SentencePieceProcessor::SampleEncode
    - auto*::pieces
    - Arena::Create<SentencePieceText>
    - id
    - std::vector<int>*::emplace_back
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::SampleEncode(absl::string_view
      input,\n                                                  int nbest_size, float
      alpha,\n                                                  std::vector<int>*
      ids) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:293,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:293,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:295,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:297,1
    - Dst: SentencePieceText*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:299,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:300,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:300,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:300,1
    - Dst: auto*::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:301,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:302,1
    - Dst: auto*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:304,1
    - Dst: auto*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:305,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:308,1
    - Dst: RET_CHECK_LT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:309,1
    - Dst: absl::Span<const size_t>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:309,1
    - Dst: RET_CHECK_LT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:310,1
    - Dst: absl::Span<const size_t>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:310,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:311,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:312,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:315,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:315,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:316,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:316,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:317,1
    - Dst: absl::ClippedSubstr
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:319,1
    - Dst: ByteFallbackEnabled
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:321,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:323,1
    - Dst: static_cast<uint8_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:325,1
    - Dst: SentencePieceText*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:326,1
    - Dst: SentencePieceText::SentencePiece*::mutable_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:327,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:328,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:329,1
    - Dst: SentencePieceText::SentencePiece*::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:330,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:334,1
    - Dst: SentencePieceText::SentencePiece*::set_surface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:335,1
    - Dst: auto::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:335,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:335,1
    - Dst: SentencePieceText::SentencePiece*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:336,1
    - Dst: SentencePieceText::SentencePiece*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:337,1
    - Dst: SentencePieceText::SentencePiece*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:340,1
    - Dst: SentencePieceText::SentencePiece*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:341,1
    - Dst: SentencePieceText*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:350,1
    - Dst: SentencePieceText*::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:350,1
    - Dst: auto*::mutable_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:351,1
    - Dst: auto*::mutable_surface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:352,1
    - Dst: auto*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:353,1
    - Dst: SentencePieceText*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:355,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:356,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:356,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:356,1
    - Dst: auto*::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:357,1
    - Dst: auto*::set_surface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:358,1
    - Dst: auto::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:358,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:358,1
    - Dst: auto*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:359,1
    - Dst: auto*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:360,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:363,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:368,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:368,1
    - Dst: SentencePieceText*::set_text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:371,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:371,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:371,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:373,1
    - Dst: sentencepiece::SentencePieceProcessor::ApplyExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:373,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:375,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 53
    argCount: 7
    argNames:
    - input
    - normalized
    - norm_to_orig
    - ' result'
    - spt
    - skip_surface
    - input_start_offset
    argTypes:
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    - EncodeResult
    - SentencePieceText*
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 282
    functionDepth: 3
    functionLinenumber: 282
    functionLinenumberEnd: 376
    functionName: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 4
    functionsReached:
    - absl::OkStatus
    - auto*::set_surface
    - RET_CHECK_GE
    - SentencePieceText::SentencePiece*::mutable_piece
    - SentencePieceText::SentencePiece*::set_id
    - auto::size
    - absl::string_view::empty
    - RET_CHECK_LE
    - RET_CHECK_EQ
    - sentencepiece::SentencePieceProcessor::ApplyExtraOptions
    - auto*::set_begin
    - SentencePieceText*::pieces_size
    - auto*::set_end
    - RET_CHECK_LT
    - auto*::set_piece
    - SentencePieceText::SentencePiece*::set_end
    - sentencepiece::SentencePieceProcessor::PieceToId
    - ByteFallbackEnabled
    - auto::data
    - static_cast<uint8_t>
    - ByteToPiece
    - SentencePieceText*::mutable_pieces
    - absl::ClippedSubstr
    - absl::string_view::size
    - RET_CHECK
    - absl::string_view::data
    - SentencePieceText*::set_text
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - auto*::mutable_surface
    - auto*::mutable_piece
    - absl::Span<const size_t>::size
    - SentencePieceText::SentencePiece*::set_surface
    - SentencePieceText*::add_pieces
    - sentencepiece::SentencePieceProcessor::IsControl
    - SentencePieceText::SentencePiece*::set_begin
    - RETURN_IF_ERROR
    - auto*::set_id
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::PopulateSentencePieceText(\n
      \   absl::string_view input, absl::string_view normalized,\n    absl::Span<const
      size_t> norm_to_orig, const EncodeResult& result,\n    SentencePieceText* spt,
      bool skip_surface,\n    size_t input_start_offset) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_PROTO
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:380,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:384,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:384,1
    - Dst: sentencepiece::SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:386,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:387,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:388,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - input
    - spt
    argTypes:
    - absl::string_view
    - SentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 391
    functionName: sentencepiece::SentencePieceProcessor::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 8
    functionsReached:
    - sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
    - absl::OkStatus
    - sentencepiece::SentencePieceProcessor::Normalize
    - sentencepiece::SentencePieceProcessor::Encode
    - RET_CHECK_STATUS_PROTO
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Encode(absl::string_view input,\n
      \                                           SentencePieceText* spt) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_PROTO
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:396,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:398,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:403,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:403,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:405,1
    - Dst: IsNBestEncodeAvailable
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:405,1
    - Dst: sentencepiece::SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:408,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:409,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:409,1
    - Dst: NBestSentencePieceText*::add_nbests
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:412,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:413,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:414,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:414,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - input
    - nbest_size
    - nbest_spt
    argTypes:
    - absl::string_view
    - int
    - NBestSentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 419
    functionName: sentencepiece::SentencePieceProcessor::NBestEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 8
    functionsReached:
    - IsNBestEncodeAvailable
    - sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
    - sentencepiece::SentencePieceProcessor::NBestEncode
    - sentencepiece::SentencePieceProcessor::Normalize
    - absl::OkStatus
    - auto::empty
    - RET_CHECK_LE
    - NBestSentencePieceText*::add_nbests
    - RET_CHECK
    - RET_CHECK_STATUS_PROTO
    - RETURN_IF_ERROR
    - auto*::set_score
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::NBestEncode(\n    absl::string_view
      input, int nbest_size,\n    NBestSentencePieceText* nbest_spt) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_PROTO
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:424,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:426,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:426,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:427,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:428,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:433,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:433,1
    - Dst: IsNBestEncodeAvailable
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:435,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:436,1
    - Dst: IsSampleEncodeAvailable
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:436,1
    - Dst: sentencepiece::SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:438,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:439,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:439,1
    - Dst: sentencepiece::SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:442,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:443,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:443,1
    - Dst: sentencepiece::SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:446,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:447,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:447,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:450,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:450,1
    - Dst: std::transform
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:451,1
    - Dst: auto::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:451,1
    - Dst: auto::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:451,1
    - Dst: std::back_inserter
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:451,1
    - Dst: sentencepiece::log_domain::LogSum
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:454,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:456,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:456,1
    - Dst: std::transform
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:457,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:458,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:458,1
    - Dst: std::back_inserter
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:458,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:459,1
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:461,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:462,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:462,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:463,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:463,1
    - Dst: dist
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:464,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:467,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - input
    - nbest_size
    - alpha
    - spt
    argTypes:
    - absl::string_view
    - int
    - float
    - SentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 468
    functionName: sentencepiece::SentencePieceProcessor::SampleEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 7
    functionsReached:
    - IsNBestEncodeAvailable
    - sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
    - sentencepiece::SentencePieceProcessor::NBestEncode
    - sentencepiece::SentencePieceProcessor::SampleEncode
    - RET_CHECK_GE
    - auto::size
    - auto::end
    - absl::OkStatus
    - RET_CHECK_LE
    - std::vector::size
    - std::transform
    - IsSampleEncodeAvailable
    - RET_CHECK_STATUS_PROTO
    - std::isnan
    - std::back_inserter
    - std::exp
    - std::vector::reserve
    - sentencepiece::log_domain::LogSum
    - RET_CHECK
    - std::vector::begin
    - sentencepiece::SentencePieceProcessor::Normalize
    - dist
    - auto::empty
    - std::vector::end
    - sentencepiece::random::GetRandomGenerator
    - sentencepiece::SentencePieceProcessor::Encode
    - auto::begin
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::SampleEncode(\n    absl::string_view
      input, int nbest_size, float alpha,\n    SentencePieceText* spt) const"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_PROTO
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:472,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:475,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:476,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:485,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:486,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:487,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:488,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:489,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:489,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:491,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:491,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:499,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:500,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:503,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:506,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:512,1
    - Dst: absl::StrReplaceAll
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:512,1
    - Dst: SentencePieceText*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:516,1
    - Dst: absl::Span<const absl::string_view>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:516,1
    - Dst: SentencePieceText*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:518,1
    - Dst: auto*::mutable_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:519,1
    - Dst: data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:519,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:519,1
    - Dst: auto*::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:520,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:520,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:523,1
    - Dst: sentencepiece::SentencePieceProcessor::ApplyExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:523,1
    - Dst: SentencePieceText*::mutable_text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:525,1
    - Dst: SentencePieceText*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:527,1
    - Dst: auto*::set_surface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:528,1
    - Dst: data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:528,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:528,1
    - Dst: auto*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:529,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:529,1
    - Dst: auto*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:530,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:530,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:530,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:531,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:537,1
    - Dst: SentencePieceText*::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:543,1
    - Dst: PieceToByte
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:544,1
    - Dst: auto*::piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:544,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:545,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:546,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:551,1
    - Dst: sentencepiece::string_util::IsValidDecodeUTF8
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:555,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:556,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:564,1
    - Dst: SetSurface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:565,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:568,1
    - Dst: SetSurface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:574,1
    - Dst: SetSurface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:576,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:582,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:584,1
    - Dst: SentencePieceText*::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:592,1
    - Dst: SentencePieceText*::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:593,1
    - Dst: sentencepiece::SentencePieceProcessor::IsByte
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:594,1
    - Dst: auto*::id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:594,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:595,1
    - Dst: ProcessBytePieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:595,1
    - Dst: std::string*::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:598,1
    - Dst: std::tie
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:601,1
    - Dst: DecodeSentencePiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:602,1
    - Dst: auto*::piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:602,1
    - Dst: auto*::id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:602,1
    - Dst: SetSurface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:604,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:607,1
    - Dst: ProcessBytePieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:607,1
    - Dst: SentencePieceText*::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:607,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:610,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:613,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 72
    argCount: 2
    argNames:
    - pieces
    - spt
    argTypes:
    - absl::Span<const absl::string_view>
    - SentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 614
    functionName: sentencepiece::SentencePieceProcessor::Decode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - auto*::set_surface
    - absl::StrReplaceAll
    - sentencepiece::SentencePieceProcessor::ApplyExtraOptions
    - std::string*::size
    - RET_CHECK_LE
    - RET_CHECK_EQ
    - std::string::size
    - absl::ConsumePrefix
    - auto*::set_begin
    - SentencePieceText*::pieces_size
    - auto*::set_end
    - RET_CHECK_STATUS_PROTO
    - data
    - IdToPiece
    - auto*::piece
    - std::tie
    - size
    - sentencepiece::string_util::IsValidDecodeUTF8
    - absl::string_view
    - sentencepiece::SentencePieceProcessor::PieceToId
    - std::string
    - absl::StrAppend
    - absl::Span<const absl::string_view>::size
    - ProcessBytePieces
    - normalizer_spec
    - SentencePieceText*::mutable_pieces
    - sentencepiece::SentencePieceProcessor::IsByte
    - std::string*::empty
    - DecodeSentencePiece
    - std::make_pair
    - sentencepiece::SentencePieceProcessor::Normalize
    - SentencePieceText*::mutable_text
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - auto*::mutable_piece
    - PieceToByte
    - SetSurface
    - auto*::id
    - trainer_spec
    - SentencePieceText*::add_pieces
    - SentencePieceText*::pieces
    - sentencepiece::SentencePieceProcessor::IsControl
    - std::string::append
    - RETURN_IF_ERROR
    - auto*::set_id
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Decode(\n    absl::Span<const
      absl::string_view> pieces, SentencePieceText* spt) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:619,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:620,1
    - Dst: absl::Span<const int>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:620,1
    - Dst: absl::Status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:623,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:624,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:626,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:626,1
    - Dst: sentencepiece::SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:628,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ids
    - spt
    argTypes:
    - absl::Span<const int>
    - SentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 629
    functionName: sentencepiece::SentencePieceProcessor::Decode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::SentencePieceProcessor::Decode
    - absl::Status
    - IdToPiece
    - std::vector::emplace_back
    - absl::StrCat
    - std::vector::reserve
    - sentencepiece::SentencePieceProcessor::GetPieceSize
    - absl::Span<const int>::size
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Decode(absl::Span<const int>
      ids,\n                                            SentencePieceText* spt) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:640,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:640,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:642,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' input_unicode'
    - ' utf8_offsets'
    - chunk_len
    - i
    - overlap
    - ' chunk_boundaries'
    argTypes:
    - string_util::UnicodeText
    - std::vector<uint32_t>
    - size_t
    - size_t
    - size_t
    - std::tuple<size_t, size_t, size_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 647
    functionName: sentencepiece::GetIthChunkBoundaries
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - size
    - std::min<size_t>
    linkageType: ''
    returnType: void
    signature: "void GetIthChunkBoundaries(\n    const string_util::UnicodeText& input_unicode,\n
      \   const std::vector<uint32_t>& utf8_offsets, const size_t chunk_len,\n    const
      size_t i, const size_t overlap,\n    std::tuple<size_t, size_t, size_t>& chunk_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:656,1
    - Dst: std::get<2>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:657,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:658,1
    - Dst: std::lower_bound
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:661,1
    - Dst: absl::Span<const size_t>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:661,1
    - Dst: absl::Span<const size_t>::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:661,1
    - Dst: absl::Span<const size_t>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:663,1
    - Dst: std::upper_bound
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:666,1
    - Dst: absl::Span<const size_t>::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:666,1
    - Dst: absl::Span<const size_t>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:668,1
    - Dst: absl::ClippedSubstr
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:670,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:673,1
    - Dst: absl::Span<const size_t>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:673,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:675,1
    - Dst: absl::Span<const size_t>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:675,1
    - Dst: absl::Span<const size_t>::subspan
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - input
    - normalized
    - norm_to_orig
    - ' chunk_boundaries'
    - ' input_chunk'
    - ' normalized_chunk'
    - ' norm_to_orig_chunk'
    argTypes:
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    - std::tuple<size_t, size_t, size_t>
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 678
    functionName: sentencepiece::GetChunkOfInput
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::substr
    - absl::Span<const size_t>::begin
    - absl::Span<const size_t>::subspan
    - absl::Span<const size_t>::size
    - std::upper_bound
    - std::lower_bound
    - absl::Span<const size_t>::end
    - absl::ClippedSubstr
    - std::get<0>
    - std::min<size_t>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: "void GetChunkOfInput(const absl::string_view input,\n                     const
      absl::string_view normalized,\n                     absl::Span<const size_t>
      norm_to_orig,\n                     const std::tuple<size_t, size_t, size_t>&
      chunk_boundaries,\n                     absl::string_view& input_chunk,\n                     absl::string_view&
      normalized_chunk,\n                     absl::Span<const size_t>& norm_to_orig_chunk)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:690,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:691,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:691,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:692,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:692,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:693,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:693,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:694,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:694,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:695,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:695,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:696,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:696,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:697,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:697,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:698,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:698,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:700,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:702,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:702,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 13
    argCount: 5
    argNames:
    - ' current_piece'
    - ' next_chunk'
    - chunk_len
    - unk_id
    - start_index_in_next_chunk
    argTypes:
    - SentencePieceText_SentencePiece
    - SentencePieceText
    - size_t
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 710
    functionName: sentencepiece::FindMatchingToken
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - end
    - static_cast<uint32_t>
    - begin
    - id
    - pieces
    linkageType: ''
    returnType: bool
    signature: "bool FindMatchingToken(const SentencePieceText_SentencePiece& current_piece,\n
      \                      const SentencePieceText& next_chunk, size_t chunk_len,\n
      \                      int unk_id, size_t* start_index_in_next_chunk)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:729,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:729,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:730,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:730,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:732,1
    - Dst: empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:737,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:738,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:738,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:748,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:749,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:755,1
    - Dst: std::get<1>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:757,1
    - Dst: std::get<2>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:759,1
    - Dst: GetChunkOfInput
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:768,1
    - Dst: Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:770,1
    - Dst: Create
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:771,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:772,1
    - Dst: populate_sentence_piece_text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:772,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:774,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:777,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:778,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:784,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:785,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:786,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:790,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:791,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 9
    argNames:
    - ' bad_joins'
    - input
    - normalized
    - norm_to_orig
    - ' arena'
    - ' model'
    - populate_sentence_piece_text
    - ' spt_chunks'
    - ' input_chunk_boundaries'
    argTypes:
    - std::vector<size_t>
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    - Arena
    - ModelInterface
    - "absl::FunctionRef<absl::Status(\n        absl::string_view input, absl::string_view
      normalized,\n        absl::Span<const size_t> norm_to_orig, const EncodeResult&
      result,\n        SentencePieceText* spt, size_t input_start_offset)>"
    - std::vector<SentencePieceText*>
    - std::vector<std::tuple<size_t, size_t, size_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 794
    functionName: "absl::Status ReparseBadRanges(\n    const std::vector<size_t>&
      bad_joins, const absl::string_view input,\n    const absl::string_view normalized,
      absl::Span<const size_t> norm_to_orig,\n    Arena& arena, const ModelInterface&
      model,\n    absl::FunctionRef<absl::Status(\n        absl::string_view input,
      absl::string_view normalized,\n        absl::Span<const size_t> norm_to_orig,
      const EncodeResult& result,\n        SentencePieceText* spt, size_t input_start_offset)>\n
      \       populate_sentence_piece_text,\n    std::vector<SentencePieceText*>&
      spt_chunks,\n    std::vector<std::tuple<size_t, size_t, size_t>>& input_chunk_boundaries)"
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - Encode
    - size
    - std::vector::emplace_back
    - std::get<1>
    - populate_sentence_piece_text
    - std::vector::push_back
    - std::vector::empty
    - std::move
    - empty
    - GetChunkOfInput
    - Create
    - std::get<0>
    - RETURN_IF_ERROR
    - std::make_pair
    - std::get<2>
    - std::vector::back
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_COLD
    signature: "ABSL_ATTRIBUTE_COLD absl::Status ReparseBadRanges(\n    const std::vector<size_t>&
      bad_joins, const absl::string_view input,\n    const absl::string_view normalized,
      absl::Span<const size_t> norm_to_orig,\n    Arena& arena, const ModelInterface&
      model,\n    absl::FunctionRef<absl::Status(\n        absl::string_view input,
      absl::string_view normalized,\n        absl::Span<const size_t> norm_to_orig,
      const EncodeResult& result,\n        SentencePieceText* spt, size_t input_start_offset)>\n
      \       populate_sentence_piece_text,\n    std::vector<SentencePieceText*>&
      spt_chunks,\n    std::vector<std::tuple<size_t, size_t, size_t>>& input_chunk_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:640,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:640,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:642,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ' input_unicode'
    - ' utf8_offsets'
    - chunk_len
    - i
    - overlap
    - ' chunk_boundaries'
    argTypes:
    - string_util::UnicodeText
    - std::vector<uint32_t>
    - size_t
    - size_t
    - size_t
    - std::tuple<size_t, size_t, size_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 633
    functionDepth: 0
    functionLinenumber: 633
    functionLinenumberEnd: 647
    functionName: sentencepiece::GetIthChunkBoundaries
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - size
    - std::min<size_t>
    linkageType: ''
    returnType: void
    signature: "void GetIthChunkBoundaries(\n    const string_util::UnicodeText& input_unicode,\n
      \   const std::vector<uint32_t>& utf8_offsets, const size_t chunk_len,\n    const
      size_t i, const size_t overlap,\n    std::tuple<size_t, size_t, size_t>& chunk_boundaries)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:656,1
    - Dst: std::get<2>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:657,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:658,1
    - Dst: std::lower_bound
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:661,1
    - Dst: absl::Span<const size_t>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:661,1
    - Dst: absl::Span<const size_t>::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:661,1
    - Dst: absl::Span<const size_t>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:663,1
    - Dst: std::upper_bound
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:666,1
    - Dst: absl::Span<const size_t>::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:666,1
    - Dst: absl::Span<const size_t>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:668,1
    - Dst: absl::ClippedSubstr
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:670,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:673,1
    - Dst: absl::Span<const size_t>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:673,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:675,1
    - Dst: absl::Span<const size_t>::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:675,1
    - Dst: absl::Span<const size_t>::subspan
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - input
    - normalized
    - norm_to_orig
    - ' chunk_boundaries'
    - ' input_chunk'
    - ' normalized_chunk'
    - ' norm_to_orig_chunk'
    argTypes:
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    - std::tuple<size_t, size_t, size_t>
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 678
    functionName: sentencepiece::GetChunkOfInput
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::substr
    - absl::Span<const size_t>::begin
    - absl::Span<const size_t>::subspan
    - absl::Span<const size_t>::size
    - std::upper_bound
    - std::lower_bound
    - absl::Span<const size_t>::end
    - absl::ClippedSubstr
    - std::get<0>
    - std::min<size_t>
    - std::get<2>
    linkageType: ''
    returnType: void
    signature: "void GetChunkOfInput(const absl::string_view input,\n                     const
      absl::string_view normalized,\n                     absl::Span<const size_t>
      norm_to_orig,\n                     const std::tuple<size_t, size_t, size_t>&
      chunk_boundaries,\n                     absl::string_view& input_chunk,\n                     absl::string_view&
      normalized_chunk,\n                     absl::Span<const size_t>& norm_to_orig_chunk)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:690,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:691,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:691,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:692,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:692,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:693,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:693,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:694,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:694,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:695,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:695,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:696,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:696,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:697,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:697,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:698,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:698,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:700,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:702,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:702,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 13
    argCount: 5
    argNames:
    - ' current_piece'
    - ' next_chunk'
    - chunk_len
    - unk_id
    - start_index_in_next_chunk
    argTypes:
    - SentencePieceText_SentencePiece
    - SentencePieceText
    - size_t
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 710
    functionName: sentencepiece::FindMatchingToken
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - end
    - static_cast<uint32_t>
    - begin
    - id
    - pieces
    linkageType: ''
    returnType: bool
    signature: "bool FindMatchingToken(const SentencePieceText_SentencePiece& current_piece,\n
      \                      const SentencePieceText& next_chunk, size_t chunk_len,\n
      \                      int unk_id, size_t* start_index_in_next_chunk)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:729,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:729,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:730,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:730,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:732,1
    - Dst: empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:737,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:738,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:738,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:748,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:749,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:755,1
    - Dst: std::get<1>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:757,1
    - Dst: std::get<2>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:759,1
    - Dst: GetChunkOfInput
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:768,1
    - Dst: Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:770,1
    - Dst: Create
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:771,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:772,1
    - Dst: populate_sentence_piece_text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:772,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:774,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:777,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:778,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:784,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:785,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:786,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:790,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:791,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 9
    argNames:
    - ' bad_joins'
    - input
    - normalized
    - norm_to_orig
    - ' arena'
    - ' model'
    - populate_sentence_piece_text
    - ' spt_chunks'
    - ' input_chunk_boundaries'
    argTypes:
    - std::vector<size_t>
    - absl::string_view
    - absl::string_view
    - absl::Span<const size_t>
    - Arena
    - ModelInterface
    - "absl::FunctionRef<absl::Status(\n        absl::string_view input, absl::string_view
      normalized,\n        absl::Span<const size_t> norm_to_orig, const EncodeResult&
      result,\n        SentencePieceText* spt, size_t input_start_offset)>"
    - std::vector<SentencePieceText*>
    - std::vector<std::tuple<size_t, size_t, size_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 794
    functionName: "absl::Status ReparseBadRanges(\n    const std::vector<size_t>&
      bad_joins, const absl::string_view input,\n    const absl::string_view normalized,
      absl::Span<const size_t> norm_to_orig,\n    Arena& arena, const ModelInterface&
      model,\n    absl::FunctionRef<absl::Status(\n        absl::string_view input,
      absl::string_view normalized,\n        absl::Span<const size_t> norm_to_orig,
      const EncodeResult& result,\n        SentencePieceText* spt, size_t input_start_offset)>\n
      \       populate_sentence_piece_text,\n    std::vector<SentencePieceText*>&
      spt_chunks,\n    std::vector<std::tuple<size_t, size_t, size_t>>& input_chunk_boundaries)"
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - Encode
    - size
    - std::vector::emplace_back
    - std::get<1>
    - populate_sentence_piece_text
    - std::vector::push_back
    - std::vector::empty
    - std::move
    - empty
    - GetChunkOfInput
    - Create
    - std::get<0>
    - RETURN_IF_ERROR
    - std::make_pair
    - std::get<2>
    - std::vector::back
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_COLD
    signature: "ABSL_ATTRIBUTE_COLD absl::Status ReparseBadRanges(\n    const std::vector<size_t>&
      bad_joins, const absl::string_view input,\n    const absl::string_view normalized,
      absl::Span<const size_t> norm_to_orig,\n    Arena& arena, const ModelInterface&
      model,\n    absl::FunctionRef<absl::Status(\n        absl::string_view input,
      absl::string_view normalized,\n        absl::Span<const size_t> norm_to_orig,
      const EncodeResult& result,\n        SentencePieceText* spt, size_t input_start_offset)>\n
      \       populate_sentence_piece_text,\n    std::vector<SentencePieceText*>&
      spt_chunks,\n    std::vector<std::tuple<size_t, size_t, size_t>>& input_chunk_boundaries)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:802,1
    - Dst: SentencePieceText*::Clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:804,1
    - Dst: SentencePieceText*::set_text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:805,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:807,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:810,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:810,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:811,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:812,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:812,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeTextAndOffsets
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:817,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:824,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:824,1
    - Dst: model_proto
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:827,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:828,1
    - Dst: std::vector::resize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:838,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:843,1
    - Dst: std::make_unique<Arena>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:845,1
    - Dst: Arena::Create
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:850,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:859,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:862,1
    - Dst: Schedule
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:863,1
    - Dst: get
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:864,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:865,1
    - Dst: GetIthChunkBoundaries
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:869,1
    - Dst: GetChunkOfInput
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:871,1
    - Dst: sentencepiece::SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:875,1
    - Dst: Arena*::Create
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:876,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:877,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:880,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:883,1
    - Dst: absl::BlockingCounter::DecrementCount
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:888,1
    - Dst: absl::BlockingCounter::Wait
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:892,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:895,1
    - Dst: SentencePieceText*::clear_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:906,1
    - Dst: std::vector<std::string>*::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:907,1
    - Dst: std::vector<int>*::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:908,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:909,1
    - Dst: std::get<1>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:910,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:911,1
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:913,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:916,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:919,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:919,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:919,1
    - Dst: std::vector<std::string>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:925,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:925,1
    - Dst: std::vector<int>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:926,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:926,1
    - Dst: SentencePieceText*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:927,1
    - Dst: auto::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:928,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:928,1
    - Dst: auto::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:929,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:929,1
    - Dst: auto::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:930,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:930,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:930,1
    - Dst: auto::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:931,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:931,1
    - Dst: std::get<0>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:931,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:939,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:939,1
    - Dst: sentencepiece::SentencePieceProcessor::IsByte
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:940,1
    - Dst: id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:940,1
    - Dst: auto::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:940,1
    - Dst: auto::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:940,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:941,1
    - Dst: auto::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:941,1
    - Dst: auto::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:941,1
    - Dst: auto::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:941,1
    - Dst: auto::set_surface
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:942,1
    - Dst: auto::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:942,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:942,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:948,1
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:948,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:948,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:949,1
    - Dst: FindMatchingToken
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:951,1
    - Dst: sentencepiece::SentencePieceProcessor::unk_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:952,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:958,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:960,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:965,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:973,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:976,1
    - Dst: ReparseBadRanges
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:976,1
    - Dst: sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:982,1
    - Dst: SentencePieceText*::set_text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:990,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:990,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:990,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:993,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 86
    argCount: 6
    argNames:
    - input
    - chunk_len
    - ' thread_pool'
    - pieces
    - ids
    - spt
    argTypes:
    - absl::string_view
    - size_t
    - ThreadPool
    - std::vector<std::string>*
    - std::vector<int>*
    - SentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 994
    functionName: sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 3
    functionsReached:
    - absl::OkStatus
    - absl::InvalidArgumentError
    - sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
    - auto::end
    - model_proto
    - auto::size
    - absl::string_view::empty
    - absl::StrCat
    - auto::ok
    - std::vector::size
    - std::make_unique<Arena>
    - id
    - auto::set_id
    - size
    - std::numeric_limits<uint32_t>::max
    - std::vector<int>*::clear
    - std::get<1>
    - piece
    - Arena::Create
    - std::vector::push_back
    - FindMatchingToken
    - std::vector::empty
    - begin
    - auto::set_piece
    - std::get<0>
    - std::vector::clear
    - end
    - auto::data
    - ReparseBadRanges
    - std::vector<std::string>*::clear
    - get
    - absl::string_view::substr
    - auto::set_begin
    - std::vector<std::string>*::emplace_back
    - SentencePieceText*::clear_pieces
    - sentencepiece::SentencePieceProcessor::unk_id
    - std::vector::resize
    - absl::string_view::size
    - std::vector<int>*::emplace_back
    - sentencepiece::SentencePieceProcessor::IsByte
    - absl::string_view::data
    - absl::BlockingCounter::DecrementCount
    - absl::BlockingCounter::Wait
    - SentencePieceText*::set_text
    - sentencepiece::SentencePieceProcessor::Normalize
    - Schedule
    - sentencepiece::SentencePieceProcessor::Encode
    - auto::set_surface
    - SentencePieceText*::Clear
    - auto::set_end
    - auto::begin
    - SentencePieceText*::add_pieces
    - GetIthChunkBoundaries
    - GetChunkOfInput
    - sentencepiece::SentencePieceProcessor::IsControl
    - sentencepiece::string_util::UTF8ToUnicodeTextAndOffsets
    - pieces
    - Arena*::Create
    - RETURN_IF_ERROR
    - num_threads
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::ParallelEncodeInternal(\n    absl::string_view
      input, size_t chunk_len, ThreadPool& thread_pool,\n    std::vector<std::string>*
      pieces, std::vector<int>* ids,\n    SentencePieceText* spt) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1000,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - input
    - chunk_len
    - ' thread_pool'
    - pieces
    argTypes:
    - absl::string_view
    - int
    - ThreadPool
    - std::vector<std::string>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 996
    functionDepth: 3
    functionLinenumber: 996
    functionLinenumberEnd: 1002
    functionName: sentencepiece::SentencePieceProcessor::ParallelEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::ParallelEncode(\n    absl::string_view
      input, int chunk_len, ThreadPool& thread_pool,\n    std::vector<std::string>*
      pieces) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - input
    - chunk_len
    - ' thread_pool'
    - ids
    argTypes:
    - absl::string_view
    - int
    - ThreadPool
    - std::vector<int>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1004
    functionDepth: 3
    functionLinenumber: 1004
    functionLinenumberEnd: 1010
    functionName: sentencepiece::SentencePieceProcessor::ParallelEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::ParallelEncode(\n    absl::string_view
      input, int chunk_len, ThreadPool& thread_pool,\n    std::vector<int>* ids) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - input
    - chunk_len
    - ' thread_pool'
    - spt
    argTypes:
    - absl::string_view
    - int
    - ThreadPool
    - SentencePieceText*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 1012
    functionDepth: 3
    functionLinenumber: 1012
    functionLinenumberEnd: 1017
    functionName: sentencepiece::SentencePieceProcessor::ParallelEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::ParallelEncode(\n    absl::string_view
      input, int chunk_len, ThreadPool& thread_pool,\n    SentencePieceText* spt)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1024
    functionName: RET_CHECK_OR_RETURN_DEFAULT
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_OR_RETURN_DEFAULT(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1027,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - normalized
    argTypes:
    - absl::string_view
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1025
    functionDepth: 1
    functionLinenumber: 1025
    functionLinenumberEnd: 1029
    functionName: sentencepiece::SentencePieceProcessor::Normalize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 17
    functionsReached:
    - sentencepiece::SentencePieceProcessor::Normalize
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Normalize(absl::string_view input,\n
      \                                              std::string* normalized) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1034,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - input
    - normalized
    - norm_to_orig
    argTypes:
    - absl::string_view
    - std::string*
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1031
    functionDepth: 1
    functionLinenumber: 1031
    functionLinenumberEnd: 1036
    functionName: sentencepiece::SentencePieceProcessor::Normalize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 18
    functionsReached:
    - sentencepiece::SentencePieceProcessor::Normalize
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::Normalize(\n    absl::string_view
      input, std::string* normalized,\n    std::vector<size_t>* norm_to_orig) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1042
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1042
    functionName: sentencepiece::SentencePieceProcessor::Normalize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 19
    functionsReached:
    - sentencepiece::SentencePieceProcessor::Normalize
    linkageType: ''
    returnType: std::string
    signature: std::string SentencePieceProcessor::Normalize(absl::string_view input)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1045,1
    - Dst: sentencepiece::SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1047
      start: 1044
    functionDepth: 1
    functionLinenumber: 1044
    functionLinenumberEnd: 1047
    functionName: sentencepiece::SentencePieceProcessor::GetPieceSize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 7
    functionsReached:
    - sentencepiece::SentencePieceProcessor::GetPieceSize
    - RET_CHECK_OR_RETURN_DEFAULT
    linkageType: ''
    returnType: int
    signature: int SentencePieceProcessor::GetPieceSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1050,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1052
    functionName: sentencepiece::SentencePieceProcessor::PieceToId
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 11
    functionsReached:
    - sentencepiece::SentencePieceProcessor::PieceToId
    - RET_CHECK_OR_RETURN_DEFAULT
    linkageType: ''
    returnType: int
    signature: int SentencePieceProcessor::PieceToId(absl::string_view piece) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::string
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1055,1
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1056,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1057,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1058
    functionName: '& SentencePieceProcessor::IdToPiece(int id) const'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - RET_CHECK_OR_RETURN_DEFAULT
    - std::string::string
    - IdToPiece
    linkageType: ''
    returnType: std::string
    signature: std::string & SentencePieceProcessor::IdToPiece(int id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1061,1
    - Dst: sentencepiece::SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1062,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1065,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - id
    - piece
    argTypes:
    - int
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1060
    functionDepth: 2
    functionLinenumber: 1060
    functionLinenumberEnd: 1067
    functionName: sentencepiece::SentencePieceProcessor::SafeIdToPiece
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceProcessor::GetPieceSize
    - RET_CHECK_OR_RETURN_DEFAULT
    - IdToPiece
    linkageType: ''
    returnType: bool
    signature: bool SentencePieceProcessor::SafeIdToPiece(int id, std::string* piece)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1070,1
    - Dst: sentencepiece::SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1071,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1069
    functionDepth: 1
    functionLinenumber: 1069
    functionLinenumberEnd: 1072
    functionName: sentencepiece::SentencePieceProcessor::GetScore
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::SentencePieceProcessor::GetScore
    - RET_CHECK_OR_RETURN_DEFAULT
    linkageType: ''
    returnType: float
    signature: float SentencePieceProcessor::GetScore(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1075,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1074
    functionDepth: 1
    functionLinenumber: 1074
    functionLinenumberEnd: 1077
    functionName: sentencepiece::SentencePieceProcessor::IsControl
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 13
    functionsReached:
    - RET_CHECK_OR_RETURN_DEFAULT
    - sentencepiece::SentencePieceProcessor::IsControl
    linkageType: ''
    returnType: bool
    signature: bool SentencePieceProcessor::IsControl(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1080,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1082
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1082
    functionName: sentencepiece::SentencePieceProcessor::IsUnknown
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 12
    functionsReached:
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - RET_CHECK_OR_RETURN_DEFAULT
    linkageType: ''
    returnType: bool
    signature: bool SentencePieceProcessor::IsUnknown(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1085,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnused
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1084
    functionDepth: 1
    functionLinenumber: 1084
    functionLinenumberEnd: 1087
    functionName: sentencepiece::SentencePieceProcessor::IsUnused
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 3
    functionsReached:
    - RET_CHECK_OR_RETURN_DEFAULT
    - sentencepiece::SentencePieceProcessor::IsUnused
    linkageType: ''
    returnType: bool
    signature: bool SentencePieceProcessor::IsUnused(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_OR_RETURN_DEFAULT
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1090,1
    - Dst: sentencepiece::SentencePieceProcessor::IsByte
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1092
    functionName: sentencepiece::SentencePieceProcessor::IsByte
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 8
    functionsReached:
    - RET_CHECK_OR_RETURN_DEFAULT
    - sentencepiece::SentencePieceProcessor::IsByte
    linkageType: ''
    returnType: bool
    signature: bool SentencePieceProcessor::IsByte(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1094
    functionName: sentencepiece::SentencePieceProcessor::unk_id
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SentencePieceProcessor::unk_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1096
    functionName: sentencepiece::SentencePieceProcessor::bos_id
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SentencePieceProcessor::bos_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1098
    functionName: sentencepiece::SentencePieceProcessor::eos_id
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SentencePieceProcessor::eos_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1100
    functionName: sentencepiece::SentencePieceProcessor::pad_id
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int SentencePieceProcessor::pad_id() const
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: std::reverse
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1109,1
    - Dst: T*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1109,1
    - Dst: T*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1110,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1112,1
    - Dst: T*::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1112,1
    - Dst: T*::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1112,1
    - Dst: sentencepiece::SentencePieceProcessor::eos_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1116,1
    - Dst: T*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1118,1
    - Dst: auto*::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1119,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1120,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1120,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1121,1
    - Dst: auto*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1122,1
    - Dst: T*::text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1122,1
    - Dst: auto*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1123,1
    - Dst: T*::text
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1123,1
    - Dst: T*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1127,1
    - Dst: T*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1129,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1129,1
    - Dst: sentencepiece::SentencePieceProcessor::bos_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1135,1
    - Dst: T*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1137,1
    - Dst: auto*::Add
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1138,1
    - Dst: auto*::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1139,1
    - Dst: auto*::SwapElements
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1140,1
    - Dst: auto*::Mutable
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1142,1
    - Dst: auto*::set_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1143,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1144,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1144,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1145,1
    - Dst: auto*::set_begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1146,1
    - Dst: auto*::set_end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1147,1
    - Dst: T*::emplace
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1151,1
    - Dst: T*::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1151,1
    - Dst: T*::emplace
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1153,1
    - Dst: T*::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1153,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1153,1
    - Dst: T*::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1160,1
    - Dst: T*::mutable_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1161,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1162,1
    - Dst: auto*::id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1162,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1163,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1163,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1164,1
    - Dst: T*::Clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1171,1
    - Dst: T*::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1173,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1175,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1178,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 66
    argCount: 2
    argNames:
    - extra_options
    - output
    argTypes:
    - absl::Span<const ExtraOption>
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1179
      start: 1103
    functionDepth: 2
    functionLinenumber: 1103
    functionLinenumberEnd: 1179
    functionName: sentencepiece::SentencePieceProcessor::ApplyExtraOptions
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 6
    functionsReached:
    - absl::OkStatus
    - eos_piece
    - auto*::SwapElements
    - auto*::set_begin
    - auto*::set_end
    - T*::emplace
    - auto*::set_piece
    - bos_piece
    - T*::end
    - sentencepiece::SentencePieceProcessor::bos_id
    - T*::clear
    - T*::emplace_back
    - sentencepiece::SentencePieceProcessor::eos_id
    - T*::mutable_pieces
    - std::reverse
    - auto*::Add
    - T*::begin
    - T*::pieces_size
    - unk_piece
    - auto*::Mutable
    - auto*::size
    - absl::InternalError
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - T*::text
    - auto*::id
    - T*::add_pieces
    - auto*::set_id
    - T*::Clear
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::ApplyExtraOptions(\n    absl::Span<const
      ExtraOption> extra_options, T* output) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1181
    functionDepth: 0
    functionLinenumber: 1181
    functionLinenumberEnd: 1186
    functionName: sentencepiece::SentencePieceProcessor::HasUnkPieceOption
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SentencePieceProcessor::HasUnkPieceOption() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1192,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1192,1
    - Dst: std::vector<SentencePieceProcessor::ExtraOption>*::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1194,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1195,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1195,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1197,1
    - Dst: sentencepiece::SentencePieceProcessor::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1197,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1205,1
    - Dst: std::map::find
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1206,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1207,1
    - Dst: std::map::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1207,1
    - Dst: std::vector<SentencePieceProcessor::ExtraOption>*::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1209,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1212,1
    - Dst: sentencepiece::SentencePieceProcessor::bos_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1212,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1213,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1216,1
    - Dst: sentencepiece::SentencePieceProcessor::eos_id
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1216,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1217,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - _extra_option
    - extra_options
    argTypes:
    - absl::string_view
    - std::vector<SentencePieceProcessor::ExtraOption>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1189
    functionDepth: 2
    functionLinenumber: 1189
    functionLinenumberEnd: 1221
    functionName: sentencepiece::SentencePieceProcessor::ParseExtraOptions
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 4
    functionsReached:
    - absl::OkStatus
    - sentencepiece::SentencePieceProcessor::status
    - std::map::find
    - eos_piece
    - std::vector<SentencePieceProcessor::ExtraOption>*::clear
    - absl::string_view::empty
    - std::map::end
    - RET_CHECK
    - sentencepiece::SentencePieceProcessor::bos_id
    - absl::string_view::size
    - absl::StrSplit
    - sentencepiece::SentencePieceProcessor::eos_id
    - absl::string_view::data
    - RETURN_IF_ERROR
    - std::vector<SentencePieceProcessor::ExtraOption>*::push_back
    - bos_piece
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::ParseExtraOptions(\n    absl::string_view
      _extra_option,\n    std::vector<SentencePieceProcessor::ExtraOption>* extra_options)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - std::unique_ptr<ModelInterface>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1225
    functionName: sentencepiece::SentencePieceProcessor::SetModel
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SentencePieceProcessor::SetModel(std::unique_ptr<ModelInterface>&&
      model)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' normalizer'
    argTypes:
    - std::unique_ptr<normalizer::Normalizer>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1227
    functionDepth: 0
    functionLinenumber: 1227
    functionLinenumberEnd: 1230
    functionName: sentencepiece::SentencePieceProcessor::SetNormalizer
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void SentencePieceProcessor::SetNormalizer(\n    std::unique_ptr<normalizer::Normalizer>&&
      normalizer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1234
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1234
    functionName: '& SentencePieceProcessor::model_proto() const'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto & SentencePieceProcessor::model_proto() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1236
    functionDepth: 0
    functionLinenumber: 1236
    functionLinenumberEnd: 1238
    functionName: sentencepiece::SentencePieceProcessor::serialized_model_proto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 1
    functionsReached:
    - SerializeAsString
    linkageType: ''
    returnType: std::string
    signature: std::string SentencePieceProcessor::serialized_model_proto() const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_STL
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1249,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1251,1
    - Dst: std::vector<T>*::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1252,1
    - Dst: sentencepiece::SentencePieceProcessor::ApplyExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1253,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1257,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1258,1
    - Dst: sentencepiece::SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1259,1
    - Dst: ByteFallbackEnabled
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1260,1
    - Dst: sentencepiece::SentencePieceProcessor::HasUnkPieceOption
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1261,1
    - Dst: std::vector<T>*::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1263,1
    - Dst: std::vector<T>*::reserve
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1264,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1264,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1268,1
    - Dst: first::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1268,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1270,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1272,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1274,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1274,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1274,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1278,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1280,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1283,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1283,1
    - Dst: static_cast<uint8_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1283,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1284,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1286,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1286,1
    - Dst: static_cast<uint8_t>
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1286,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1293,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1296,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1296,1
    - Dst: std::vector<T>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1298,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1298,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1298,1
    - Dst: std::vector<T>*::back
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1304,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1304,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1304,1
    - Dst: sentencepiece::SentencePieceProcessor::ApplyExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1313,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - absl::string_view
    - std::vector<T>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1247
    functionDepth: 3
    functionLinenumber: 1247
    functionLinenumberEnd: 1314
    functionName: sentencepiece::SentencePieceProcessor::EncodeOptimized
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 4
    functionsReached:
    - sentencepiece::SentencePieceProcessor::ApplyExtraOptions
    - absl::string_view::empty
    - std::vector<T>*::back
    - first::empty
    - EncodeResult::size
    - std::vector<T>*::clear
    - sentencepiece::SentencePieceProcessor::PieceToId
    - ByteFallbackEnabled
    - static_cast<uint8_t>
    - unk_piece
    - ByteToPiece
    - sentencepiece::SentencePieceProcessor::HasUnkPieceOption
    - std::vector<T>*::reserve
    - RET_CHECK
    - std::vector<T>*::emplace_back
    - absl::string_view::data
    - absl::string_view::size
    - RET_CHECK_STATUS_STL
    - sentencepiece::SentencePieceProcessor::Normalize
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - sentencepiece::SentencePieceProcessor::Encode
    - sentencepiece::SentencePieceProcessor::IsControl
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::EncodeOptimized(\n    absl::string_view
      input, std::vector<T>* output) const"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_STATUS_STL
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1319,1
    - Dst: absl::Span<const T>::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1321,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1322,1
    - Dst: empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1333,1
    - Dst: std::vector::assign
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1334,1
    - Dst: absl::Span<const T>::begin
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1334,1
    - Dst: absl::Span<const T>::end
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1334,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1335,1
    - Dst: sentencepiece::SentencePieceProcessor::ApplyExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1335,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1340,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1341,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1346,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1346,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1348,1
    - Dst: sentencepiece::string_util::IsValidDecodeUTF8
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1351,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1352,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1354,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1355,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1358,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1359,1
    - Dst: std::string::clear
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1363,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1364,1
    - Dst: sentencepiece::SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1373,1
    - Dst: absl::Status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1374,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1375,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1377,1
    - Dst: sentencepiece::SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1380,1
    - Dst: sentencepiece::SentencePieceProcessor::IsByte
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1383,1
    - Dst: PieceToByte
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1384,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1385,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1386,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1388,1
    - Dst: ProcessByteQueue
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1388,1
    - Dst: std::string*::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1389,1
    - Dst: sentencepiece::SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1393,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1402,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1403,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1404,1
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1406,1
    - Dst: sentencepiece::SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1411,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1412,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1413,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1415,1
    - Dst: absl::StrAppend
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1418,1
    - Dst: absl::StrReplaceAll
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1419,1
    - Dst: std::string*::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1422,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1427,1
    - Dst: ProcessByteQueue
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1427,1
    - Dst: sentencepiece::SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1430,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1433,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 72
    argCount: 2
    argNames:
    - input
    - detokenized
    argTypes:
    - absl::Span<const T>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1434
      start: 1317
    functionDepth: 3
    functionLinenumber: 1317
    functionLinenumberEnd: 1434
    functionName: sentencepiece::SentencePieceProcessor::DecodeOptimized
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 6
    functionsReached:
    - absl::OkStatus
    - absl::Status
    - absl::StrReplaceAll
    - sentencepiece::SentencePieceProcessor::ApplyExtraOptions
    - RET_CHECK_LE
    - RET_CHECK_EQ
    - absl::StrCat
    - std::string::size
    - absl::Span<const T>::begin
    - absl::ConsumePrefix
    - empty
    - IdToPiece
    - absl::Span<const T>::empty
    - sentencepiece::string_util::IsValidDecodeUTF8
    - absl::string_view
    - std::string::clear
    - ProcessByteQueue
    - sentencepiece::SentencePieceProcessor::PieceToId
    - sentencepiece::SentencePieceProcessor::GetPieceSize
    - absl::StrAppend
    - std::vector::assign
    - absl::Span<const T>::end
    - normalizer_spec
    - sentencepiece::SentencePieceProcessor::IsByte
    - std::string*::empty
    - RET_CHECK_STATUS_STL
    - sentencepiece::SentencePieceProcessor::Normalize
    - sentencepiece::SentencePieceProcessor::IsUnknown
    - PieceToByte
    - std::string::empty
    - trainer_spec
    - sentencepiece::SentencePieceProcessor::IsControl
    - std::string::append
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceProcessor::DecodeOptimized(\n    absl::Span<const
      T> input, std::string* detokenized) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1439,1
    - Dst: absl::NotFoundError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1440,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1443,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1444,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1444,1
    - Dst: auto::ReadAll
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1446,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1447,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1447,1
    - Dst: ModelProto*::ParseFromArray
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1449,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1449,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1449,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1450,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1451,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - filename
    - model_proto
    argTypes:
    - absl::string_view
    - ModelProto*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1455
    functionName: sentencepiece::io::LoadModelProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - std::string::data
    - auto::ReadAll
    - absl::string_view::empty
    - auto::status
    - absl::StrCat
    - ModelProto*::ParseFromArray
    - std::string::size
    - absl::NotFoundError
    - sentencepiece::filesystem::NewReadableFile
    - RETURN_IF_ERROR
    - absl::InternalError
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status LoadModelProto(absl::string_view filename,\n                            ModelProto*
      model_proto)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1459,1
    - Dst: absl::NotFoundError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1460,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1462,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1463,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1463,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1464,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1464,1
    - Dst: SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1464,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - ' model_proto'
    argTypes:
    - absl::string_view
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1467
    functionName: sentencepiece::io::SaveModelProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - SerializeAsString
    - absl::string_view::empty
    - auto::status
    - auto::Write
    - absl::NotFoundError
    - RET_CHECK
    - RETURN_IF_ERROR
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SaveModelProto(absl::string_view filename,\n                            const
      ModelProto& model_proto)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1439,1
    - Dst: absl::NotFoundError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1440,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1443,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1444,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1444,1
    - Dst: auto::ReadAll
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1446,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1447,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1447,1
    - Dst: ModelProto*::ParseFromArray
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1449,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1449,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1449,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1450,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1451,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1454,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - filename
    - model_proto
    argTypes:
    - absl::string_view
    - ModelProto*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1455
      start: 1437
    functionDepth: 1
    functionLinenumber: 1437
    functionLinenumberEnd: 1455
    functionName: sentencepiece::io::LoadModelProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - std::string::data
    - auto::ReadAll
    - absl::string_view::empty
    - auto::status
    - absl::StrCat
    - ModelProto*::ParseFromArray
    - std::string::size
    - absl::NotFoundError
    - sentencepiece::filesystem::NewReadableFile
    - RETURN_IF_ERROR
    - absl::InternalError
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status LoadModelProto(absl::string_view filename,\n                            ModelProto*
      model_proto)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1459,1
    - Dst: absl::NotFoundError
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1460,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1462,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1463,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1463,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1464,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1464,1
    - Dst: SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1464,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_processor.cc:1466,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - filename
    - ' model_proto'
    argTypes:
    - absl::string_view
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1457
    functionDepth: 1
    functionLinenumber: 1457
    functionLinenumberEnd: 1467
    functionName: sentencepiece::io::SaveModelProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - SerializeAsString
    - absl::string_view::empty
    - auto::status
    - auto::Write
    - absl::NotFoundError
    - RET_CHECK
    - RETURN_IF_ERROR
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SaveModelProto(absl::string_view filename,\n                            const
      ModelProto& model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - PrefixMatcher*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: sentencepiece::normalizer::Normalizer::SetPrefixMatcher
    functionSourceFile: /src/sentencepiece/src/normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPrefixMatcher(const PrefixMatcher* matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: sentencepiece::normalizer::Normalizer::status
    functionSourceFile: /src/sentencepiece/src/normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - matcher
    argTypes:
    - PrefixMatcher*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: sentencepiece::normalizer::Normalizer::SetPrefixMatcher
    functionSourceFile: /src/sentencepiece/src/normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetPrefixMatcher(const PrefixMatcher* matcher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: sentencepiece::normalizer::Normalizer::status
    functionSourceFile: /src/sentencepiece/src/normalizer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::InitializeLog
      Src: /src/sentencepiece/src/init.cc:34,1
    - Dst: absl::SetStderrThreshold
      Src: /src/sentencepiece/src/init.cc:35,1
    - Dst: absl::SetProgramUsageMessage
      Src: /src/sentencepiece/src/init.cc:36,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/init.cc:36,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/init.cc:42,1
    - Dst: absl::SetFlagsUsageConfig
      Src: /src/sentencepiece/src/init.cc:44,1
    - Dst: absl::ParseCommandLine
      Src: /src/sentencepiece/src/init.cc:46,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/init.cc:50,1
    - Dst: std::copy
      Src: /src/sentencepiece/src/init.cc:51,1
    - Dst: auto::begin
      Src: /src/sentencepiece/src/init.cc:51,1
    - Dst: auto::end
      Src: /src/sentencepiece/src/init.cc:51,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/init.cc:52,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/init.cc:52,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/init.cc:55,1
    - Dst: sentencepiece::SetMinLogLevel
      Src: /src/sentencepiece/src/init.cc:56,1
    - Dst: static_cast<absl::LogSeverityAtLeast>
      Src: /src/sentencepiece/src/init.cc:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ParseCommandLineFlags
    argTypes:
    - void
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 58
    functionName: ABSL_FLAG
    functionSourceFile: /src/sentencepiece/src/init.cc
    functionUses: 0
    functionsReached:
    - absl::ParseCommandLine
    - absl::SetStderrThreshold
    - auto::end
    - auto::size
    - static_cast<int>
    - sentencepiece::SetMinLogLevel
    - absl::StrCat
    - absl::InitializeLog
    - static_cast<absl::LogSeverityAtLeast>
    - auto::begin
    - absl::SetFlagsUsageConfig
    - absl::SetProgramUsageMessage
    - std::copy
    - absl::GetFlag
    linkageType: ''
    returnType: void
    signature: "void ABSL_FLAG(bool, quiet, false, \"Suppress logging message.\");\n\nnamespace
      sentencepiece {\nvoid ParseCommandLineFlags(const char *usage, int *argc, char
      ***argv,\n                           bool remove_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: google::protobuf::ShutdownProtobufLibrary
      Src: /src/sentencepiece/src/init.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: ShutdownLibrary
    functionSourceFile: /src/sentencepiece/src/init.cc
    functionUses: 0
    functionsReached:
    - google::protobuf::ShutdownProtobufLibrary
    linkageType: ''
    returnType: void
    signature: void ShutdownLibrary()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/trainer_factory_test.cc:26,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/trainer_factory_test.cc:27,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/trainer_factory_test.cc:30,1
    - Dst: sentencepiece::TrainerFactory::Create
      Src: /src/sentencepiece/src/trainer_factory_test.cc:31,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/trainer_factory_test.cc:36,1
    - Dst: sentencepiece::TrainerFactory::Create
      Src: /src/sentencepiece/src/trainer_factory_test.cc:37,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/trainer_factory_test.cc:42,1
    - Dst: sentencepiece::TrainerFactory::Create
      Src: /src/sentencepiece/src/trainer_factory_test.cc:43,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/trainer_factory_test.cc:48,1
    - Dst: sentencepiece::TrainerFactory::Create
      Src: /src/sentencepiece/src/trainer_factory_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 52
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_factory_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::add_input
    - sentencepiece::TrainerFactory::Create
    - TrainerSpec::set_model_type
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerFactoryTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/trainer_factory_test.cc:26,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/trainer_factory_test.cc:27,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/trainer_factory_test.cc:30,1
    - Dst: sentencepiece::TrainerFactory::Create
      Src: /src/sentencepiece/src/trainer_factory_test.cc:31,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/trainer_factory_test.cc:36,1
    - Dst: sentencepiece::TrainerFactory::Create
      Src: /src/sentencepiece/src/trainer_factory_test.cc:37,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/trainer_factory_test.cc:42,1
    - Dst: sentencepiece::TrainerFactory::Create
      Src: /src/sentencepiece/src/trainer_factory_test.cc:43,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/trainer_factory_test.cc:48,1
    - Dst: sentencepiece::TrainerFactory::Create
      Src: /src/sentencepiece/src/trainer_factory_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 52
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_factory_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::add_input
    - sentencepiece::TrainerFactory::Create
    - TrainerSpec::set_model_type
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerFactoryTest, BasicTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/char_model_trainer.cc:27,1
    - Dst: status
      Src: /src/sentencepiece/src/char_model_trainer.cc:27,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/char_model_trainer.cc:29,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/char_model_trainer.cc:29,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/char_model_trainer.cc:30,1
    - Dst: model_type
      Src: /src/sentencepiece/src/char_model_trainer.cc:30,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/char_model_trainer.cc:32,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/char_model_trainer.cc:32,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/char_model_trainer.cc:34,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:34,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/char_model_trainer.cc:35,1
    - Dst: std::log
      Src: /src/sentencepiece/src/char_model_trainer.cc:42,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/char_model_trainer.cc:42,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/char_model_trainer.cc:44,1
    - Dst: empty
      Src: /src/sentencepiece/src/char_model_trainer.cc:44,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/char_model_trainer.cc:45,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/char_model_trainer.cc:46,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:47,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/char_model_trainer.cc:47,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/char_model_trainer.cc:50,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/char_model_trainer.cc:51,1
    - Dst: std::log
      Src: /src/sentencepiece/src/char_model_trainer.cc:52,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/char_model_trainer.cc:52,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/char_model_trainer.cc:55,1
    - Dst: set_vocab_size
      Src: /src/sentencepiece/src/char_model_trainer.cc:56,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:56,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:56,1
    - Dst: Save
      Src: /src/sentencepiece/src/char_model_trainer.cc:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 60
    functionName: sentencepiece::character::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/char_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeCharToUTF8
    - RET_CHECK_GE
    - RET_CHECK_EQ
    - std::log
    - empty
    - model_type
    - set_vocab_size
    - LoadSentences
    - size
    - status
    - use_all_vocab
    - Save
    - RET_CHECK
    - vocab_size
    - RETURN_IF_ERROR
    - Sorted
    - static_cast<float>
    - static_cast<size_t>
    - escape_whitespaces
    - emplace_back
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/char_model_trainer.cc:27,1
    - Dst: status
      Src: /src/sentencepiece/src/char_model_trainer.cc:27,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/char_model_trainer.cc:29,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/char_model_trainer.cc:29,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/char_model_trainer.cc:30,1
    - Dst: model_type
      Src: /src/sentencepiece/src/char_model_trainer.cc:30,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/char_model_trainer.cc:32,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/char_model_trainer.cc:32,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/char_model_trainer.cc:34,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:34,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/char_model_trainer.cc:35,1
    - Dst: std::log
      Src: /src/sentencepiece/src/char_model_trainer.cc:42,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/char_model_trainer.cc:42,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/char_model_trainer.cc:44,1
    - Dst: empty
      Src: /src/sentencepiece/src/char_model_trainer.cc:44,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/char_model_trainer.cc:45,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/char_model_trainer.cc:46,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:47,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/char_model_trainer.cc:47,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/char_model_trainer.cc:50,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/char_model_trainer.cc:51,1
    - Dst: std::log
      Src: /src/sentencepiece/src/char_model_trainer.cc:52,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/char_model_trainer.cc:52,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/char_model_trainer.cc:55,1
    - Dst: set_vocab_size
      Src: /src/sentencepiece/src/char_model_trainer.cc:56,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:56,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:56,1
    - Dst: Save
      Src: /src/sentencepiece/src/char_model_trainer.cc:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 60
    functionName: sentencepiece::character::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/char_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeCharToUTF8
    - RET_CHECK_GE
    - RET_CHECK_EQ
    - std::log
    - empty
    - model_type
    - set_vocab_size
    - LoadSentences
    - size
    - status
    - use_all_vocab
    - Save
    - RET_CHECK
    - vocab_size
    - RETURN_IF_ERROR
    - Sorted
    - static_cast<float>
    - static_cast<size_t>
    - escape_whitespaces
    - emplace_back
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/char_model_trainer.cc:27,1
    - Dst: status
      Src: /src/sentencepiece/src/char_model_trainer.cc:27,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/char_model_trainer.cc:29,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/char_model_trainer.cc:29,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/char_model_trainer.cc:30,1
    - Dst: model_type
      Src: /src/sentencepiece/src/char_model_trainer.cc:30,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/char_model_trainer.cc:32,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/char_model_trainer.cc:32,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/char_model_trainer.cc:34,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:34,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/char_model_trainer.cc:35,1
    - Dst: std::log
      Src: /src/sentencepiece/src/char_model_trainer.cc:42,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/char_model_trainer.cc:42,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/char_model_trainer.cc:44,1
    - Dst: empty
      Src: /src/sentencepiece/src/char_model_trainer.cc:44,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/char_model_trainer.cc:45,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/char_model_trainer.cc:46,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:47,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/char_model_trainer.cc:47,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/char_model_trainer.cc:50,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/char_model_trainer.cc:51,1
    - Dst: std::log
      Src: /src/sentencepiece/src/char_model_trainer.cc:52,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/char_model_trainer.cc:52,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/char_model_trainer.cc:55,1
    - Dst: set_vocab_size
      Src: /src/sentencepiece/src/char_model_trainer.cc:56,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:56,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:56,1
    - Dst: Save
      Src: /src/sentencepiece/src/char_model_trainer.cc:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 60
    functionName: sentencepiece::character::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/char_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeCharToUTF8
    - RET_CHECK_GE
    - RET_CHECK_EQ
    - std::log
    - empty
    - model_type
    - set_vocab_size
    - LoadSentences
    - size
    - status
    - use_all_vocab
    - Save
    - RET_CHECK
    - vocab_size
    - RETURN_IF_ERROR
    - Sorted
    - static_cast<float>
    - static_cast<size_t>
    - escape_whitespaces
    - emplace_back
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/char_model_trainer.cc:27,1
    - Dst: status
      Src: /src/sentencepiece/src/char_model_trainer.cc:27,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/char_model_trainer.cc:29,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/char_model_trainer.cc:29,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/char_model_trainer.cc:30,1
    - Dst: model_type
      Src: /src/sentencepiece/src/char_model_trainer.cc:30,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/char_model_trainer.cc:32,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/char_model_trainer.cc:32,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/char_model_trainer.cc:34,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:34,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/char_model_trainer.cc:35,1
    - Dst: std::log
      Src: /src/sentencepiece/src/char_model_trainer.cc:42,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/char_model_trainer.cc:42,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/char_model_trainer.cc:44,1
    - Dst: empty
      Src: /src/sentencepiece/src/char_model_trainer.cc:44,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/char_model_trainer.cc:45,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/char_model_trainer.cc:46,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:47,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/char_model_trainer.cc:47,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/char_model_trainer.cc:50,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/char_model_trainer.cc:51,1
    - Dst: std::log
      Src: /src/sentencepiece/src/char_model_trainer.cc:52,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/char_model_trainer.cc:52,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/char_model_trainer.cc:55,1
    - Dst: set_vocab_size
      Src: /src/sentencepiece/src/char_model_trainer.cc:56,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:56,1
    - Dst: size
      Src: /src/sentencepiece/src/char_model_trainer.cc:56,1
    - Dst: Save
      Src: /src/sentencepiece/src/char_model_trainer.cc:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 60
    functionName: sentencepiece::character::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/char_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeCharToUTF8
    - RET_CHECK_GE
    - RET_CHECK_EQ
    - std::log
    - empty
    - model_type
    - set_vocab_size
    - LoadSentences
    - size
    - status
    - use_all_vocab
    - Save
    - RET_CHECK
    - vocab_size
    - RETURN_IF_ERROR
    - Sorted
    - static_cast<float>
    - static_cast<size_t>
    - escape_whitespaces
    - emplace_back
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: sentencepiece::unigram::Digamma
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    linkageType: ''
    returnType: double
    signature: double Digamma(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - IT
    - IT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: sentencepiece::unigram::ToLogProb
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void ToLogProb(IT begin, IT end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundedPriorityQueue(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:78,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:79,1
    - Dst: emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    - Dst: std::string
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key_view
    - freq_delta
    argTypes:
    - absl::string_view
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Add
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - std::string
    - find
    - emplace
    linkageType: ''
    returnType: void
    signature: void Add(absl::string_view key_view, uint64_t freq_delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:87,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::Gc
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::BoundedPriorityQueue::Gc
    - size
    linkageType: ''
    returnType: void
    signature: void MaybeGc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: '& data() const'
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, uint64_t>
    signature: absl::flat_hash_map<std::string, uint64_t> & data() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:104,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:108,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:112,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:121,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:123,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 127
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Get
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::forward_as_tuple
    - size
    - std::vector::end
    - clear
    - key::size
    - std::vector::emplace_back
    - std::vector::push_back
    - std::vector::reserve
    - std::vector::size
    - std::sort
    - static_cast<uint64_t>
    - std::vector::begin
    - absl::GetFlag
    - std::min
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    linkageType: ''
    returnType: std::vector<std::pair<std::string, uint64_t>>
    signature: std::vector<std::pair<std::string, uint64_t>> Get()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:132,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: std::sqrt
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:136,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    - Dst: std::pow
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - freq
    - len
    - power
    argTypes:
    - uint64_t
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - static_cast<float>
    - std::sqrt
    - std::pow
    linkageType: ''
    returnType: float
    signature: float CalculateScore(uint64_t freq, float len, float power)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:143,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: UnicodeText::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - freq
    - power
    argTypes:
    - absl::string_view
    - uint64_t
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - UnicodeText::size
    - static_cast<float>
    - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    linkageType: ''
    returnType: float
    signature: "float CalculatePieceScore(absl::string_view key, uint64_t freq,\n
      \                                  float power)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:148,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:149,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:155,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:158,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::nth_element
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:164,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:166,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:167,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:168,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:169,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:170,1
    - Dst: absl::flat_hash_map::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:174,1
    - Dst: const_cast<MapPair&>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:176,1
    - Dst: absl::flat_hash_map::emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 180
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Gc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 1
    functionsReached:
    - first::size
    - std::forward_as_tuple
    - size
    - absl::flat_hash_map::reserve
    - std::vector::end
    - const_cast<MapPair&>
    - std::vector::push_back
    - std::vector::reserve
    - LOG
    - std::vector::size
    - std::move
    - std::nth_element
    - absl::flat_hash_map::emplace
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    - absl::GetFlag
    - std::min
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: void Gc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: sentencepiece::unigram::Digamma
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    linkageType: ''
    returnType: double
    signature: double Digamma(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - IT
    - IT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: sentencepiece::unigram::ToLogProb
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void ToLogProb(IT begin, IT end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundedPriorityQueue(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:78,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:79,1
    - Dst: emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    - Dst: std::string
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key_view
    - freq_delta
    argTypes:
    - absl::string_view
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Add
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - std::string
    - find
    - emplace
    linkageType: ''
    returnType: void
    signature: void Add(absl::string_view key_view, uint64_t freq_delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:87,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::Gc
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::BoundedPriorityQueue::Gc
    - size
    linkageType: ''
    returnType: void
    signature: void MaybeGc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: '& data() const'
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, uint64_t>
    signature: absl::flat_hash_map<std::string, uint64_t> & data() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:104,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:108,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:112,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:121,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:123,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 127
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Get
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::forward_as_tuple
    - size
    - std::vector::end
    - clear
    - key::size
    - std::vector::emplace_back
    - std::vector::push_back
    - std::vector::reserve
    - std::vector::size
    - std::sort
    - static_cast<uint64_t>
    - std::vector::begin
    - absl::GetFlag
    - std::min
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    linkageType: ''
    returnType: std::vector<std::pair<std::string, uint64_t>>
    signature: std::vector<std::pair<std::string, uint64_t>> Get()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:132,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: std::sqrt
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:136,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    - Dst: std::pow
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - freq
    - len
    - power
    argTypes:
    - uint64_t
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 1
    functionsReached:
    - static_cast<float>
    - std::sqrt
    - std::pow
    linkageType: ''
    returnType: float
    signature: float CalculateScore(uint64_t freq, float len, float power)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:143,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: UnicodeText::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - freq
    - power
    argTypes:
    - absl::string_view
    - uint64_t
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - UnicodeText::size
    - static_cast<float>
    - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    linkageType: ''
    returnType: float
    signature: "float CalculatePieceScore(absl::string_view key, uint64_t freq,\n
      \                                  float power)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:148,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:149,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:155,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:158,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::nth_element
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:164,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:166,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:167,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:168,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:169,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:170,1
    - Dst: absl::flat_hash_map::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:174,1
    - Dst: const_cast<MapPair&>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:176,1
    - Dst: absl::flat_hash_map::emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 180
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Gc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 2
    functionsReached:
    - first::size
    - std::forward_as_tuple
    - size
    - absl::flat_hash_map::reserve
    - std::vector::end
    - const_cast<MapPair&>
    - std::vector::push_back
    - std::vector::reserve
    - LOG
    - std::vector::size
    - std::move
    - std::nth_element
    - absl::flat_hash_map::emplace
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    - absl::GetFlag
    - std::min
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: void Gc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: sentencepiece::unigram::TrainerModel::TrainerModel
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TrainerModel::TrainerModel(const TrainerSpec& trainer_spec,\n
      \                          const NormalizerSpec& normalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: TrainerModel::~TrainerModel()
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerModel::~TrainerModel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: '& TrainerModel::GetSentencePieces() const'
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: TrainerModel::SentencePieces & TrainerModel::GetSentencePieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:199,1
    - Dst: Clear
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:202,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:206,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:209,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:209,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:210,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:211,1
    - Dst: add_pieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:212,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:213,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:213,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:213,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:214,1
    - Dst: BuildTrie
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:217,1
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' sentencepieces'
    argTypes:
    - SentencePieces
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 219
    functionName: sentencepiece::unigram::TrainerModel::SetSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - size
    - std::vector::emplace_back
    - status
    - std::move
    - add_pieces
    - BuildTrie
    - absl::string_view::data
    - absl::string_view::size
    - RET_CHECK
    - auto*::set_score
    - Clear
    - std::isnan
    - std::min
    - auto*::set_piece
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerModel::SetSentencePieces(SentencePieces&& sentencepieces)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:222,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:222,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:223,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:229,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:232,1
    - Dst: seed_sentencepieces_file
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:237,1
    - Dst: sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:238,1
    - Dst: sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 242
    functionName: sentencepiece::unigram::Trainer::MakeSeedSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
    - sentencepiece::string_util::UnicodeCharToUTF8
    - sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
    - empty
    - seed_sentencepieces_file
    - absl::GetFlag
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: TrainerModel::SentencePieces Trainer::MakeSeedSentencePieces()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:248,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:249,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:252,1
    - Dst: seed_sentencepieces_file
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:253,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:257,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:258,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:259,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:260,1
    - Dst: absl::SimpleAtoi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:264,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:265,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:268,1
    - Dst: IsValidSentencePiece
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:269,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:273,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:274,1
    - Dst: seed_sentencepiece_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:274,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:275,1
    - Dst: seed_sentencepiece_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:276,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:281,1
    - Dst: UnicodeText::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:281,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:284,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:287,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:289,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:289,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:292,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:292,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:292,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - ' all_chars'
    argTypes:
    - absl::flat_hash_map<std::string, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 295
    functionName: sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - TrainerModel::SentencePieces::size
    - IsValidSentencePiece
    - absl::SimpleAtoi
    - Sorted
    - std::vector::size
    - LOG
    - UnicodeText::size
    - TrainerModel::SentencePieces::emplace_back
    - seed_sentencepieces_file
    - static_cast<size_t>
    - absl::StrSplit
    - ToLogProb
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - TrainerModel::SentencePieces::begin
    - TrainerModel::SentencePieces::end
    - seed_sentencepiece_size
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::LoadSeedSentencePiecesFromFile(\n
      \   const absl::flat_hash_map<std::string, int64_t>& all_chars)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:301,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:302,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:306,1
    - Dst: seed_sentencepiece_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:306,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:308,1
    - Dst: std::max<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:309,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:310,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:314,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:319,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:322,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:325,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:337,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:339,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:340,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:343,1
    - Dst: std::string::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:344,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:348,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:348,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:359,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:361,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:361,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:361,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:362,1
    - Dst: std::max<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:363,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:364,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:364,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:365,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:367,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:371,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:371,1
    - Dst: libsais_omp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:383,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:383,1
    - Dst: libsais_plcp_omp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:384,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:384,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:384,1
    - Dst: libsais_lcp_omp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: libsais
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:391,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:391,1
    - Dst: libsais_plcp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:392,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:392,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:392,1
    - Dst: libsais_lcp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:410,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:421,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:422,1
    - Dst: std::vector::pop_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:423,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:433,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:457,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:459,1
    - Dst: absl::string_view::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:459,1
    - Dst: absl::string_view::remove_suffix
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:460,1
    - Dst: absl::string_view::find
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:464,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:469,1
    - Dst: max_sentencepiece_length
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:469,1
    - Dst: sentencepiece::string_util::UTF8Len
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:470,1
    - Dst: IsValidSentencePiece
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:473,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:473,1
    - Dst: BoundedPriorityQueue::Add
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:478,1
    - Dst: process_interval
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:480,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:482,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:483,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:487,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:488,1
    - Dst: BoundedPriorityQueue::MaybeGc
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:492,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:494,1
    - Dst: BoundedPriorityQueue::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:496,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:499,1
    - Dst: BoundedPriorityQueue::Get
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:503,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:504,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:504,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:505,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:505,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:508,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:508,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:508,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:510,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:510,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 74
    argCount: 1
    argNames:
    - ' all_chars'
    argTypes:
    - absl::flat_hash_map<std::string, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 513
    functionName: sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 1
    functionsReached:
    - TrainerModel::SentencePieces::size
    - IsValidSentencePiece
    - libsais_lcp
    - absl::string_view::empty
    - BoundedPriorityQueue::Get
    - std::max<int>
    - std::string::size
    - libsais_lcp_omp
    - std::move
    - std::log
    - BoundedPriorityQueue::MaybeGc
    - TrainerModel::SentencePieces::begin
    - libsais_omp
    - data
    - BoundedPriorityQueue::data
    - BoundedPriorityQueue::Add
    - ToLogProb
    - TrainerModel::SentencePieces::end
    - std::string::data
    - size
    - libsais_plcp
    - std::vector::back
    - absl::string_view::remove_suffix
    - std::vector::push_back
    - LOG
    - std::string::push_back
    - std::max<uint64_t>
    - seed_sentencepiece_size
    - CHECK
    - TrainerModel::SentencePieces::emplace_back
    - libsais_plcp_omp
    - sentencepiece::string_util::UTF8Len
    - libsais
    - std::max
    - std::vector::data
    - std::vector::pop_back
    - sentencepiece::string_util::UTF8ToUnicodeText
    - vocab_size
    - sentencepiece::port::ContainsKey
    - max_sentencepiece_length
    - Sorted
    - static_cast<float>
    - std::max<size_t>
    - static_cast<int32_t>
    - reinterpret_cast<const uint8_t*>
    - process_interval
    - absl::string_view::find
    - static_cast<size_t>
    - static_cast<uint64_t>
    - std::string::append
    - absl::string_view::back
    - absl::GetFlag
    - num_threads
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::MakeSeedSentencePiecesFromCorpus(\n
      \   const absl::flat_hash_map<std::string, int64_t>& all_chars)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:517,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:518,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:519,1
    - Dst: std::make_unique<ThreadPool>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:521,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:521,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:529,1
    - Dst: auto::Schedule
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:530,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:532,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:532,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:533,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:534,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:537,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:538,1
    - Dst: Lattice::PopulateMarginal
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:539,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:540,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:540,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:541,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:541,1
    - Dst: auto::reset
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:547,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:550,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:553,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:560,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - ' model'
    - obj
    - num_tokens
    argTypes:
    - TrainerModel
    - float*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 563
    functionName: sentencepiece::unigram::Trainer::RunEStep
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - GetPieceSize
    - resize
    - auto::Schedule
    - size
    - PopulateNodes
    - num_threads
    - CHECK
    - Lattice::Viterbi
    - auto::reset
    - Lattice::PopulateMarginal
    - std::isnan
    - Lattice::SetSentence
    - std::make_unique<ThreadPool>
    linkageType: ''
    returnType: std::vector<float>
    signature: "std::vector<float> Trainer::RunEStep(const TrainerModel& model, float*
      obj,\n                                     int64_t* num_tokens) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:567,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:568,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:568,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:568,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:572,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:581,1
    - Dst: Digamma
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:589,1
    - Dst: Digamma
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' model'
    - ' expected'
    argTypes:
    - TrainerModel
    - std::vector<float>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 595
    functionName: sentencepiece::unigram::Trainer::RunMStep
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - CHECK_EQ
    - size
    - GetSentencePieces
    - Digamma
    - TrainerModel::SentencePieces::emplace_back
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::RunMStep(\n    const TrainerModel&
      model, const std::vector<float>& expected) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:599,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:602,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:603,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:610,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:612,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:613,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:614,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:615,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:619,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:622,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:625,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:632,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:634,1
    - Dst: std::make_unique<ThreadPool>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:636,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:636,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:637,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:638,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:638,1
    - Dst: auto::Schedule
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:640,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:642,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:643,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:645,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:646,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:647,1
    - Dst: auto::reset
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:655,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:657,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:658,1
    - Dst: std::accumulate
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:664,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:664,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:664,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:665,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:665,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:674,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:678,1
    - Dst: TrainerModel::SentencePieces::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:680,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:683,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:683,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:689,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:690,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:690,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:696,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:696,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:702,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:707,1
    - Dst: shrinking_factor
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:708,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:708,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:712,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:713,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:713,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:716,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - TrainerModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 720
    functionName: sentencepiece::unigram::Trainer::PruneSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - auto::Schedule
    - TrainerModel::SentencePieces::size
    - auto::size
    - TrainerModel::SentencePieces::push_back
    - std::max<int>
    - std::log
    - GetSentencePieces
    - empty
    - static_cast<double>
    - shrinking_factor
    - size
    - std::accumulate
    - Lattice::NBest
    - PopulateNodes
    - std::vector::emplace_back
    - Lattice::Viterbi
    - push_back
    - TrainerModel::SentencePieces::emplace_back
    - std::vector::begin
    - std::make_unique<ThreadPool>
    - first::size
    - resize
    - std::vector::end
    - Sorted
    - auto::reset
    - static_cast<size_t>
    - Lattice::SetSentence
    - num_threads
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::PruneSentencePieces(\n    const
      TrainerModel& model) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:724,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:730,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:732,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:733,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:737,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:738,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:739,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:739,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:745,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:750,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:752,1
    - Dst: auto::first::empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:760,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:762,1
    - Dst: TrainerModel::SentencePieces::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:768,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:771,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:772,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - TrainerModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 775
    functionName: sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - PopulateNodes
    - size
    - TrainerModel::SentencePieces::push_back
    - CHECK
    - Lattice::begin_nodes
    - Lattice::Viterbi
    - Lattice::size
    - static_cast<uint32_t>
    - LOG
    - GetSentencePieces
    - auto::first::empty
    - std::numeric_limits<float>::infinity
    - Lattice::SetSentence
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::PruneUnreachableSentencePieces(\n
      \   const TrainerModel& model) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:779,1
    - Dst: begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:781,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:782,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:786,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:789,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:790,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:791,1
    - Dst: min_score
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:797,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:803,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:803,1
    - Dst: CHECK_GT
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:804,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:807,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:808,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:811,1
    - Dst: absl::flat_hash_map::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:811,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:817,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - TrainerModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 818
    functionName: sentencepiece::unigram::Trainer::FinalizeSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - min_score
    - sentencepiece::string_util::UnicodeCharToUTF8
    - vocab_size
    - size
    - sentencepiece::port::ContainsKey
    - absl::flat_hash_map::size
    - Sorted
    - begin
    - GetSentencePieces
    - CHECK_GT
    - static_cast<size_t>
    - end
    - absl::GetFlag
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::FinalizeSentencePieces(\n    const
      TrainerModel& model) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:821,1
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:821,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:823,1
    - Dst: model_type
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:823,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:824,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:824,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:828,1
    - Dst: TrainerModel::status
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:828,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:829,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:829,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:830,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:831,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:831,1
    - Dst: sentencepiece::unigram::Trainer::MakeSeedSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:834,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:835,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:835,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:837,1
    - Dst: TrainerModel::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:837,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:837,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:839,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:839,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:841,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:841,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:843,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:845,1
    - Dst: sentencepiece::unigram::Trainer::TrainSparsePruning
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:845,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:847,1
    - Dst: sentencepiece::unigram::Trainer::TrainDiscretePruning
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:847,1
    - Dst: sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:850,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:851,1
    - Dst: TrainerModel::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:851,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:851,1
    - Dst: sentencepiece::unigram::Trainer::FinalizeSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:854,1
    - Dst: Save
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 857
    functionName: sentencepiece::unigram::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - RET_CHECK_EQ
    - TrainerModel::status
    - sentencepiece::unigram::Trainer::FinalizeSentencePieces
    - std::move
    - empty
    - model_type
    - LoadSentences
    - TrainerModel::SetSentencePieces
    - size
    - status
    - LOG
    - sentencepiece::unigram::Trainer::TrainDiscretePruning
    - Save
    - sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
    - RET_CHECK
    - vocab_size
    - auto::empty
    - sentencepiece::unigram::Trainer::TrainSparsePruning
    - sentencepiece::unigram::Trainer::MakeSeedSentencePieces
    - static_cast<size_t>
    - escape_whitespaces
    - RETURN_IF_ERROR
    - absl::GetFlag
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:862,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:865,1
    - Dst: num_sub_iterations
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:870,1
    - Dst: sentencepiece::unigram::Trainer::RunEStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:874,1
    - Dst: sentencepiece::unigram::Trainer::RunMStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:877,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:878,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:878,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:878,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:880,1
    - Dst: TrainerModel*::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:880,1
    - Dst: calc_bytes_per_tok
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:882,1
    - Dst: sentencepiece::unigram::Trainer::PruneSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:887,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:888,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:888,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:888,1
    - Dst: TrainerModel*::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:892,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:897,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - model
    argTypes:
    - TrainerModel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 898
    functionName: sentencepiece::unigram::Trainer::TrainDiscretePruning
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 1
    functionsReached:
    - first::size
    - absl::OkStatus
    - num_sub_iterations
    - calc_bytes_per_tok
    - static_cast<float>
    - sentencepiece::unigram::Trainer::RunMStep
    - sentencepiece::unigram::Trainer::RunEStep
    - sentencepiece::unigram::Trainer::PruneSentencePieces
    - std::move
    - LOG
    - TrainerModel*::GetPieceSize
    - RETURN_IF_ERROR
    - TrainerModel*::SetSentencePieces
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::TrainDiscretePruning(TrainerModel* model)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:903,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:906,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:909,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:913,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:915,1
    - Dst: sentencepiece::unigram::Trainer::RunEStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:926,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:932,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:934,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:935,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:935,1
    - Dst: std::nth_element
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:940,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:940,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:941,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:942,1
    - Dst: std::greater<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:942,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:943,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:946,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:946,1
    - Dst: calc_bytes_per_tok
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:949,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:956,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:958,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:959,1
    - Dst: TrainerModel*::GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:959,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:962,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:962,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:962,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:963,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:963,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:963,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:967,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:968,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:969,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:971,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:973,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:979,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:987,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:989,1
    - Dst: sentencepiece::unigram::Trainer::RunEStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:992,1
    - Dst: TrainerModel::SentencePieces::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:994,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:994,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:995,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:996,1
    - Dst: TrainerModel*::GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:996,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:997,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:999,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:999,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:999,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1000,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1000,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1000,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1001,1
    - Dst: TrainerModel*::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1001,1
    - Dst: calc_bytes_per_tok
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1003,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1005,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 1
    argNames:
    - model
    argTypes:
    - TrainerModel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 1006
    functionName: sentencepiece::unigram::Trainer::TrainSparsePruning
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 1
    functionsReached:
    - TrainerModel*::GetSentencePieces
    - absl::OkStatus
    - auto::size
    - std::vector::size
    - std::move
    - std::nth_element
    - TrainerModel::SentencePieces::begin
    - TrainerModel::SentencePieces::end
    - ToLogProb
    - sentencepiece::unigram::Trainer::RunEStep
    - LOG
    - TrainerModel*::GetPieceSize
    - TrainerModel*::SetSentencePieces
    - TrainerModel::SentencePieces::emplace_back
    - TrainerModel::SentencePieces::reserve
    - std::max
    - std::vector::begin
    - first::size
    - calc_bytes_per_tok
    - std::vector::end
    - static_cast<float>
    - std::greater<float>
    - static_cast<size_t>
    - RETURN_IF_ERROR
    - absl::GetFlag
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::TrainSparsePruning(TrainerModel* model)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: sentencepiece::unigram::Digamma
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    linkageType: ''
    returnType: double
    signature: double Digamma(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - IT
    - IT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: sentencepiece::unigram::ToLogProb
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void ToLogProb(IT begin, IT end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundedPriorityQueue(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:78,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:79,1
    - Dst: emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    - Dst: std::string
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key_view
    - freq_delta
    argTypes:
    - absl::string_view
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Add
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - std::string
    - find
    - emplace
    linkageType: ''
    returnType: void
    signature: void Add(absl::string_view key_view, uint64_t freq_delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:87,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::Gc
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::BoundedPriorityQueue::Gc
    - size
    linkageType: ''
    returnType: void
    signature: void MaybeGc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: '& data() const'
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, uint64_t>
    signature: absl::flat_hash_map<std::string, uint64_t> & data() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:104,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:108,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:112,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:121,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:123,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 127
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Get
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::forward_as_tuple
    - size
    - std::vector::end
    - clear
    - key::size
    - std::vector::emplace_back
    - std::vector::push_back
    - std::vector::reserve
    - std::vector::size
    - std::sort
    - static_cast<uint64_t>
    - std::vector::begin
    - absl::GetFlag
    - std::min
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    linkageType: ''
    returnType: std::vector<std::pair<std::string, uint64_t>>
    signature: std::vector<std::pair<std::string, uint64_t>> Get()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:132,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: std::sqrt
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:136,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    - Dst: std::pow
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - freq
    - len
    - power
    argTypes:
    - uint64_t
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 2
    functionsReached:
    - static_cast<float>
    - std::sqrt
    - std::pow
    linkageType: ''
    returnType: float
    signature: float CalculateScore(uint64_t freq, float len, float power)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:143,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: UnicodeText::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - freq
    - power
    argTypes:
    - absl::string_view
    - uint64_t
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 5
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - UnicodeText::size
    - static_cast<float>
    - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    linkageType: ''
    returnType: float
    signature: "float CalculatePieceScore(absl::string_view key, uint64_t freq,\n
      \                                  float power)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:148,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:149,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:155,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:158,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::nth_element
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:164,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:166,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:167,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:168,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:169,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:170,1
    - Dst: absl::flat_hash_map::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:174,1
    - Dst: const_cast<MapPair&>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:176,1
    - Dst: absl::flat_hash_map::emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 180
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Gc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 3
    functionsReached:
    - first::size
    - std::forward_as_tuple
    - size
    - absl::flat_hash_map::reserve
    - std::vector::end
    - const_cast<MapPair&>
    - std::vector::push_back
    - std::vector::reserve
    - LOG
    - std::vector::size
    - std::move
    - std::nth_element
    - absl::flat_hash_map::emplace
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    - absl::GetFlag
    - std::min
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: void Gc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: sentencepiece::unigram::Digamma
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    linkageType: ''
    returnType: double
    signature: double Digamma(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - IT
    - IT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: sentencepiece::unigram::ToLogProb
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void ToLogProb(IT begin, IT end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundedPriorityQueue(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:78,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:79,1
    - Dst: emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    - Dst: std::string
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key_view
    - freq_delta
    argTypes:
    - absl::string_view
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Add
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - std::string
    - find
    - emplace
    linkageType: ''
    returnType: void
    signature: void Add(absl::string_view key_view, uint64_t freq_delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:87,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::Gc
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::BoundedPriorityQueue::Gc
    - size
    linkageType: ''
    returnType: void
    signature: void MaybeGc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: '& data() const'
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, uint64_t>
    signature: absl::flat_hash_map<std::string, uint64_t> & data() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:104,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:108,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:112,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:121,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:123,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 127
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Get
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::forward_as_tuple
    - size
    - std::vector::end
    - clear
    - key::size
    - std::vector::emplace_back
    - std::vector::push_back
    - std::vector::reserve
    - std::vector::size
    - std::sort
    - static_cast<uint64_t>
    - std::vector::begin
    - absl::GetFlag
    - std::min
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    linkageType: ''
    returnType: std::vector<std::pair<std::string, uint64_t>>
    signature: std::vector<std::pair<std::string, uint64_t>> Get()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:132,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: std::sqrt
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:136,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    - Dst: std::pow
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - freq
    - len
    - power
    argTypes:
    - uint64_t
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 3
    functionsReached:
    - static_cast<float>
    - std::sqrt
    - std::pow
    linkageType: ''
    returnType: float
    signature: float CalculateScore(uint64_t freq, float len, float power)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:143,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: UnicodeText::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - freq
    - power
    argTypes:
    - absl::string_view
    - uint64_t
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 7
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - UnicodeText::size
    - static_cast<float>
    - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    linkageType: ''
    returnType: float
    signature: "float CalculatePieceScore(absl::string_view key, uint64_t freq,\n
      \                                  float power)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:148,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:149,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:155,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:158,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::nth_element
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:164,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:166,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:167,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:168,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:169,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:170,1
    - Dst: absl::flat_hash_map::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:174,1
    - Dst: const_cast<MapPair&>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:176,1
    - Dst: absl::flat_hash_map::emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 180
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Gc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 4
    functionsReached:
    - first::size
    - std::forward_as_tuple
    - size
    - absl::flat_hash_map::reserve
    - std::vector::end
    - const_cast<MapPair&>
    - std::vector::push_back
    - std::vector::reserve
    - LOG
    - std::vector::size
    - std::move
    - std::nth_element
    - absl::flat_hash_map::emplace
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    - absl::GetFlag
    - std::min
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: void Gc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: sentencepiece::unigram::TrainerModel::TrainerModel
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TrainerModel::TrainerModel(const TrainerSpec& trainer_spec,\n
      \                          const NormalizerSpec& normalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: TrainerModel::~TrainerModel()
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerModel::~TrainerModel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: '& TrainerModel::GetSentencePieces() const'
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: TrainerModel::SentencePieces & TrainerModel::GetSentencePieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:199,1
    - Dst: Clear
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:202,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:206,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:209,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:209,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:210,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:211,1
    - Dst: add_pieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:212,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:213,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:213,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:213,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:214,1
    - Dst: BuildTrie
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:217,1
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' sentencepieces'
    argTypes:
    - SentencePieces
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 219
    functionName: sentencepiece::unigram::TrainerModel::SetSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - size
    - std::vector::emplace_back
    - status
    - std::move
    - add_pieces
    - BuildTrie
    - absl::string_view::data
    - absl::string_view::size
    - RET_CHECK
    - auto*::set_score
    - Clear
    - std::isnan
    - std::min
    - auto*::set_piece
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerModel::SetSentencePieces(SentencePieces&& sentencepieces)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:222,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:222,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:223,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:229,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:232,1
    - Dst: seed_sentencepieces_file
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:237,1
    - Dst: sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:238,1
    - Dst: sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 242
    functionName: sentencepiece::unigram::Trainer::MakeSeedSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
    - sentencepiece::string_util::UnicodeCharToUTF8
    - sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
    - empty
    - seed_sentencepieces_file
    - absl::GetFlag
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: TrainerModel::SentencePieces Trainer::MakeSeedSentencePieces()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:248,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:249,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:252,1
    - Dst: seed_sentencepieces_file
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:253,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:257,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:258,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:259,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:260,1
    - Dst: absl::SimpleAtoi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:264,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:265,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:268,1
    - Dst: IsValidSentencePiece
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:269,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:273,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:274,1
    - Dst: seed_sentencepiece_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:274,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:275,1
    - Dst: seed_sentencepiece_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:276,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:281,1
    - Dst: UnicodeText::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:281,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:284,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:287,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:289,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:289,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:292,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:292,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:292,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - ' all_chars'
    argTypes:
    - absl::flat_hash_map<std::string, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 295
    functionName: sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - TrainerModel::SentencePieces::size
    - IsValidSentencePiece
    - absl::SimpleAtoi
    - Sorted
    - std::vector::size
    - LOG
    - UnicodeText::size
    - TrainerModel::SentencePieces::emplace_back
    - seed_sentencepieces_file
    - static_cast<size_t>
    - absl::StrSplit
    - ToLogProb
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - TrainerModel::SentencePieces::begin
    - TrainerModel::SentencePieces::end
    - seed_sentencepiece_size
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::LoadSeedSentencePiecesFromFile(\n
      \   const absl::flat_hash_map<std::string, int64_t>& all_chars)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:301,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:302,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:306,1
    - Dst: seed_sentencepiece_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:306,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:308,1
    - Dst: std::max<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:309,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:310,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:314,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:319,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:322,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:325,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:337,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:339,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:340,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:343,1
    - Dst: std::string::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:344,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:348,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:348,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:359,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:361,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:361,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:361,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:362,1
    - Dst: std::max<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:363,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:364,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:364,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:365,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:367,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:371,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:371,1
    - Dst: libsais_omp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:383,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:383,1
    - Dst: libsais_plcp_omp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:384,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:384,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:384,1
    - Dst: libsais_lcp_omp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: libsais
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:391,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:391,1
    - Dst: libsais_plcp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:392,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:392,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:392,1
    - Dst: libsais_lcp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:410,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:421,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:422,1
    - Dst: std::vector::pop_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:423,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:433,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:457,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:459,1
    - Dst: absl::string_view::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:459,1
    - Dst: absl::string_view::remove_suffix
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:460,1
    - Dst: absl::string_view::find
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:464,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:469,1
    - Dst: max_sentencepiece_length
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:469,1
    - Dst: sentencepiece::string_util::UTF8Len
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:470,1
    - Dst: IsValidSentencePiece
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:473,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:473,1
    - Dst: BoundedPriorityQueue::Add
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:478,1
    - Dst: process_interval
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:480,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:482,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:483,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:487,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:488,1
    - Dst: BoundedPriorityQueue::MaybeGc
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:492,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:494,1
    - Dst: BoundedPriorityQueue::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:496,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:499,1
    - Dst: BoundedPriorityQueue::Get
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:503,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:504,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:504,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:505,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:505,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:508,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:508,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:508,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:510,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:510,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 74
    argCount: 1
    argNames:
    - ' all_chars'
    argTypes:
    - absl::flat_hash_map<std::string, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 513
    functionName: sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 2
    functionsReached:
    - TrainerModel::SentencePieces::size
    - IsValidSentencePiece
    - libsais_lcp
    - absl::string_view::empty
    - BoundedPriorityQueue::Get
    - std::max<int>
    - std::string::size
    - libsais_lcp_omp
    - std::move
    - std::log
    - BoundedPriorityQueue::MaybeGc
    - TrainerModel::SentencePieces::begin
    - libsais_omp
    - data
    - BoundedPriorityQueue::data
    - BoundedPriorityQueue::Add
    - ToLogProb
    - TrainerModel::SentencePieces::end
    - std::string::data
    - size
    - libsais_plcp
    - std::vector::back
    - absl::string_view::remove_suffix
    - std::vector::push_back
    - LOG
    - std::string::push_back
    - std::max<uint64_t>
    - seed_sentencepiece_size
    - CHECK
    - TrainerModel::SentencePieces::emplace_back
    - libsais_plcp_omp
    - sentencepiece::string_util::UTF8Len
    - libsais
    - std::max
    - std::vector::data
    - std::vector::pop_back
    - sentencepiece::string_util::UTF8ToUnicodeText
    - vocab_size
    - sentencepiece::port::ContainsKey
    - max_sentencepiece_length
    - Sorted
    - static_cast<float>
    - std::max<size_t>
    - static_cast<int32_t>
    - reinterpret_cast<const uint8_t*>
    - process_interval
    - absl::string_view::find
    - static_cast<size_t>
    - static_cast<uint64_t>
    - std::string::append
    - absl::string_view::back
    - absl::GetFlag
    - num_threads
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::MakeSeedSentencePiecesFromCorpus(\n
      \   const absl::flat_hash_map<std::string, int64_t>& all_chars)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:517,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:518,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:519,1
    - Dst: std::make_unique<ThreadPool>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:521,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:521,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:529,1
    - Dst: auto::Schedule
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:530,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:532,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:532,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:533,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:534,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:537,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:538,1
    - Dst: Lattice::PopulateMarginal
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:539,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:540,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:540,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:541,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:541,1
    - Dst: auto::reset
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:547,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:550,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:553,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:560,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - ' model'
    - obj
    - num_tokens
    argTypes:
    - TrainerModel
    - float*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 563
    functionName: sentencepiece::unigram::Trainer::RunEStep
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 2
    functionsReached:
    - GetPieceSize
    - resize
    - auto::Schedule
    - size
    - PopulateNodes
    - num_threads
    - CHECK
    - Lattice::Viterbi
    - auto::reset
    - Lattice::PopulateMarginal
    - std::isnan
    - Lattice::SetSentence
    - std::make_unique<ThreadPool>
    linkageType: ''
    returnType: std::vector<float>
    signature: "std::vector<float> Trainer::RunEStep(const TrainerModel& model, float*
      obj,\n                                     int64_t* num_tokens) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:567,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:568,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:568,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:568,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:572,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:581,1
    - Dst: Digamma
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:589,1
    - Dst: Digamma
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' model'
    - ' expected'
    argTypes:
    - TrainerModel
    - std::vector<float>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 595
    functionName: sentencepiece::unigram::Trainer::RunMStep
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 1
    functionsReached:
    - CHECK_EQ
    - size
    - GetSentencePieces
    - Digamma
    - TrainerModel::SentencePieces::emplace_back
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::RunMStep(\n    const TrainerModel&
      model, const std::vector<float>& expected) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:599,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:602,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:603,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:610,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:612,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:613,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:614,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:615,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:619,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:622,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:625,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:632,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:634,1
    - Dst: std::make_unique<ThreadPool>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:636,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:636,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:637,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:638,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:638,1
    - Dst: auto::Schedule
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:640,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:642,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:643,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:645,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:646,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:647,1
    - Dst: auto::reset
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:655,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:657,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:658,1
    - Dst: std::accumulate
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:664,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:664,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:664,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:665,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:665,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:674,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:678,1
    - Dst: TrainerModel::SentencePieces::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:680,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:683,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:683,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:689,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:690,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:690,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:696,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:696,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:702,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:707,1
    - Dst: shrinking_factor
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:708,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:708,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:712,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:713,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:713,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:716,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - TrainerModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 720
    functionName: sentencepiece::unigram::Trainer::PruneSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 1
    functionsReached:
    - auto::Schedule
    - TrainerModel::SentencePieces::size
    - auto::size
    - TrainerModel::SentencePieces::push_back
    - std::max<int>
    - std::log
    - GetSentencePieces
    - empty
    - static_cast<double>
    - shrinking_factor
    - size
    - std::accumulate
    - Lattice::NBest
    - PopulateNodes
    - std::vector::emplace_back
    - Lattice::Viterbi
    - push_back
    - TrainerModel::SentencePieces::emplace_back
    - std::vector::begin
    - std::make_unique<ThreadPool>
    - first::size
    - resize
    - std::vector::end
    - Sorted
    - auto::reset
    - static_cast<size_t>
    - Lattice::SetSentence
    - num_threads
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::PruneSentencePieces(\n    const
      TrainerModel& model) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:724,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:730,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:732,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:733,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:737,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:738,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:739,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:739,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:745,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:750,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:752,1
    - Dst: auto::first::empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:760,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:762,1
    - Dst: TrainerModel::SentencePieces::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:768,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:771,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:772,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - TrainerModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 775
    functionName: sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - PopulateNodes
    - size
    - TrainerModel::SentencePieces::push_back
    - CHECK
    - Lattice::begin_nodes
    - Lattice::Viterbi
    - Lattice::size
    - static_cast<uint32_t>
    - LOG
    - GetSentencePieces
    - auto::first::empty
    - std::numeric_limits<float>::infinity
    - Lattice::SetSentence
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::PruneUnreachableSentencePieces(\n
      \   const TrainerModel& model) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:779,1
    - Dst: begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:781,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:782,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:786,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:789,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:790,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:791,1
    - Dst: min_score
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:797,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:803,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:803,1
    - Dst: CHECK_GT
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:804,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:807,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:808,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:811,1
    - Dst: absl::flat_hash_map::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:811,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:817,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - TrainerModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 818
    functionName: sentencepiece::unigram::Trainer::FinalizeSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 1
    functionsReached:
    - min_score
    - sentencepiece::string_util::UnicodeCharToUTF8
    - vocab_size
    - size
    - sentencepiece::port::ContainsKey
    - absl::flat_hash_map::size
    - Sorted
    - begin
    - GetSentencePieces
    - CHECK_GT
    - static_cast<size_t>
    - end
    - absl::GetFlag
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::FinalizeSentencePieces(\n    const
      TrainerModel& model) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:821,1
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:821,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:823,1
    - Dst: model_type
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:823,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:824,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:824,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:828,1
    - Dst: TrainerModel::status
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:828,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:829,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:829,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:830,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:831,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:831,1
    - Dst: sentencepiece::unigram::Trainer::MakeSeedSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:834,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:835,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:835,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:837,1
    - Dst: TrainerModel::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:837,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:837,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:839,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:839,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:841,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:841,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:843,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:845,1
    - Dst: sentencepiece::unigram::Trainer::TrainSparsePruning
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:845,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:847,1
    - Dst: sentencepiece::unigram::Trainer::TrainDiscretePruning
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:847,1
    - Dst: sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:850,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:851,1
    - Dst: TrainerModel::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:851,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:851,1
    - Dst: sentencepiece::unigram::Trainer::FinalizeSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:854,1
    - Dst: Save
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 857
    functionName: sentencepiece::unigram::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - RET_CHECK_EQ
    - TrainerModel::status
    - sentencepiece::unigram::Trainer::FinalizeSentencePieces
    - std::move
    - empty
    - model_type
    - LoadSentences
    - TrainerModel::SetSentencePieces
    - size
    - status
    - LOG
    - sentencepiece::unigram::Trainer::TrainDiscretePruning
    - Save
    - sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
    - RET_CHECK
    - vocab_size
    - auto::empty
    - sentencepiece::unigram::Trainer::TrainSparsePruning
    - sentencepiece::unigram::Trainer::MakeSeedSentencePieces
    - static_cast<size_t>
    - escape_whitespaces
    - RETURN_IF_ERROR
    - absl::GetFlag
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:862,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:865,1
    - Dst: num_sub_iterations
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:870,1
    - Dst: sentencepiece::unigram::Trainer::RunEStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:874,1
    - Dst: sentencepiece::unigram::Trainer::RunMStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:877,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:878,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:878,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:878,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:880,1
    - Dst: TrainerModel*::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:880,1
    - Dst: calc_bytes_per_tok
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:882,1
    - Dst: sentencepiece::unigram::Trainer::PruneSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:887,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:888,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:888,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:888,1
    - Dst: TrainerModel*::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:892,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:897,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - model
    argTypes:
    - TrainerModel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 898
    functionName: sentencepiece::unigram::Trainer::TrainDiscretePruning
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 2
    functionsReached:
    - first::size
    - absl::OkStatus
    - num_sub_iterations
    - calc_bytes_per_tok
    - static_cast<float>
    - sentencepiece::unigram::Trainer::RunMStep
    - sentencepiece::unigram::Trainer::RunEStep
    - sentencepiece::unigram::Trainer::PruneSentencePieces
    - std::move
    - LOG
    - TrainerModel*::GetPieceSize
    - RETURN_IF_ERROR
    - TrainerModel*::SetSentencePieces
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::TrainDiscretePruning(TrainerModel* model)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:903,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:906,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:909,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:913,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:915,1
    - Dst: sentencepiece::unigram::Trainer::RunEStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:926,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:932,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:934,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:935,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:935,1
    - Dst: std::nth_element
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:940,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:940,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:941,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:942,1
    - Dst: std::greater<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:942,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:943,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:946,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:946,1
    - Dst: calc_bytes_per_tok
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:949,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:956,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:958,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:959,1
    - Dst: TrainerModel*::GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:959,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:962,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:962,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:962,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:963,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:963,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:963,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:967,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:968,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:969,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:971,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:973,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:979,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:987,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:989,1
    - Dst: sentencepiece::unigram::Trainer::RunEStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:992,1
    - Dst: TrainerModel::SentencePieces::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:994,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:994,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:995,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:996,1
    - Dst: TrainerModel*::GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:996,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:997,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:999,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:999,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:999,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1000,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1000,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1000,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1001,1
    - Dst: TrainerModel*::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1001,1
    - Dst: calc_bytes_per_tok
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1003,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1005,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 1
    argNames:
    - model
    argTypes:
    - TrainerModel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 1006
    functionName: sentencepiece::unigram::Trainer::TrainSparsePruning
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 2
    functionsReached:
    - TrainerModel*::GetSentencePieces
    - absl::OkStatus
    - auto::size
    - std::vector::size
    - std::move
    - std::nth_element
    - TrainerModel::SentencePieces::begin
    - TrainerModel::SentencePieces::end
    - ToLogProb
    - sentencepiece::unigram::Trainer::RunEStep
    - LOG
    - TrainerModel*::GetPieceSize
    - TrainerModel*::SetSentencePieces
    - TrainerModel::SentencePieces::emplace_back
    - TrainerModel::SentencePieces::reserve
    - std::max
    - std::vector::begin
    - first::size
    - calc_bytes_per_tok
    - std::vector::end
    - static_cast<float>
    - std::greater<float>
    - static_cast<size_t>
    - RETURN_IF_ERROR
    - absl::GetFlag
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::TrainSparsePruning(TrainerModel* model)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: sentencepiece::unigram::Digamma
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    linkageType: ''
    returnType: double
    signature: double Digamma(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - IT
    - IT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: sentencepiece::unigram::ToLogProb
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void ToLogProb(IT begin, IT end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundedPriorityQueue(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:78,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:79,1
    - Dst: emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    - Dst: std::string
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key_view
    - freq_delta
    argTypes:
    - absl::string_view
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Add
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - std::string
    - find
    - emplace
    linkageType: ''
    returnType: void
    signature: void Add(absl::string_view key_view, uint64_t freq_delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:87,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::Gc
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::BoundedPriorityQueue::Gc
    - size
    linkageType: ''
    returnType: void
    signature: void MaybeGc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: '& data() const'
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, uint64_t>
    signature: absl::flat_hash_map<std::string, uint64_t> & data() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:104,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:108,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:112,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:121,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:123,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 127
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Get
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::forward_as_tuple
    - size
    - std::vector::end
    - clear
    - key::size
    - std::vector::emplace_back
    - std::vector::push_back
    - std::vector::reserve
    - std::vector::size
    - std::sort
    - static_cast<uint64_t>
    - std::vector::begin
    - absl::GetFlag
    - std::min
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    linkageType: ''
    returnType: std::vector<std::pair<std::string, uint64_t>>
    signature: std::vector<std::pair<std::string, uint64_t>> Get()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:132,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: std::sqrt
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:136,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    - Dst: std::pow
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - freq
    - len
    - power
    argTypes:
    - uint64_t
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 4
    functionsReached:
    - static_cast<float>
    - std::sqrt
    - std::pow
    linkageType: ''
    returnType: float
    signature: float CalculateScore(uint64_t freq, float len, float power)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:143,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: UnicodeText::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - freq
    - power
    argTypes:
    - absl::string_view
    - uint64_t
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 9
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - UnicodeText::size
    - static_cast<float>
    - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    linkageType: ''
    returnType: float
    signature: "float CalculatePieceScore(absl::string_view key, uint64_t freq,\n
      \                                  float power)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:148,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:149,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:155,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:158,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::nth_element
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:164,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:166,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:167,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:168,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:169,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:170,1
    - Dst: absl::flat_hash_map::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:174,1
    - Dst: const_cast<MapPair&>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:176,1
    - Dst: absl::flat_hash_map::emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 180
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Gc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 5
    functionsReached:
    - first::size
    - std::forward_as_tuple
    - size
    - absl::flat_hash_map::reserve
    - std::vector::end
    - const_cast<MapPair&>
    - std::vector::push_back
    - std::vector::reserve
    - LOG
    - std::vector::size
    - std::move
    - std::nth_element
    - absl::flat_hash_map::emplace
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    - absl::GetFlag
    - std::min
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: void Gc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: sentencepiece::unigram::Digamma
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    linkageType: ''
    returnType: double
    signature: double Digamma(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - IT
    - IT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: sentencepiece::unigram::ToLogProb
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void ToLogProb(IT begin, IT end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundedPriorityQueue(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:78,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:79,1
    - Dst: emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    - Dst: std::string
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key_view
    - freq_delta
    argTypes:
    - absl::string_view
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Add
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - std::string
    - find
    - emplace
    linkageType: ''
    returnType: void
    signature: void Add(absl::string_view key_view, uint64_t freq_delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:87,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::Gc
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::BoundedPriorityQueue::Gc
    - size
    linkageType: ''
    returnType: void
    signature: void MaybeGc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: '& data() const'
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, uint64_t>
    signature: absl::flat_hash_map<std::string, uint64_t> & data() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:104,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:108,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:112,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:121,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:123,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 127
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Get
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::forward_as_tuple
    - size
    - std::vector::end
    - clear
    - key::size
    - std::vector::emplace_back
    - std::vector::push_back
    - std::vector::reserve
    - std::vector::size
    - std::sort
    - static_cast<uint64_t>
    - std::vector::begin
    - absl::GetFlag
    - std::min
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    linkageType: ''
    returnType: std::vector<std::pair<std::string, uint64_t>>
    signature: std::vector<std::pair<std::string, uint64_t>> Get()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:132,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: std::sqrt
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:136,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    - Dst: std::pow
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - freq
    - len
    - power
    argTypes:
    - uint64_t
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 5
    functionsReached:
    - static_cast<float>
    - std::sqrt
    - std::pow
    linkageType: ''
    returnType: float
    signature: float CalculateScore(uint64_t freq, float len, float power)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:143,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: UnicodeText::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - freq
    - power
    argTypes:
    - absl::string_view
    - uint64_t
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 11
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - UnicodeText::size
    - static_cast<float>
    - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    linkageType: ''
    returnType: float
    signature: "float CalculatePieceScore(absl::string_view key, uint64_t freq,\n
      \                                  float power)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:148,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:149,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:155,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:158,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::nth_element
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:164,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:166,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:167,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:168,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:169,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:170,1
    - Dst: absl::flat_hash_map::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:174,1
    - Dst: const_cast<MapPair&>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:176,1
    - Dst: absl::flat_hash_map::emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 180
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Gc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 6
    functionsReached:
    - first::size
    - std::forward_as_tuple
    - size
    - absl::flat_hash_map::reserve
    - std::vector::end
    - const_cast<MapPair&>
    - std::vector::push_back
    - std::vector::reserve
    - LOG
    - std::vector::size
    - std::move
    - std::nth_element
    - absl::flat_hash_map::emplace
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    - absl::GetFlag
    - std::min
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: void Gc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: sentencepiece::unigram::TrainerModel::TrainerModel
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TrainerModel::TrainerModel(const TrainerSpec& trainer_spec,\n
      \                          const NormalizerSpec& normalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: TrainerModel::~TrainerModel()
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerModel::~TrainerModel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: '& TrainerModel::GetSentencePieces() const'
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: TrainerModel::SentencePieces & TrainerModel::GetSentencePieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:199,1
    - Dst: Clear
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:202,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:206,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:209,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:209,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:210,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:211,1
    - Dst: add_pieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:212,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:213,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:213,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:213,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:214,1
    - Dst: BuildTrie
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:217,1
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' sentencepieces'
    argTypes:
    - SentencePieces
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 219
    functionName: sentencepiece::unigram::TrainerModel::SetSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - size
    - std::vector::emplace_back
    - status
    - std::move
    - add_pieces
    - BuildTrie
    - absl::string_view::data
    - absl::string_view::size
    - RET_CHECK
    - auto*::set_score
    - Clear
    - std::isnan
    - std::min
    - auto*::set_piece
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerModel::SetSentencePieces(SentencePieces&& sentencepieces)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:222,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:222,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:223,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:229,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:232,1
    - Dst: seed_sentencepieces_file
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:237,1
    - Dst: sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:238,1
    - Dst: sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 242
    functionName: sentencepiece::unigram::Trainer::MakeSeedSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
    - sentencepiece::string_util::UnicodeCharToUTF8
    - sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
    - empty
    - seed_sentencepieces_file
    - absl::GetFlag
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: TrainerModel::SentencePieces Trainer::MakeSeedSentencePieces()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:248,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:249,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:252,1
    - Dst: seed_sentencepieces_file
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:253,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:257,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:258,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:259,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:260,1
    - Dst: absl::SimpleAtoi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:264,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:265,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:268,1
    - Dst: IsValidSentencePiece
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:269,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:273,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:274,1
    - Dst: seed_sentencepiece_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:274,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:275,1
    - Dst: seed_sentencepiece_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:276,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:281,1
    - Dst: UnicodeText::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:281,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:284,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:287,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:289,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:289,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:292,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:292,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:292,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - ' all_chars'
    argTypes:
    - absl::flat_hash_map<std::string, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 295
    functionName: sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - TrainerModel::SentencePieces::size
    - IsValidSentencePiece
    - absl::SimpleAtoi
    - Sorted
    - std::vector::size
    - LOG
    - UnicodeText::size
    - TrainerModel::SentencePieces::emplace_back
    - seed_sentencepieces_file
    - static_cast<size_t>
    - absl::StrSplit
    - ToLogProb
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - TrainerModel::SentencePieces::begin
    - TrainerModel::SentencePieces::end
    - seed_sentencepiece_size
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::LoadSeedSentencePiecesFromFile(\n
      \   const absl::flat_hash_map<std::string, int64_t>& all_chars)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:301,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:302,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:306,1
    - Dst: seed_sentencepiece_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:306,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:308,1
    - Dst: std::max<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:309,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:310,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:314,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:319,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:322,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:325,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:337,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:339,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:340,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:343,1
    - Dst: std::string::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:344,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:348,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:348,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:359,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:361,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:361,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:361,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:362,1
    - Dst: std::max<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:363,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:364,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:364,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:365,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:367,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:371,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:371,1
    - Dst: libsais_omp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:383,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:383,1
    - Dst: libsais_plcp_omp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:384,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:384,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:384,1
    - Dst: libsais_lcp_omp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: libsais
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:391,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:391,1
    - Dst: libsais_plcp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:392,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:392,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:392,1
    - Dst: libsais_lcp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:410,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:421,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:422,1
    - Dst: std::vector::pop_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:423,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:433,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:457,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:459,1
    - Dst: absl::string_view::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:459,1
    - Dst: absl::string_view::remove_suffix
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:460,1
    - Dst: absl::string_view::find
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:464,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:469,1
    - Dst: max_sentencepiece_length
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:469,1
    - Dst: sentencepiece::string_util::UTF8Len
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:470,1
    - Dst: IsValidSentencePiece
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:473,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:473,1
    - Dst: BoundedPriorityQueue::Add
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:478,1
    - Dst: process_interval
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:480,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:482,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:483,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:487,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:488,1
    - Dst: BoundedPriorityQueue::MaybeGc
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:492,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:494,1
    - Dst: BoundedPriorityQueue::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:496,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:499,1
    - Dst: BoundedPriorityQueue::Get
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:503,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:504,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:504,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:505,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:505,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:508,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:508,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:508,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:510,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:510,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 74
    argCount: 1
    argNames:
    - ' all_chars'
    argTypes:
    - absl::flat_hash_map<std::string, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 513
    functionName: sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 3
    functionsReached:
    - TrainerModel::SentencePieces::size
    - IsValidSentencePiece
    - libsais_lcp
    - absl::string_view::empty
    - BoundedPriorityQueue::Get
    - std::max<int>
    - std::string::size
    - libsais_lcp_omp
    - std::move
    - std::log
    - BoundedPriorityQueue::MaybeGc
    - TrainerModel::SentencePieces::begin
    - libsais_omp
    - data
    - BoundedPriorityQueue::data
    - BoundedPriorityQueue::Add
    - ToLogProb
    - TrainerModel::SentencePieces::end
    - std::string::data
    - size
    - libsais_plcp
    - std::vector::back
    - absl::string_view::remove_suffix
    - std::vector::push_back
    - LOG
    - std::string::push_back
    - std::max<uint64_t>
    - seed_sentencepiece_size
    - CHECK
    - TrainerModel::SentencePieces::emplace_back
    - libsais_plcp_omp
    - sentencepiece::string_util::UTF8Len
    - libsais
    - std::max
    - std::vector::data
    - std::vector::pop_back
    - sentencepiece::string_util::UTF8ToUnicodeText
    - vocab_size
    - sentencepiece::port::ContainsKey
    - max_sentencepiece_length
    - Sorted
    - static_cast<float>
    - std::max<size_t>
    - static_cast<int32_t>
    - reinterpret_cast<const uint8_t*>
    - process_interval
    - absl::string_view::find
    - static_cast<size_t>
    - static_cast<uint64_t>
    - std::string::append
    - absl::string_view::back
    - absl::GetFlag
    - num_threads
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::MakeSeedSentencePiecesFromCorpus(\n
      \   const absl::flat_hash_map<std::string, int64_t>& all_chars)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:517,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:518,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:519,1
    - Dst: std::make_unique<ThreadPool>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:521,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:521,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:529,1
    - Dst: auto::Schedule
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:530,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:532,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:532,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:533,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:534,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:537,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:538,1
    - Dst: Lattice::PopulateMarginal
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:539,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:540,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:540,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:541,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:541,1
    - Dst: auto::reset
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:547,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:550,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:553,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:560,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - ' model'
    - obj
    - num_tokens
    argTypes:
    - TrainerModel
    - float*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 563
    functionName: sentencepiece::unigram::Trainer::RunEStep
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 4
    functionsReached:
    - GetPieceSize
    - resize
    - auto::Schedule
    - size
    - PopulateNodes
    - num_threads
    - CHECK
    - Lattice::Viterbi
    - auto::reset
    - Lattice::PopulateMarginal
    - std::isnan
    - Lattice::SetSentence
    - std::make_unique<ThreadPool>
    linkageType: ''
    returnType: std::vector<float>
    signature: "std::vector<float> Trainer::RunEStep(const TrainerModel& model, float*
      obj,\n                                     int64_t* num_tokens) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:567,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:568,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:568,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:568,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:572,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:581,1
    - Dst: Digamma
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:589,1
    - Dst: Digamma
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' model'
    - ' expected'
    argTypes:
    - TrainerModel
    - std::vector<float>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 595
    functionName: sentencepiece::unigram::Trainer::RunMStep
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 2
    functionsReached:
    - CHECK_EQ
    - size
    - GetSentencePieces
    - Digamma
    - TrainerModel::SentencePieces::emplace_back
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::RunMStep(\n    const TrainerModel&
      model, const std::vector<float>& expected) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:599,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:602,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:603,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:610,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:612,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:613,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:614,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:615,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:619,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:622,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:625,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:632,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:634,1
    - Dst: std::make_unique<ThreadPool>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:636,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:636,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:637,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:638,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:638,1
    - Dst: auto::Schedule
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:640,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:642,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:643,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:645,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:646,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:647,1
    - Dst: auto::reset
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:655,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:657,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:658,1
    - Dst: std::accumulate
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:664,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:664,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:664,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:665,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:665,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:674,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:678,1
    - Dst: TrainerModel::SentencePieces::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:680,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:683,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:683,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:689,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:690,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:690,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:696,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:696,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:702,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:707,1
    - Dst: shrinking_factor
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:708,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:708,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:712,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:713,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:713,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:716,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - TrainerModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 720
    functionName: sentencepiece::unigram::Trainer::PruneSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 2
    functionsReached:
    - auto::Schedule
    - TrainerModel::SentencePieces::size
    - auto::size
    - TrainerModel::SentencePieces::push_back
    - std::max<int>
    - std::log
    - GetSentencePieces
    - empty
    - static_cast<double>
    - shrinking_factor
    - size
    - std::accumulate
    - Lattice::NBest
    - PopulateNodes
    - std::vector::emplace_back
    - Lattice::Viterbi
    - push_back
    - TrainerModel::SentencePieces::emplace_back
    - std::vector::begin
    - std::make_unique<ThreadPool>
    - first::size
    - resize
    - std::vector::end
    - Sorted
    - auto::reset
    - static_cast<size_t>
    - Lattice::SetSentence
    - num_threads
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::PruneSentencePieces(\n    const
      TrainerModel& model) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:724,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:730,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:732,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:733,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:737,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:738,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:739,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:739,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:745,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:750,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:752,1
    - Dst: auto::first::empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:760,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:762,1
    - Dst: TrainerModel::SentencePieces::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:768,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:771,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:772,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - TrainerModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 775
    functionName: sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - PopulateNodes
    - size
    - TrainerModel::SentencePieces::push_back
    - CHECK
    - Lattice::begin_nodes
    - Lattice::Viterbi
    - Lattice::size
    - static_cast<uint32_t>
    - LOG
    - GetSentencePieces
    - auto::first::empty
    - std::numeric_limits<float>::infinity
    - Lattice::SetSentence
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::PruneUnreachableSentencePieces(\n
      \   const TrainerModel& model) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:779,1
    - Dst: begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:781,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:782,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:786,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:789,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:790,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:791,1
    - Dst: min_score
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:797,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:803,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:803,1
    - Dst: CHECK_GT
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:804,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:807,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:808,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:811,1
    - Dst: absl::flat_hash_map::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:811,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:817,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - TrainerModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 818
    functionName: sentencepiece::unigram::Trainer::FinalizeSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 2
    functionsReached:
    - min_score
    - sentencepiece::string_util::UnicodeCharToUTF8
    - vocab_size
    - size
    - sentencepiece::port::ContainsKey
    - absl::flat_hash_map::size
    - Sorted
    - begin
    - GetSentencePieces
    - CHECK_GT
    - static_cast<size_t>
    - end
    - absl::GetFlag
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::FinalizeSentencePieces(\n    const
      TrainerModel& model) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:821,1
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:821,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:823,1
    - Dst: model_type
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:823,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:824,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:824,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:828,1
    - Dst: TrainerModel::status
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:828,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:829,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:829,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:830,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:831,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:831,1
    - Dst: sentencepiece::unigram::Trainer::MakeSeedSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:834,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:835,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:835,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:837,1
    - Dst: TrainerModel::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:837,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:837,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:839,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:839,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:841,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:841,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:843,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:845,1
    - Dst: sentencepiece::unigram::Trainer::TrainSparsePruning
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:845,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:847,1
    - Dst: sentencepiece::unigram::Trainer::TrainDiscretePruning
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:847,1
    - Dst: sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:850,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:851,1
    - Dst: TrainerModel::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:851,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:851,1
    - Dst: sentencepiece::unigram::Trainer::FinalizeSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:854,1
    - Dst: Save
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 857
    functionName: sentencepiece::unigram::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - RET_CHECK_EQ
    - TrainerModel::status
    - sentencepiece::unigram::Trainer::FinalizeSentencePieces
    - std::move
    - empty
    - model_type
    - LoadSentences
    - TrainerModel::SetSentencePieces
    - size
    - status
    - LOG
    - sentencepiece::unigram::Trainer::TrainDiscretePruning
    - Save
    - sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
    - RET_CHECK
    - vocab_size
    - auto::empty
    - sentencepiece::unigram::Trainer::TrainSparsePruning
    - sentencepiece::unigram::Trainer::MakeSeedSentencePieces
    - static_cast<size_t>
    - escape_whitespaces
    - RETURN_IF_ERROR
    - absl::GetFlag
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:862,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:865,1
    - Dst: num_sub_iterations
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:870,1
    - Dst: sentencepiece::unigram::Trainer::RunEStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:874,1
    - Dst: sentencepiece::unigram::Trainer::RunMStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:877,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:878,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:878,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:878,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:880,1
    - Dst: TrainerModel*::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:880,1
    - Dst: calc_bytes_per_tok
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:882,1
    - Dst: sentencepiece::unigram::Trainer::PruneSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:887,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:888,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:888,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:888,1
    - Dst: TrainerModel*::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:892,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:897,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - model
    argTypes:
    - TrainerModel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 898
    functionName: sentencepiece::unigram::Trainer::TrainDiscretePruning
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 3
    functionsReached:
    - first::size
    - absl::OkStatus
    - num_sub_iterations
    - calc_bytes_per_tok
    - static_cast<float>
    - sentencepiece::unigram::Trainer::RunMStep
    - sentencepiece::unigram::Trainer::RunEStep
    - sentencepiece::unigram::Trainer::PruneSentencePieces
    - std::move
    - LOG
    - TrainerModel*::GetPieceSize
    - RETURN_IF_ERROR
    - TrainerModel*::SetSentencePieces
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::TrainDiscretePruning(TrainerModel* model)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:903,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:906,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:909,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:913,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:915,1
    - Dst: sentencepiece::unigram::Trainer::RunEStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:926,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:932,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:934,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:935,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:935,1
    - Dst: std::nth_element
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:940,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:940,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:941,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:942,1
    - Dst: std::greater<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:942,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:943,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:946,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:946,1
    - Dst: calc_bytes_per_tok
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:949,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:956,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:958,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:959,1
    - Dst: TrainerModel*::GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:959,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:962,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:962,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:962,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:963,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:963,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:963,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:967,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:968,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:969,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:971,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:973,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:979,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:987,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:989,1
    - Dst: sentencepiece::unigram::Trainer::RunEStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:992,1
    - Dst: TrainerModel::SentencePieces::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:994,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:994,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:995,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:996,1
    - Dst: TrainerModel*::GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:996,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:997,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:999,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:999,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:999,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1000,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1000,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1000,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1001,1
    - Dst: TrainerModel*::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1001,1
    - Dst: calc_bytes_per_tok
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1003,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1005,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 1
    argNames:
    - model
    argTypes:
    - TrainerModel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 1006
    functionName: sentencepiece::unigram::Trainer::TrainSparsePruning
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 3
    functionsReached:
    - TrainerModel*::GetSentencePieces
    - absl::OkStatus
    - auto::size
    - std::vector::size
    - std::move
    - std::nth_element
    - TrainerModel::SentencePieces::begin
    - TrainerModel::SentencePieces::end
    - ToLogProb
    - sentencepiece::unigram::Trainer::RunEStep
    - LOG
    - TrainerModel*::GetPieceSize
    - TrainerModel*::SetSentencePieces
    - TrainerModel::SentencePieces::emplace_back
    - TrainerModel::SentencePieces::reserve
    - std::max
    - std::vector::begin
    - first::size
    - calc_bytes_per_tok
    - std::vector::end
    - static_cast<float>
    - std::greater<float>
    - static_cast<size_t>
    - RETURN_IF_ERROR
    - absl::GetFlag
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::TrainSparsePruning(TrainerModel* model)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: sentencepiece::unigram::Digamma
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    linkageType: ''
    returnType: double
    signature: double Digamma(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - IT
    - IT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: sentencepiece::unigram::ToLogProb
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void ToLogProb(IT begin, IT end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundedPriorityQueue(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:78,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:79,1
    - Dst: emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    - Dst: std::string
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key_view
    - freq_delta
    argTypes:
    - absl::string_view
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Add
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - std::string
    - find
    - emplace
    linkageType: ''
    returnType: void
    signature: void Add(absl::string_view key_view, uint64_t freq_delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:87,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::Gc
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::BoundedPriorityQueue::Gc
    - size
    linkageType: ''
    returnType: void
    signature: void MaybeGc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: '& data() const'
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, uint64_t>
    signature: absl::flat_hash_map<std::string, uint64_t> & data() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:104,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:108,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:112,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:121,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:123,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 127
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Get
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::forward_as_tuple
    - size
    - std::vector::end
    - clear
    - key::size
    - std::vector::emplace_back
    - std::vector::push_back
    - std::vector::reserve
    - std::vector::size
    - std::sort
    - static_cast<uint64_t>
    - std::vector::begin
    - absl::GetFlag
    - std::min
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    linkageType: ''
    returnType: std::vector<std::pair<std::string, uint64_t>>
    signature: std::vector<std::pair<std::string, uint64_t>> Get()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:132,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: std::sqrt
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:136,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    - Dst: std::pow
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - freq
    - len
    - power
    argTypes:
    - uint64_t
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 6
    functionsReached:
    - static_cast<float>
    - std::sqrt
    - std::pow
    linkageType: ''
    returnType: float
    signature: float CalculateScore(uint64_t freq, float len, float power)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:143,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: UnicodeText::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - freq
    - power
    argTypes:
    - absl::string_view
    - uint64_t
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 13
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - UnicodeText::size
    - static_cast<float>
    - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    linkageType: ''
    returnType: float
    signature: "float CalculatePieceScore(absl::string_view key, uint64_t freq,\n
      \                                  float power)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:148,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:149,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:155,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:158,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::nth_element
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:164,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:166,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:167,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:168,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:169,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:170,1
    - Dst: absl::flat_hash_map::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:174,1
    - Dst: const_cast<MapPair&>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:176,1
    - Dst: absl::flat_hash_map::emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 180
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Gc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 7
    functionsReached:
    - first::size
    - std::forward_as_tuple
    - size
    - absl::flat_hash_map::reserve
    - std::vector::end
    - const_cast<MapPair&>
    - std::vector::push_back
    - std::vector::reserve
    - LOG
    - std::vector::size
    - std::move
    - std::nth_element
    - absl::flat_hash_map::emplace
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    - absl::GetFlag
    - std::min
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: void Gc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: sentencepiece::unigram::Digamma
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    linkageType: ''
    returnType: double
    signature: double Digamma(double x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:66,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - IT
    - IT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: sentencepiece::unigram::ToLogProb
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::log
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void ToLogProb(IT begin, IT end)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BoundedPriorityQueue(size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:78,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:79,1
    - Dst: emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    - Dst: std::string
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key_view
    - freq_delta
    argTypes:
    - absl::string_view
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Add
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - std::string
    - find
    - emplace
    linkageType: ''
    returnType: void
    signature: void Add(absl::string_view key_view, uint64_t freq_delta)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:87,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::Gc
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::BoundedPriorityQueue::Gc
    - size
    linkageType: ''
    returnType: void
    signature: void MaybeGc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: '& data() const'
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::flat_hash_map<std::string, uint64_t>
    signature: absl::flat_hash_map<std::string, uint64_t> & data() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:103,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:104,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:108,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:109,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:112,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:113,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:115,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: key::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:116,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:120,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:121,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:123,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 127
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Get
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::forward_as_tuple
    - size
    - std::vector::end
    - clear
    - key::size
    - std::vector::emplace_back
    - std::vector::push_back
    - std::vector::reserve
    - std::vector::size
    - std::sort
    - static_cast<uint64_t>
    - std::vector::begin
    - absl::GetFlag
    - std::min
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    linkageType: ''
    returnType: std::vector<std::pair<std::string, uint64_t>>
    signature: std::vector<std::pair<std::string, uint64_t>> Get()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:132,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: std::sqrt
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:134,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:136,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    - Dst: std::pow
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - freq
    - len
    - power
    argTypes:
    - uint64_t
    - float
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 139
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 7
    functionsReached:
    - static_cast<float>
    - std::sqrt
    - std::pow
    linkageType: ''
    returnType: float
    signature: float CalculateScore(uint64_t freq, float len, float power)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:143,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    - Dst: UnicodeText::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - freq
    - power
    argTypes:
    - absl::string_view
    - uint64_t
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 15
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - UnicodeText::size
    - static_cast<float>
    - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
    linkageType: ''
    returnType: float
    signature: "float CalculatePieceScore(absl::string_view key, uint64_t freq,\n
      \                                  float power)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:148,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:149,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:153,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:155,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:158,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:160,1
    - Dst: std::nth_element
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:161,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:164,1
    - Dst: sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:166,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:167,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:168,1
    - Dst: std::forward_as_tuple
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:169,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:170,1
    - Dst: absl::flat_hash_map::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:174,1
    - Dst: const_cast<MapPair&>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:176,1
    - Dst: absl::flat_hash_map::emplace
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:177,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 180
    functionName: sentencepiece::unigram::BoundedPriorityQueue::Gc
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 8
    functionsReached:
    - first::size
    - std::forward_as_tuple
    - size
    - absl::flat_hash_map::reserve
    - std::vector::end
    - const_cast<MapPair&>
    - std::vector::push_back
    - std::vector::reserve
    - LOG
    - std::vector::size
    - std::move
    - std::nth_element
    - absl::flat_hash_map::emplace
    - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
    - absl::GetFlag
    - std::min
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: void Gc()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: sentencepiece::unigram::TrainerModel::TrainerModel
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void TrainerModel::TrainerModel(const TrainerSpec& trainer_spec,\n
      \                          const NormalizerSpec& normalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    functionName: TrainerModel::~TrainerModel()
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerModel::~TrainerModel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: '& TrainerModel::GetSentencePieces() const'
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: TrainerModel::SentencePieces & TrainerModel::GetSentencePieces() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:199,1
    - Dst: Clear
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:202,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:206,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:209,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:209,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:210,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:211,1
    - Dst: add_pieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:212,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:213,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:213,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:213,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:214,1
    - Dst: BuildTrie
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:217,1
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' sentencepieces'
    argTypes:
    - SentencePieces
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 219
    functionName: sentencepiece::unigram::TrainerModel::SetSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - size
    - std::vector::emplace_back
    - status
    - std::move
    - add_pieces
    - BuildTrie
    - absl::string_view::data
    - absl::string_view::size
    - RET_CHECK
    - auto*::set_score
    - Clear
    - std::isnan
    - std::min
    - auto*::set_piece
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerModel::SetSentencePieces(SentencePieces&& sentencepieces)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:222,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:222,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:223,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:229,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:232,1
    - Dst: seed_sentencepieces_file
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:237,1
    - Dst: sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:238,1
    - Dst: sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 242
    functionName: sentencepiece::unigram::Trainer::MakeSeedSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
    - sentencepiece::string_util::UnicodeCharToUTF8
    - sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
    - empty
    - seed_sentencepieces_file
    - absl::GetFlag
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: TrainerModel::SentencePieces Trainer::MakeSeedSentencePieces()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:248,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:249,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:252,1
    - Dst: seed_sentencepieces_file
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:253,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:257,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:258,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:259,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:260,1
    - Dst: absl::SimpleAtoi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:264,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:265,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:268,1
    - Dst: IsValidSentencePiece
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:269,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:273,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:274,1
    - Dst: seed_sentencepiece_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:274,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:275,1
    - Dst: seed_sentencepiece_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:276,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:281,1
    - Dst: UnicodeText::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:281,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:284,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:287,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:289,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:289,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:292,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:292,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:292,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - ' all_chars'
    argTypes:
    - absl::flat_hash_map<std::string, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 295
    functionName: sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 4
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - TrainerModel::SentencePieces::size
    - IsValidSentencePiece
    - absl::SimpleAtoi
    - Sorted
    - std::vector::size
    - LOG
    - UnicodeText::size
    - TrainerModel::SentencePieces::emplace_back
    - seed_sentencepieces_file
    - static_cast<size_t>
    - absl::StrSplit
    - ToLogProb
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - TrainerModel::SentencePieces::begin
    - TrainerModel::SentencePieces::end
    - seed_sentencepiece_size
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::LoadSeedSentencePiecesFromFile(\n
      \   const absl::flat_hash_map<std::string, int64_t>& all_chars)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:301,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:302,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:306,1
    - Dst: seed_sentencepiece_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:306,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:308,1
    - Dst: std::max<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:309,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:310,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:314,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:319,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:322,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:325,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:337,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:339,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:340,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:343,1
    - Dst: std::string::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:344,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:348,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:348,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:359,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:361,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:361,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:361,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:362,1
    - Dst: std::max<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:363,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:364,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:364,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:365,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:367,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:371,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:371,1
    - Dst: libsais_omp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:383,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:383,1
    - Dst: libsais_plcp_omp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:384,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:384,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:384,1
    - Dst: libsais_lcp_omp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:385,1
    - Dst: libsais
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:391,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:391,1
    - Dst: libsais_plcp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:392,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:392,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:392,1
    - Dst: libsais_lcp
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:393,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:410,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:421,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:422,1
    - Dst: std::vector::pop_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:423,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:433,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:457,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:459,1
    - Dst: absl::string_view::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:459,1
    - Dst: absl::string_view::remove_suffix
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:460,1
    - Dst: absl::string_view::find
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:464,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:469,1
    - Dst: max_sentencepiece_length
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:469,1
    - Dst: sentencepiece::string_util::UTF8Len
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:470,1
    - Dst: IsValidSentencePiece
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:473,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:473,1
    - Dst: BoundedPriorityQueue::Add
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:478,1
    - Dst: process_interval
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:480,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:482,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:483,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:487,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:488,1
    - Dst: BoundedPriorityQueue::MaybeGc
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:492,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:494,1
    - Dst: BoundedPriorityQueue::data
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:496,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:499,1
    - Dst: BoundedPriorityQueue::Get
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:503,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:504,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:504,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:505,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:505,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:508,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:508,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:508,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:510,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:510,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 74
    argCount: 1
    argNames:
    - ' all_chars'
    argTypes:
    - absl::flat_hash_map<std::string, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 513
    functionName: sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 4
    functionsReached:
    - TrainerModel::SentencePieces::size
    - IsValidSentencePiece
    - libsais_lcp
    - absl::string_view::empty
    - BoundedPriorityQueue::Get
    - std::max<int>
    - std::string::size
    - libsais_lcp_omp
    - std::move
    - std::log
    - BoundedPriorityQueue::MaybeGc
    - TrainerModel::SentencePieces::begin
    - libsais_omp
    - data
    - BoundedPriorityQueue::data
    - BoundedPriorityQueue::Add
    - ToLogProb
    - TrainerModel::SentencePieces::end
    - std::string::data
    - size
    - libsais_plcp
    - std::vector::back
    - absl::string_view::remove_suffix
    - std::vector::push_back
    - LOG
    - std::string::push_back
    - std::max<uint64_t>
    - seed_sentencepiece_size
    - CHECK
    - TrainerModel::SentencePieces::emplace_back
    - libsais_plcp_omp
    - sentencepiece::string_util::UTF8Len
    - libsais
    - std::max
    - std::vector::data
    - std::vector::pop_back
    - sentencepiece::string_util::UTF8ToUnicodeText
    - vocab_size
    - sentencepiece::port::ContainsKey
    - max_sentencepiece_length
    - Sorted
    - static_cast<float>
    - std::max<size_t>
    - static_cast<int32_t>
    - reinterpret_cast<const uint8_t*>
    - process_interval
    - absl::string_view::find
    - static_cast<size_t>
    - static_cast<uint64_t>
    - std::string::append
    - absl::string_view::back
    - absl::GetFlag
    - num_threads
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::MakeSeedSentencePiecesFromCorpus(\n
      \   const absl::flat_hash_map<std::string, int64_t>& all_chars)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:517,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:518,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:519,1
    - Dst: std::make_unique<ThreadPool>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:521,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:521,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:529,1
    - Dst: auto::Schedule
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:530,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:532,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:532,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:533,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:534,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:537,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:538,1
    - Dst: Lattice::PopulateMarginal
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:539,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:540,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:540,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:541,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:541,1
    - Dst: auto::reset
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:547,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:550,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:553,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:560,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:560,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 3
    argNames:
    - ' model'
    - obj
    - num_tokens
    argTypes:
    - TrainerModel
    - float*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 563
    functionName: sentencepiece::unigram::Trainer::RunEStep
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 6
    functionsReached:
    - GetPieceSize
    - resize
    - auto::Schedule
    - size
    - PopulateNodes
    - num_threads
    - CHECK
    - Lattice::Viterbi
    - auto::reset
    - Lattice::PopulateMarginal
    - std::isnan
    - Lattice::SetSentence
    - std::make_unique<ThreadPool>
    linkageType: ''
    returnType: std::vector<float>
    signature: "std::vector<float> Trainer::RunEStep(const TrainerModel& model, float*
      obj,\n                                     int64_t* num_tokens) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:567,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:568,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:568,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:568,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:572,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:581,1
    - Dst: Digamma
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:589,1
    - Dst: Digamma
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:591,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' model'
    - ' expected'
    argTypes:
    - TrainerModel
    - std::vector<float>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 595
    functionName: sentencepiece::unigram::Trainer::RunMStep
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 3
    functionsReached:
    - CHECK_EQ
    - size
    - GetSentencePieces
    - Digamma
    - TrainerModel::SentencePieces::emplace_back
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::RunMStep(\n    const TrainerModel&
      model, const std::vector<float>& expected) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:599,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:602,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:603,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:610,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:612,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:613,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:614,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:615,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:619,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:622,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:625,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:632,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:634,1
    - Dst: std::make_unique<ThreadPool>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:636,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:636,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:637,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:638,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:638,1
    - Dst: auto::Schedule
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:640,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:642,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:643,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:645,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:646,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:647,1
    - Dst: auto::reset
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:655,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:657,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:658,1
    - Dst: std::accumulate
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:664,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:664,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:664,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:665,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:665,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:674,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:678,1
    - Dst: TrainerModel::SentencePieces::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:680,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:683,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:683,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:689,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:690,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:690,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:696,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:696,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:702,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:707,1
    - Dst: shrinking_factor
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:708,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:708,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:712,1
    - Dst: TrainerModel::SentencePieces::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:713,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:713,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:716,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 55
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - TrainerModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 720
    functionName: sentencepiece::unigram::Trainer::PruneSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 3
    functionsReached:
    - auto::Schedule
    - TrainerModel::SentencePieces::size
    - auto::size
    - TrainerModel::SentencePieces::push_back
    - std::max<int>
    - std::log
    - GetSentencePieces
    - empty
    - static_cast<double>
    - shrinking_factor
    - size
    - std::accumulate
    - Lattice::NBest
    - PopulateNodes
    - std::vector::emplace_back
    - Lattice::Viterbi
    - push_back
    - TrainerModel::SentencePieces::emplace_back
    - std::vector::begin
    - std::make_unique<ThreadPool>
    - first::size
    - resize
    - std::vector::end
    - Sorted
    - auto::reset
    - static_cast<size_t>
    - Lattice::SetSentence
    - num_threads
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::PruneSentencePieces(\n    const
      TrainerModel& model) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:724,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:730,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:732,1
    - Dst: PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:733,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:737,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:738,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:739,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:739,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:745,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:750,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:752,1
    - Dst: auto::first::empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:760,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:762,1
    - Dst: TrainerModel::SentencePieces::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:768,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:771,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:772,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - TrainerModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 775
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 775
    functionName: sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 3
    functionsReached:
    - static_cast<int>
    - PopulateNodes
    - size
    - TrainerModel::SentencePieces::push_back
    - CHECK
    - Lattice::begin_nodes
    - Lattice::Viterbi
    - Lattice::size
    - static_cast<uint32_t>
    - LOG
    - GetSentencePieces
    - auto::first::empty
    - std::numeric_limits<float>::infinity
    - Lattice::SetSentence
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::PruneUnreachableSentencePieces(\n
      \   const TrainerModel& model) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:779,1
    - Dst: begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:781,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:782,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:786,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:789,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:790,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:791,1
    - Dst: min_score
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:797,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:803,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:803,1
    - Dst: CHECK_GT
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:804,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:807,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:808,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:811,1
    - Dst: absl::flat_hash_map::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:811,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:817,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 1
    argNames:
    - ' model'
    argTypes:
    - TrainerModel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 818
    functionName: sentencepiece::unigram::Trainer::FinalizeSentencePieces
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 3
    functionsReached:
    - min_score
    - sentencepiece::string_util::UnicodeCharToUTF8
    - vocab_size
    - size
    - sentencepiece::port::ContainsKey
    - absl::flat_hash_map::size
    - Sorted
    - begin
    - GetSentencePieces
    - CHECK_GT
    - static_cast<size_t>
    - end
    - absl::GetFlag
    linkageType: ''
    returnType: TrainerModel::SentencePieces
    signature: "TrainerModel::SentencePieces Trainer::FinalizeSentencePieces(\n    const
      TrainerModel& model) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:821,1
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:821,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:823,1
    - Dst: model_type
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:823,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:824,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:824,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:828,1
    - Dst: TrainerModel::status
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:828,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:829,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:829,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:830,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:831,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:831,1
    - Dst: sentencepiece::unigram::Trainer::MakeSeedSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:834,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:835,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:835,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:837,1
    - Dst: TrainerModel::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:837,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:837,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:839,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:839,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:841,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:841,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:843,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:845,1
    - Dst: sentencepiece::unigram::Trainer::TrainSparsePruning
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:845,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:847,1
    - Dst: sentencepiece::unigram::Trainer::TrainDiscretePruning
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:847,1
    - Dst: sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:850,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:851,1
    - Dst: TrainerModel::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:851,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:851,1
    - Dst: sentencepiece::unigram::Trainer::FinalizeSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:854,1
    - Dst: Save
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:856,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 820
    functionDepth: 3
    functionLinenumber: 820
    functionLinenumberEnd: 857
    functionName: sentencepiece::unigram::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 0
    functionsReached:
    - RET_CHECK_EQ
    - TrainerModel::status
    - sentencepiece::unigram::Trainer::FinalizeSentencePieces
    - std::move
    - empty
    - model_type
    - LoadSentences
    - TrainerModel::SetSentencePieces
    - size
    - status
    - LOG
    - sentencepiece::unigram::Trainer::TrainDiscretePruning
    - Save
    - sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
    - RET_CHECK
    - vocab_size
    - auto::empty
    - sentencepiece::unigram::Trainer::TrainSparsePruning
    - sentencepiece::unigram::Trainer::MakeSeedSentencePieces
    - static_cast<size_t>
    - escape_whitespaces
    - RETURN_IF_ERROR
    - absl::GetFlag
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:862,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:865,1
    - Dst: num_sub_iterations
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:870,1
    - Dst: sentencepiece::unigram::Trainer::RunEStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:874,1
    - Dst: sentencepiece::unigram::Trainer::RunMStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:877,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:878,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:878,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:878,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:880,1
    - Dst: TrainerModel*::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:880,1
    - Dst: calc_bytes_per_tok
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:882,1
    - Dst: sentencepiece::unigram::Trainer::PruneSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:887,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:888,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:888,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:888,1
    - Dst: TrainerModel*::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:892,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:897,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - model
    argTypes:
    - TrainerModel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 898
    functionName: sentencepiece::unigram::Trainer::TrainDiscretePruning
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 4
    functionsReached:
    - first::size
    - absl::OkStatus
    - num_sub_iterations
    - calc_bytes_per_tok
    - static_cast<float>
    - sentencepiece::unigram::Trainer::RunMStep
    - sentencepiece::unigram::Trainer::RunEStep
    - sentencepiece::unigram::Trainer::PruneSentencePieces
    - std::move
    - LOG
    - TrainerModel*::GetPieceSize
    - RETURN_IF_ERROR
    - TrainerModel*::SetSentencePieces
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::TrainDiscretePruning(TrainerModel* model)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:903,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:906,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:909,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:913,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:915,1
    - Dst: sentencepiece::unigram::Trainer::RunEStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:926,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:932,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:934,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:935,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:935,1
    - Dst: std::nth_element
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:940,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:940,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:941,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:942,1
    - Dst: std::greater<float>
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:942,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:943,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:946,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:946,1
    - Dst: calc_bytes_per_tok
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:949,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:956,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:958,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:959,1
    - Dst: TrainerModel*::GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:959,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:962,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:962,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:962,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:963,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:963,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:963,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:967,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:968,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:969,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:971,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:973,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:979,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:987,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:989,1
    - Dst: sentencepiece::unigram::Trainer::RunEStep
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:992,1
    - Dst: TrainerModel::SentencePieces::reserve
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:994,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:994,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:995,1
    - Dst: TrainerModel::SentencePieces::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:996,1
    - Dst: TrainerModel*::GetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:996,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:997,1
    - Dst: ToLogProb
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:999,1
    - Dst: TrainerModel::SentencePieces::begin
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:999,1
    - Dst: TrainerModel::SentencePieces::end
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:999,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1000,1
    - Dst: TrainerModel*::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1000,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1000,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1001,1
    - Dst: TrainerModel*::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1001,1
    - Dst: calc_bytes_per_tok
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1003,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/unigram_model_trainer.cc:1005,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 41
    argCount: 1
    argNames:
    - model
    argTypes:
    - TrainerModel*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 900
    functionDepth: 1
    functionLinenumber: 900
    functionLinenumberEnd: 1006
    functionName: sentencepiece::unigram::Trainer::TrainSparsePruning
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.cc
    functionUses: 4
    functionsReached:
    - TrainerModel*::GetSentencePieces
    - absl::OkStatus
    - auto::size
    - std::vector::size
    - std::move
    - std::nth_element
    - TrainerModel::SentencePieces::begin
    - TrainerModel::SentencePieces::end
    - ToLogProb
    - sentencepiece::unigram::Trainer::RunEStep
    - LOG
    - TrainerModel*::GetPieceSize
    - TrainerModel*::SetSentencePieces
    - TrainerModel::SentencePieces::emplace_back
    - TrainerModel::SentencePieces::reserve
    - std::max
    - std::vector::begin
    - first::size
    - calc_bytes_per_tok
    - std::vector::end
    - static_cast<float>
    - std::greater<float>
    - static_cast<size_t>
    - RETURN_IF_ERROR
    - absl::GetFlag
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::TrainSparsePruning(TrainerModel* model)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: sentencepiece::bpe::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: sentencepiece::bpe::Trainer::IsBigram
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsBigram() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: sentencepiece::bpe::Trainer::Symbol
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_GE
      Src: /src/sentencepiece/src/bpe_model_trainer.h:86,1
    - Dst: CHECK_GE
      Src: /src/sentencepiece/src/bpe_model_trainer.h:87,1
    - Dst: CHECK_LE
      Src: /src/sentencepiece/src/bpe_model_trainer.h:88,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/sentencepiece/src/bpe_model_trainer.h:88,1
    - Dst: CHECK_LE
      Src: /src/sentencepiece/src/bpe_model_trainer.h:89,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/sentencepiece/src/bpe_model_trainer.h:89,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/bpe_model_trainer.h:90,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/bpe_model_trainer.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - sid
    - l
    - r
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: sentencepiece::bpe::Trainer::EncodePos
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.h
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - std::numeric_limits<uint16_t>::max
    - CHECK_GE
    - CHECK_LE
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t EncodePos(int sid, int l, int r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: sentencepiece::bpe::Trainer::DecodePos
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Position
    signature: Position DecodePos(uint64_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: symbol::chars::size
      Src: /src/sentencepiece/src/bpe_model_trainer.h:143,1
    - Dst: symbol::chars::size
      Src: /src/sentencepiece/src/bpe_model_trainer.h:143,1
    - Dst: symbol::chars::size
      Src: /src/sentencepiece/src/bpe_model_trainer.h:144,1
    - Dst: symbol::chars::size
      Src: /src/sentencepiece/src/bpe_model_trainer.h:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' e1'
    - ' e2'
    argTypes:
    - QueueEntry
    - QueueEntry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: operator()(const QueueEntry& e1, const QueueEntry& e2) const
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.h
    functionUses: 0
    functionsReached:
    - symbol::chars::size
    linkageType: ''
    returnType: bool
    signature: bool operator()(const QueueEntry& e1, const QueueEntry& e2) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 40
    functionName: sentencepiece::bpe::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: sentencepiece::bpe::Trainer::IsBigram
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsBigram() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: sentencepiece::bpe::Trainer::Symbol
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Symbol()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_GE
      Src: /src/sentencepiece/src/bpe_model_trainer.h:86,1
    - Dst: CHECK_GE
      Src: /src/sentencepiece/src/bpe_model_trainer.h:87,1
    - Dst: CHECK_LE
      Src: /src/sentencepiece/src/bpe_model_trainer.h:88,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/sentencepiece/src/bpe_model_trainer.h:88,1
    - Dst: CHECK_LE
      Src: /src/sentencepiece/src/bpe_model_trainer.h:89,1
    - Dst: std::numeric_limits<uint16_t>::max
      Src: /src/sentencepiece/src/bpe_model_trainer.h:89,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/bpe_model_trainer.h:90,1
    - Dst: static_cast<uint64_t>
      Src: /src/sentencepiece/src/bpe_model_trainer.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - sid
    - l
    - r
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 93
    functionName: sentencepiece::bpe::Trainer::EncodePos
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.h
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - std::numeric_limits<uint16_t>::max
    - CHECK_GE
    - CHECK_LE
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t EncodePos(int sid, int l, int r)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: sentencepiece::bpe::Trainer::DecodePos
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Position
    signature: Position DecodePos(uint64_t n)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: symbol::chars::size
      Src: /src/sentencepiece/src/bpe_model_trainer.h:143,1
    - Dst: symbol::chars::size
      Src: /src/sentencepiece/src/bpe_model_trainer.h:143,1
    - Dst: symbol::chars::size
      Src: /src/sentencepiece/src/bpe_model_trainer.h:144,1
    - Dst: symbol::chars::size
      Src: /src/sentencepiece/src/bpe_model_trainer.h:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' e1'
    - ' e2'
    argTypes:
    - QueueEntry
    - QueueEntry
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 147
    functionName: operator()(const QueueEntry& e1, const QueueEntry& e2) const
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.h
    functionUses: 0
    functionsReached:
    - symbol::chars::size
    linkageType: ''
    returnType: bool
    signature: bool operator()(const QueueEntry& e1, const QueueEntry& e2) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:52,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:62,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:66,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 71
    functionName: sentencepiece::character::RunTrainer
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:74,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:76,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::character::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:52,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:62,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:66,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 71
    functionName: sentencepiece::character::RunTrainer
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 1
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:74,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:76,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::character::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:52,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:62,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:66,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 71
    functionName: sentencepiece::character::RunTrainer
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 2
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:74,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:76,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::character::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:52,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:62,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:66,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 71
    functionName: sentencepiece::character::RunTrainer
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 3
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:74,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:76,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::character::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:52,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:62,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:66,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 71
    functionName: sentencepiece::character::RunTrainer
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 4
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:74,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:76,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::character::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:52,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:62,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:66,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 71
    functionName: sentencepiece::character::RunTrainer
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 5
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:74,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:76,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::character::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:52,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:62,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:66,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 71
    functionName: sentencepiece::character::RunTrainer
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 6
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:74,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:76,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::character::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:52,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:57,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:60,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:62,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:66,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:67,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 71
    functionName: sentencepiece::character::RunTrainer
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 7
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:74,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:76,1
    - Dst: sentencepiece::character::RunTrainer
      Src: /src/sentencepiece/src/char_model_trainer_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::character::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/char_model.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: sentencepiece::character::Model::Model
    functionSourceFile: /src/sentencepiece/src/char_model.cc
    functionUses: 0
    functionsReached:
    - InitializePieces
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/char_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/char_model.cc:31,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/char_model.cc:31,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/char_model.cc:37,1
    - Dst: PrefixMatch
      Src: /src/sentencepiece/src/char_model.cc:38,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/char_model.cc:39,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/char_model.cc:40,1
    - Dst: PieceToId
      Src: /src/sentencepiece/src/char_model.cc:40,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/char_model.cc:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: sentencepiece::character::Model::Encode
    functionSourceFile: /src/sentencepiece/src/char_model.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::empty
    - status
    - absl::string_view::remove_prefix
    - EncodeResult::emplace_back
    - absl::string_view::data
    - PieceToId
    - PrefixMatch
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::Encode(absl::string_view normalized) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/char_model.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: sentencepiece::character::Model::Model
    functionSourceFile: /src/sentencepiece/src/char_model.cc
    functionUses: 0
    functionsReached:
    - InitializePieces
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/char_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/char_model.cc:31,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/char_model.cc:31,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/char_model.cc:37,1
    - Dst: PrefixMatch
      Src: /src/sentencepiece/src/char_model.cc:38,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/char_model.cc:39,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/char_model.cc:40,1
    - Dst: PieceToId
      Src: /src/sentencepiece/src/char_model.cc:40,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/char_model.cc:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: sentencepiece::character::Model::Encode
    functionSourceFile: /src/sentencepiece/src/char_model.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::empty
    - status
    - absl::string_view::remove_prefix
    - EncodeResult::emplace_back
    - absl::string_view::data
    - PieceToId
    - PrefixMatch
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::Encode(absl::string_view normalized) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/char_model.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: sentencepiece::character::Model::Model
    functionSourceFile: /src/sentencepiece/src/char_model.cc
    functionUses: 0
    functionsReached:
    - InitializePieces
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/char_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/char_model.cc:31,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/char_model.cc:31,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/char_model.cc:37,1
    - Dst: PrefixMatch
      Src: /src/sentencepiece/src/char_model.cc:38,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/char_model.cc:39,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/char_model.cc:40,1
    - Dst: PieceToId
      Src: /src/sentencepiece/src/char_model.cc:40,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/char_model.cc:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: sentencepiece::character::Model::Encode
    functionSourceFile: /src/sentencepiece/src/char_model.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::empty
    - status
    - absl::string_view::remove_prefix
    - EncodeResult::emplace_back
    - absl::string_view::data
    - PieceToId
    - PrefixMatch
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::Encode(absl::string_view normalized) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/char_model.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: sentencepiece::character::Model::Model
    functionSourceFile: /src/sentencepiece/src/char_model.cc
    functionUses: 0
    functionsReached:
    - InitializePieces
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/char_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/char_model.cc:31,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/char_model.cc:31,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/char_model.cc:37,1
    - Dst: PrefixMatch
      Src: /src/sentencepiece/src/char_model.cc:38,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/char_model.cc:39,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/char_model.cc:40,1
    - Dst: PieceToId
      Src: /src/sentencepiece/src/char_model.cc:40,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/char_model.cc:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: sentencepiece::character::Model::Encode
    functionSourceFile: /src/sentencepiece/src/char_model.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::empty
    - status
    - absl::string_view::remove_prefix
    - EncodeResult::emplace_back
    - absl::string_view::data
    - PieceToId
    - PrefixMatch
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::Encode(absl::string_view normalized) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:29,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:30,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:31,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:33,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: sentencepiece::bpe::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:45,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:46,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: sentencepiece::bpe::AddPiece
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:51,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:53,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:54,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:55,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:56,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:57,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:58,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:59,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:60,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:61,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:62,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:63,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:64,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:66,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:68,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:70,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:77,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:82,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:87,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:92,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:107,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:116,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:121,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:127,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:134,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 142
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::bpe::MakeBaseModelProto
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:145,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:147,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:148,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:149,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:150,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:151,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:161,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:166,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:167,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:175,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:181,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:184,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 188
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeAmbiguousTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::NBestEncode
    - EXPECT_EQ
    - NBestEncodeResult
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:197,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:199,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:200,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:201,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:202,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:203,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:204,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:205,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:206,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:213,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:217,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:222,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:227,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:228,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:233,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:241,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:242,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:243,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 251
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithUnusedTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:254,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:256,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:257,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:258,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:259,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:266,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:273,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:274,1
    - Dst: get_tokens
      Src: /src/sentencepiece/src/bpe_model_test.cc:285,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - auto::size
    - auto::empty
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - static_cast<float>
    - Model::SampleEncode
    - std::map::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    - get_tokens
    linkageType: ''
    returnType: void
    signature: void TEST(SampleModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:299,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/bpe_model_test.cc:306,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/bpe_model_test.cc:307,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:308,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:313,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:323,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:337,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 341
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeCharToUTF8
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - static_cast<float>
    - std::vector::push_back
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithDeepUnusedMergeChainTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:344,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:347,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:348,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:349,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:350,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:353,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:354,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:355,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:356,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:357,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:358,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:366,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 375
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlSymbolsNoMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:382,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:383,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:384,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:385,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:388,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:390,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:392,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:394,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:395,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:396,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:397,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 409
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto*::set_piece
    - auto*::set_type
    - Model::Encode
    - add_pieces
    - AddPieceWithType
    - EXPECT_EQ
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlTokenMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:412,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/bpe_model_test.cc:413,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:417,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:419,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:425,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:426,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:427,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:428,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:433,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:434,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:435,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:436,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:437,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:438,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:441,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:442,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:443,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:448,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:449,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:450,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:451,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:452,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:453,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:460,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:462,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:463,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:469,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:472,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:479,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:481,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:482,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:483,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:489,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:490,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 496
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - EXPECT_NE
    - ModelProto::pieces_size
    - auto::size
    - auto*::set_type
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - ByteToPiece
    - ASSERT_EQ
    - EXPECT_EQ
    - ModelProto::add_pieces
    - sentencepiece::bpe::AddPiece
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, SpecialSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:29,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:30,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:31,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:33,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: sentencepiece::bpe::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 8
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:45,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:46,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: sentencepiece::bpe::AddPiece
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 7
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:51,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:53,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:54,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:55,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:56,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:57,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:58,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:59,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:60,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:61,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:62,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:63,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:64,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:66,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:68,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:70,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:77,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:82,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:87,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:92,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:107,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:116,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:121,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:127,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:134,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 142
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::bpe::MakeBaseModelProto
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:145,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:147,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:148,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:149,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:150,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:151,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:161,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:166,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:167,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:175,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:181,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:184,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 188
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeAmbiguousTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::NBestEncode
    - EXPECT_EQ
    - NBestEncodeResult
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:197,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:199,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:200,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:201,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:202,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:203,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:204,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:205,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:206,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:213,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:217,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:222,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:227,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:228,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:233,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:241,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:242,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:243,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 251
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithUnusedTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:254,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:256,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:257,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:258,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:259,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:266,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:273,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:274,1
    - Dst: get_tokens
      Src: /src/sentencepiece/src/bpe_model_test.cc:285,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - auto::size
    - auto::empty
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - static_cast<float>
    - Model::SampleEncode
    - std::map::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    - get_tokens
    linkageType: ''
    returnType: void
    signature: void TEST(SampleModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:299,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/bpe_model_test.cc:306,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/bpe_model_test.cc:307,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:308,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:313,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:323,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:337,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 341
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeCharToUTF8
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - static_cast<float>
    - std::vector::push_back
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithDeepUnusedMergeChainTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:344,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:347,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:348,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:349,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:350,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:353,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:354,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:355,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:356,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:357,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:358,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:366,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 375
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlSymbolsNoMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:382,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:383,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:384,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:385,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:388,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:390,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:392,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:394,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:395,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:396,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:397,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 409
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto*::set_piece
    - auto*::set_type
    - Model::Encode
    - add_pieces
    - AddPieceWithType
    - EXPECT_EQ
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlTokenMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:412,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/bpe_model_test.cc:413,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:417,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:419,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:425,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:426,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:427,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:428,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:433,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:434,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:435,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:436,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:437,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:438,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:441,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:442,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:443,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:448,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:449,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:450,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:451,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:452,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:453,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:460,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:462,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:463,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:469,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:472,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:479,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:481,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:482,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:483,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:489,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:490,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 496
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - EXPECT_NE
    - ModelProto::pieces_size
    - auto::size
    - auto*::set_type
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - ByteToPiece
    - ASSERT_EQ
    - EXPECT_EQ
    - ModelProto::add_pieces
    - sentencepiece::bpe::AddPiece
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, SpecialSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:29,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:30,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:31,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:33,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: sentencepiece::bpe::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 16
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:45,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:46,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: sentencepiece::bpe::AddPiece
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 14
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:51,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:53,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:54,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:55,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:56,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:57,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:58,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:59,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:60,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:61,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:62,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:63,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:64,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:66,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:68,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:70,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:77,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:82,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:87,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:92,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:107,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:116,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:121,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:127,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:134,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 142
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::bpe::MakeBaseModelProto
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:145,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:147,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:148,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:149,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:150,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:151,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:161,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:166,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:167,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:175,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:181,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:184,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 188
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeAmbiguousTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::NBestEncode
    - EXPECT_EQ
    - NBestEncodeResult
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:197,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:199,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:200,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:201,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:202,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:203,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:204,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:205,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:206,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:213,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:217,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:222,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:227,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:228,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:233,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:241,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:242,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:243,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 251
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithUnusedTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:254,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:256,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:257,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:258,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:259,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:266,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:273,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:274,1
    - Dst: get_tokens
      Src: /src/sentencepiece/src/bpe_model_test.cc:285,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - auto::size
    - auto::empty
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - static_cast<float>
    - Model::SampleEncode
    - std::map::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    - get_tokens
    linkageType: ''
    returnType: void
    signature: void TEST(SampleModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:299,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/bpe_model_test.cc:306,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/bpe_model_test.cc:307,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:308,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:313,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:323,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:337,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 341
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeCharToUTF8
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - static_cast<float>
    - std::vector::push_back
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithDeepUnusedMergeChainTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:344,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:347,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:348,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:349,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:350,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:353,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:354,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:355,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:356,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:357,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:358,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:366,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 375
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlSymbolsNoMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:382,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:383,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:384,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:385,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:388,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:390,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:392,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:394,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:395,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:396,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:397,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 409
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto*::set_piece
    - auto*::set_type
    - Model::Encode
    - add_pieces
    - AddPieceWithType
    - EXPECT_EQ
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlTokenMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:412,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/bpe_model_test.cc:413,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:417,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:419,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:425,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:426,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:427,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:428,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:433,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:434,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:435,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:436,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:437,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:438,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:441,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:442,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:443,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:448,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:449,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:450,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:451,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:452,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:453,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:460,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:462,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:463,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:469,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:472,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:479,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:481,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:482,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:483,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:489,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:490,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 496
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - EXPECT_NE
    - ModelProto::pieces_size
    - auto::size
    - auto*::set_type
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - ByteToPiece
    - ASSERT_EQ
    - EXPECT_EQ
    - ModelProto::add_pieces
    - sentencepiece::bpe::AddPiece
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, SpecialSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:29,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:30,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:31,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:33,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: sentencepiece::bpe::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 24
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:45,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:46,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: sentencepiece::bpe::AddPiece
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 21
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:51,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:53,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:54,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:55,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:56,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:57,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:58,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:59,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:60,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:61,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:62,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:63,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:64,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:66,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:68,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:70,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:77,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:82,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:87,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:92,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:107,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:116,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:121,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:127,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:134,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 142
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::bpe::MakeBaseModelProto
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:145,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:147,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:148,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:149,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:150,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:151,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:161,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:166,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:167,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:175,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:181,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:184,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 188
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeAmbiguousTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::NBestEncode
    - EXPECT_EQ
    - NBestEncodeResult
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:197,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:199,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:200,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:201,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:202,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:203,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:204,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:205,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:206,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:213,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:217,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:222,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:227,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:228,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:233,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:241,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:242,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:243,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 251
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithUnusedTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:254,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:256,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:257,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:258,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:259,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:266,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:273,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:274,1
    - Dst: get_tokens
      Src: /src/sentencepiece/src/bpe_model_test.cc:285,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - auto::size
    - auto::empty
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - static_cast<float>
    - Model::SampleEncode
    - std::map::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    - get_tokens
    linkageType: ''
    returnType: void
    signature: void TEST(SampleModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:299,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/bpe_model_test.cc:306,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/bpe_model_test.cc:307,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:308,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:313,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:323,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:337,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 341
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeCharToUTF8
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - static_cast<float>
    - std::vector::push_back
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithDeepUnusedMergeChainTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:344,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:347,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:348,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:349,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:350,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:353,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:354,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:355,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:356,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:357,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:358,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:366,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 375
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlSymbolsNoMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:382,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:383,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:384,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:385,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:388,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:390,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:392,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:394,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:395,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:396,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:397,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 409
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto*::set_piece
    - auto*::set_type
    - Model::Encode
    - add_pieces
    - AddPieceWithType
    - EXPECT_EQ
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlTokenMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:412,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/bpe_model_test.cc:413,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:417,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:419,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:425,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:426,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:427,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:428,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:433,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:434,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:435,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:436,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:437,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:438,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:441,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:442,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:443,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:448,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:449,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:450,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:451,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:452,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:453,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:460,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:462,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:463,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:469,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:472,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:479,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:481,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:482,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:483,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:489,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:490,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 496
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - EXPECT_NE
    - ModelProto::pieces_size
    - auto::size
    - auto*::set_type
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - ByteToPiece
    - ASSERT_EQ
    - EXPECT_EQ
    - ModelProto::add_pieces
    - sentencepiece::bpe::AddPiece
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, SpecialSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:29,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:30,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:31,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:33,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: sentencepiece::bpe::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 32
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:45,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:46,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: sentencepiece::bpe::AddPiece
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 28
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:51,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:53,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:54,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:55,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:56,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:57,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:58,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:59,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:60,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:61,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:62,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:63,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:64,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:66,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:68,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:70,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:77,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:82,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:87,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:92,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:107,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:116,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:121,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:127,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:134,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 142
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::bpe::MakeBaseModelProto
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:145,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:147,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:148,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:149,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:150,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:151,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:161,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:166,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:167,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:175,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:181,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:184,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 188
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeAmbiguousTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::NBestEncode
    - EXPECT_EQ
    - NBestEncodeResult
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:197,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:199,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:200,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:201,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:202,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:203,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:204,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:205,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:206,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:213,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:217,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:222,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:227,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:228,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:233,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:241,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:242,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:243,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 251
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithUnusedTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:254,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:256,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:257,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:258,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:259,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:266,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:273,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:274,1
    - Dst: get_tokens
      Src: /src/sentencepiece/src/bpe_model_test.cc:285,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - auto::size
    - auto::empty
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - static_cast<float>
    - Model::SampleEncode
    - std::map::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    - get_tokens
    linkageType: ''
    returnType: void
    signature: void TEST(SampleModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:299,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/bpe_model_test.cc:306,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/bpe_model_test.cc:307,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:308,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:313,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:323,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:337,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 341
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeCharToUTF8
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - static_cast<float>
    - std::vector::push_back
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithDeepUnusedMergeChainTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:344,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:347,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:348,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:349,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:350,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:353,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:354,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:355,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:356,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:357,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:358,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:366,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 375
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlSymbolsNoMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:382,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:383,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:384,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:385,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:388,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:390,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:392,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:394,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:395,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:396,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:397,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 409
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto*::set_piece
    - auto*::set_type
    - Model::Encode
    - add_pieces
    - AddPieceWithType
    - EXPECT_EQ
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlTokenMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:412,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/bpe_model_test.cc:413,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:417,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:419,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:425,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:426,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:427,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:428,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:433,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:434,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:435,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:436,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:437,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:438,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:441,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:442,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:443,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:448,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:449,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:450,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:451,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:452,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:453,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:460,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:462,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:463,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:469,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:472,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:479,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:481,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:482,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:483,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:489,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:490,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 496
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - EXPECT_NE
    - ModelProto::pieces_size
    - auto::size
    - auto*::set_type
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - ByteToPiece
    - ASSERT_EQ
    - EXPECT_EQ
    - ModelProto::add_pieces
    - sentencepiece::bpe::AddPiece
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, SpecialSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:29,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:30,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:31,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:33,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: sentencepiece::bpe::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 40
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:45,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:46,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: sentencepiece::bpe::AddPiece
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 35
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:51,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:53,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:54,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:55,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:56,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:57,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:58,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:59,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:60,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:61,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:62,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:63,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:64,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:66,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:68,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:70,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:77,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:82,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:87,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:92,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:107,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:116,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:121,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:127,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:134,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 142
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::bpe::MakeBaseModelProto
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:145,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:147,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:148,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:149,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:150,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:151,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:161,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:166,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:167,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:175,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:181,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:184,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 188
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeAmbiguousTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::NBestEncode
    - EXPECT_EQ
    - NBestEncodeResult
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:197,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:199,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:200,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:201,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:202,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:203,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:204,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:205,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:206,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:213,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:217,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:222,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:227,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:228,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:233,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:241,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:242,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:243,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 251
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithUnusedTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:254,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:256,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:257,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:258,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:259,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:266,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:273,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:274,1
    - Dst: get_tokens
      Src: /src/sentencepiece/src/bpe_model_test.cc:285,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - auto::size
    - auto::empty
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - static_cast<float>
    - Model::SampleEncode
    - std::map::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    - get_tokens
    linkageType: ''
    returnType: void
    signature: void TEST(SampleModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:299,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/bpe_model_test.cc:306,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/bpe_model_test.cc:307,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:308,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:313,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:323,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:337,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 341
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeCharToUTF8
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - static_cast<float>
    - std::vector::push_back
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithDeepUnusedMergeChainTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:344,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:347,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:348,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:349,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:350,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:353,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:354,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:355,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:356,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:357,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:358,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:366,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 375
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlSymbolsNoMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:382,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:383,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:384,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:385,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:388,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:390,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:392,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:394,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:395,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:396,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:397,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 409
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto*::set_piece
    - auto*::set_type
    - Model::Encode
    - add_pieces
    - AddPieceWithType
    - EXPECT_EQ
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlTokenMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:412,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/bpe_model_test.cc:413,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:417,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:419,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:425,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:426,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:427,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:428,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:433,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:434,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:435,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:436,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:437,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:438,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:441,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:442,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:443,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:448,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:449,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:450,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:451,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:452,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:453,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:460,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:462,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:463,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:469,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:472,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:479,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:481,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:482,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:483,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:489,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:490,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 496
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - EXPECT_NE
    - ModelProto::pieces_size
    - auto::size
    - auto*::set_type
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - ByteToPiece
    - ASSERT_EQ
    - EXPECT_EQ
    - ModelProto::add_pieces
    - sentencepiece::bpe::AddPiece
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, SpecialSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:29,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:30,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:31,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:33,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: sentencepiece::bpe::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 48
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:45,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:46,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: sentencepiece::bpe::AddPiece
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 42
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:51,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:53,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:54,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:55,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:56,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:57,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:58,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:59,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:60,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:61,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:62,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:63,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:64,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:66,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:68,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:70,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:77,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:82,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:87,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:92,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:107,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:116,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:121,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:127,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:134,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 142
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::bpe::MakeBaseModelProto
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:145,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:147,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:148,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:149,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:150,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:151,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:161,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:166,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:167,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:175,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:181,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:184,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 188
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeAmbiguousTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::NBestEncode
    - EXPECT_EQ
    - NBestEncodeResult
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:197,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:199,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:200,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:201,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:202,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:203,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:204,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:205,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:206,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:213,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:217,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:222,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:227,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:228,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:233,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:241,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:242,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:243,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 251
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithUnusedTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:254,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:256,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:257,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:258,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:259,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:266,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:273,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:274,1
    - Dst: get_tokens
      Src: /src/sentencepiece/src/bpe_model_test.cc:285,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - auto::size
    - auto::empty
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - static_cast<float>
    - Model::SampleEncode
    - std::map::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    - get_tokens
    linkageType: ''
    returnType: void
    signature: void TEST(SampleModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:299,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/bpe_model_test.cc:306,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/bpe_model_test.cc:307,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:308,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:313,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:323,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:337,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 341
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeCharToUTF8
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - static_cast<float>
    - std::vector::push_back
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithDeepUnusedMergeChainTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:344,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:347,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:348,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:349,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:350,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:353,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:354,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:355,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:356,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:357,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:358,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:366,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 375
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlSymbolsNoMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:382,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:383,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:384,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:385,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:388,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:390,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:392,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:394,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:395,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:396,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:397,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 409
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto*::set_piece
    - auto*::set_type
    - Model::Encode
    - add_pieces
    - AddPieceWithType
    - EXPECT_EQ
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlTokenMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:412,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/bpe_model_test.cc:413,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:417,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:419,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:425,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:426,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:427,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:428,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:433,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:434,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:435,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:436,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:437,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:438,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:441,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:442,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:443,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:448,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:449,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:450,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:451,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:452,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:453,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:460,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:462,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:463,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:469,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:472,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:479,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:481,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:482,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:483,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:489,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:490,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 496
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - EXPECT_NE
    - ModelProto::pieces_size
    - auto::size
    - auto*::set_type
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - ByteToPiece
    - ASSERT_EQ
    - EXPECT_EQ
    - ModelProto::add_pieces
    - sentencepiece::bpe::AddPiece
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, SpecialSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:29,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:30,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:31,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:33,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 41
    functionName: sentencepiece::bpe::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 56
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:45,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:46,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 48
    functionName: sentencepiece::bpe::AddPiece
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 49
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:51,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:53,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:54,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:55,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:56,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:57,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:58,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:59,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:60,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:61,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:62,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:63,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:64,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:66,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:68,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:70,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:77,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:82,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:87,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:92,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:107,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:116,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:121,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:127,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:134,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 142
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::bpe::MakeBaseModelProto
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:145,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:147,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:148,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:149,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:150,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:151,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:161,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:166,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:167,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:173,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:175,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:181,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:184,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 188
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeAmbiguousTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 194
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::NBestEncode
    - EXPECT_EQ
    - NBestEncodeResult
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:197,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:199,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:200,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:201,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:202,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:203,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:204,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:205,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:206,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:213,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:217,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:222,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:227,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:228,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:233,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:241,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:242,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:243,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:247,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 251
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithUnusedTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:254,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:256,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:257,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:258,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:259,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:265,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:266,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/bpe_model_test.cc:273,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_test.cc:274,1
    - Dst: get_tokens
      Src: /src/sentencepiece/src/bpe_model_test.cc:285,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:289,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:293,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 296
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - auto::size
    - auto::empty
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - static_cast<float>
    - Model::SampleEncode
    - std::map::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    - get_tokens
    linkageType: ''
    returnType: void
    signature: void TEST(SampleModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:299,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/bpe_model_test.cc:306,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/bpe_model_test.cc:307,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:308,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:313,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_test.cc:318,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:323,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:337,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:339,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 341
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeCharToUTF8
    - ModelProto::mutable_pieces
    - auto::size
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - static_cast<float>
    - std::vector::push_back
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, EncodeWithDeepUnusedMergeChainTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:344,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:347,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:348,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:349,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:350,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:353,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:354,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:355,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:356,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:357,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:358,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:366,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 375
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::MakeBaseModelProto
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    - sentencepiece::bpe::AddPiece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlSymbolsNoMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:382,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:383,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/bpe_model_test.cc:384,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:385,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:388,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:390,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:392,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:394,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:395,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:396,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/bpe_model_test.cc:397,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 409
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto*::set_piece
    - auto*::set_type
    - Model::Encode
    - add_pieces
    - AddPieceWithType
    - EXPECT_EQ
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, ControlTokenMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::MakeBaseModelProto
      Src: /src/sentencepiece/src/bpe_model_test.cc:412,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/bpe_model_test.cc:413,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:417,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:418,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/bpe_model_test.cc:419,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:425,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:426,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:427,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:428,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_test.cc:429,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:433,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:434,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:435,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:436,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:437,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:438,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:441,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:442,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:443,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:448,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:449,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:450,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:451,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:452,1
    - Dst: sentencepiece::bpe::AddPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:453,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:460,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:461,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:462,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:463,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:469,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:470,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:472,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:479,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:481,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:482,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_test.cc:483,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/bpe_model_test.cc:489,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/bpe_model_test.cc:490,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/bpe_model_test.cc:491,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/bpe_model_test.cc:493,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 496
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - EXPECT_NE
    - ModelProto::pieces_size
    - auto::size
    - auto*::set_type
    - sentencepiece::bpe::MakeBaseModelProto
    - EXPECT_GT
    - Model::Encode
    - ByteToPiece
    - ASSERT_EQ
    - EXPECT_EQ
    - ModelProto::add_pieces
    - sentencepiece::bpe::AddPiece
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(BPEModelTest, SpecialSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
      Src: /src/sentencepiece/src/test_main.cc:25,1
    - Dst: sentencepiece::ParseCommandLineFlags
      Src: /src/sentencepiece/src/test_main.cc:26,1
    - Dst: _putenv_s
      Src: /src/sentencepiece/src/test_main.cc:30,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/test_main.cc:30,1
    - Dst: setenv
      Src: /src/sentencepiece/src/test_main.cc:32,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/test_main.cc:32,1
    - Dst: testing::InitGoogleTest
      Src: /src/sentencepiece/src/test_main.cc:34,1
    - Dst: RUN_ALL_TESTS
      Src: /src/sentencepiece/src/test_main.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 36
    functionName: main
    functionSourceFile: /src/sentencepiece/src/test_main.cc
    functionUses: 0
    functionsReached:
    - setenv
    - testing::InitGoogleTest
    - sentencepiece::ParseCommandLineFlags
    - sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
    - absl::GetFlag
    - _putenv_s
    - RUN_ALL_TESTS
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~SentenceIterator()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SentenceIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: sentencepiece::SentencePieceTrainer::SentencePieceTrainer
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SentencePieceTrainer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: ~SentencePieceTrainer()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SentencePieceTrainer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: ~SentenceIterator()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SentenceIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: sentencepiece::SentencePieceTrainer::SentencePieceTrainer
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SentencePieceTrainer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: ~SentencePieceTrainer()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SentencePieceTrainer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/sentencepiece/src/trainer_interface.h:53,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/trainer_interface.h:53,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/trainer_interface.h:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - std::vector<std::pair<K, V>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: sentencepiece::Sorted
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 0
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - std::sort
    linkageType: ''
    returnType: std::vector<std::pair<K, V>>
    signature: std::vector<std::pair<K, V>> Sorted(const std::vector<std::pair<K,
      V>>& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sentencepiece/src/trainer_interface.h:63,1
    - Dst: end
      Src: /src/sentencepiece/src/trainer_interface.h:63,1
    - Dst: sentencepiece::Sorted
      Src: /src/sentencepiece/src/trainer_interface.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - absl::flat_hash_map<K, V>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: sentencepiece::Sorted
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 1
    functionsReached:
    - end
    - begin
    - sentencepiece::Sorted
    linkageType: ''
    returnType: std::vector<std::pair<K, V>>
    signature: std::vector<std::pair<K, V>> Sorted(const absl::flat_hash_map<K, V>&
      m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: ~MultiFileSentenceIterator() override
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~MultiFileSentenceIterator() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: '& value() const override'
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::TrainerInterface::Train
      Src: /src/sentencepiece/src/trainer_interface.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' components'
    - output_model_proto
    argTypes:
    - TrainerComponents
    - ModelProto*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: sentencepiece::TrainerInterface::Train
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 1
    functionsReached:
    - sentencepiece::TrainerInterface::Train
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Train(const TrainerComponents& components,\n                             ModelProto*
      output_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::TrainerInterface::Train
      Src: /src/sentencepiece/src/trainer_interface.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sentence_iterator
    - output_model_proto
    argTypes:
    - SentenceIterator*
    - ModelProto*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: sentencepiece::TrainerInterface::Train
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 2
    functionsReached:
    - sentencepiece::TrainerInterface::Train
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Train(SentenceIterator* sentence_iterator,\n                             ModelProto*
      output_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: sentencepiece::TrainerInterface::Train
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 2
    functionsReached:
    - sentencepiece::TrainerInterface::status
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Train()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: sentencepiece::TrainerInterface::status
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::sort
      Src: /src/sentencepiece/src/trainer_interface.h:53,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/trainer_interface.h:53,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/trainer_interface.h:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - std::vector<std::pair<K, V>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: sentencepiece::Sorted
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 1
    functionsReached:
    - std::vector::end
    - std::vector::begin
    - std::sort
    linkageType: ''
    returnType: std::vector<std::pair<K, V>>
    signature: std::vector<std::pair<K, V>> Sorted(const std::vector<std::pair<K,
      V>>& m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sentencepiece/src/trainer_interface.h:63,1
    - Dst: end
      Src: /src/sentencepiece/src/trainer_interface.h:63,1
    - Dst: sentencepiece::Sorted
      Src: /src/sentencepiece/src/trainer_interface.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - absl::flat_hash_map<K, V>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: sentencepiece::Sorted
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 2
    functionsReached:
    - end
    - begin
    - sentencepiece::Sorted
    linkageType: ''
    returnType: std::vector<std::pair<K, V>>
    signature: std::vector<std::pair<K, V>> Sorted(const absl::flat_hash_map<K, V>&
      m)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: ~MultiFileSentenceIterator() override
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~MultiFileSentenceIterator() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: '& value() const override'
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::TrainerInterface::Train
      Src: /src/sentencepiece/src/trainer_interface.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' components'
    - output_model_proto
    argTypes:
    - TrainerComponents
    - ModelProto*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: sentencepiece::TrainerInterface::Train
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 3
    functionsReached:
    - sentencepiece::TrainerInterface::Train
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Train(const TrainerComponents& components,\n                             ModelProto*
      output_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::TrainerInterface::Train
      Src: /src/sentencepiece/src/trainer_interface.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sentence_iterator
    - output_model_proto
    argTypes:
    - SentenceIterator*
    - ModelProto*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 121
    functionName: sentencepiece::TrainerInterface::Train
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 4
    functionsReached:
    - sentencepiece::TrainerInterface::Train
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Train(SentenceIterator* sentence_iterator,\n                             ModelProto*
      output_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: sentencepiece::TrainerInterface::Train
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 4
    functionsReached:
    - sentencepiece::TrainerInterface::status
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Train()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: sentencepiece::TrainerInterface::status
    functionSourceFile: /src/sentencepiece/src/trainer_interface.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_factory_test.cc:24,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_factory_test.cc:25,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_factory_test.cc:26,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_factory_test.cc:28,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_factory_test.cc:29,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_factory_test.cc:30,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_factory_test.cc:31,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_factory_test.cc:32,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_factory_test.cc:33,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_factory_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_factory_test.cc:36,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/model_factory_test.cc:37,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_factory_test.cc:40,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_factory_test.cc:41,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_factory_test.cc:45,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_factory_test.cc:46,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_factory_test.cc:50,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_factory_test.cc:51,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_factory_test.cc:55,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_factory_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 58
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_factory_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    - ModelProto::mutable_trainer_spec
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(ModelFactoryTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_factory_test.cc:24,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_factory_test.cc:25,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_factory_test.cc:26,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_factory_test.cc:28,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_factory_test.cc:29,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_factory_test.cc:30,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_factory_test.cc:31,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_factory_test.cc:32,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_factory_test.cc:33,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_factory_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_factory_test.cc:36,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/model_factory_test.cc:37,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_factory_test.cc:40,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_factory_test.cc:41,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_factory_test.cc:45,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_factory_test.cc:46,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_factory_test.cc:50,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_factory_test.cc:51,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_factory_test.cc:55,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_factory_test.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 58
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_factory_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    - ModelProto::mutable_trainer_spec
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(ModelFactoryTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - ' output'
    argTypes:
    - absl::string_view
    - EncodeResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: sentencepiece::MockModel::SetEncodeResult
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetEncodeResult(absl::string_view input, const EncodeResult& output)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - ' output'
    argTypes:
    - absl::string_view
    - NBestEncodeResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: sentencepiece::MockModel::SetNBestEncodeResult
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SetNBestEncodeResult(absl::string_view input,\n                            const
      NBestEncodeResult& output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: sentencepiece::MockModel::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - normalized
    - alpha
    argTypes:
    - absl::string_view
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: sentencepiece::MockModel::SampleEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: EncodeResult
    signature: "EncodeResult SampleEncode(absl::string_view normalized,\n                            float
      alpha) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - normalized
    - nbest_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: sentencepiece::MockModel::NBestEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: NBestEncodeResult
    signature: "NBestEncodeResult NBestEncode(absl::string_view normalized,\n                                int
      nbest_size) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: sentencepiece::MockModel::IsSampleEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSampleEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: sentencepiece::MockModel::IsNBestEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNBestEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: sentencepiece::MockModel::IsControl
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsControl(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: sentencepiece::MockModel::IsUnknown
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUnknown(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: sentencepiece::MockModel::GetPieceSize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPieceSize() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: sentencepiece::MockModel::PieceToId
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PieceToId(absl::string_view piece) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: '& IdToPiece(int id) const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & IdToPiece(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: sentencepiece::MockModel::GetScore
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetScore(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: sentencepiece::ByteFallbackMockModel::ByteFallbackEnabled
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ByteFallbackEnabled() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:99,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - EncodeResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: sentencepiece::GetSpVec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - std::string
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> GetSpVec(const EncodeResult& pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - EncodeResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: sentencepiece::GetIdVec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<int>
    signature: std::vector<int> GetIdVec(const EncodeResult& pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:114,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:115,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' spt'
    argTypes:
    - SentencePieceText
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: sentencepiece::GetSpVec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - pieces
    - std::vector::emplace_back
    - piece
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> GetSpVec(const SentencePieceText& spt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: sentencepiece::MakeDefaultNormalizerSpec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec MakeDefaultNormalizerSpec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:126,1
    - Dst: SentencePieceProcessor::status
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:126,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:127,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:128,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:128,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:129,1
    - Dst: SentencePieceProcessor::status
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<MockModel>
    - std::move
    - SentencePieceProcessor::status
    - SentencePieceProcessor::SetModel
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, StatusTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:136,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:139,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:143,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:145,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:145,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:146,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:147,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:150,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:151,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:151,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:154,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:155,1
    - Dst: sentencepiece::GetIdVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:155,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:158,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:159,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:161,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:164,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:165,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:166,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:166,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:167,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:169,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:170,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:171,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:172,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:174,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:175,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:175,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:176,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:176,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:177,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:178,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:179,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:180,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:181,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:181,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:186,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:193,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:194,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:194,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:195,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:196,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:199,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:200,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:200,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:203,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:203,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:204,1
    - Dst: sentencepiece::GetIdVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:204,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:207,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:208,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:210,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:213,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:213,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:214,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:215,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:215,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:216,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:218,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:219,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:220,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:221,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:223,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:224,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:225,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:226,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:227,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:228,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:229,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:229,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:230,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:230,1
    - Dst: std::make_unique<ByteFallbackMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:236,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:247,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:248,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:248,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:249,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:250,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:253,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:254,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:254,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:257,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:257,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:258,1
    - Dst: sentencepiece::GetIdVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:258,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:261,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:262,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:262,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:264,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:267,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:267,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:268,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:268,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:269,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:269,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:270,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:270,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:271,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:271,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:272,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:272,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:273,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:273,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:274,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:274,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:276,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:277,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:278,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:279,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:279,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:280,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:281,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:281,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:282,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:282,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:283,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:283,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:285,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:285,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:286,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:287,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:287,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:288,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:289,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:289,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:290,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:290,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:291,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:292,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:292,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:293,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:294,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:295,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:295,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:296,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:296,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:297,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:297,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:298,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:298,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:299,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:299,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:300,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:300,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:306,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:308,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:309,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:309,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:310,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:311,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:314,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:314,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:320,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:323,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:324,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:324,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:325,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:326,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:329,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:329,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:335,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:338,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:339,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:339,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:340,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:341,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:344,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:344,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:349,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:352,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:353,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:353,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:355,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:355,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:356,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:356,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:359,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:359,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:360,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:360,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:362,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:362,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:365,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:366,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:366,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:367,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:367,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:369,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:369,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:370,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:371,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:373,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:373,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:374,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:375,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:375,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:376,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:376,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:377,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:378,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:378,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:383,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:386,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:387,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:387,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:389,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:389,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:390,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:390,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:393,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:393,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:394,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:394,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:396,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:396,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:399,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:399,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:400,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:401,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:401,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:403,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:403,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:404,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:405,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:407,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:408,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:408,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:409,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:409,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:410,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:410,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:411,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:411,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:412,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:412,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 163
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 414
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::Encode
    - sentencepiece::GetIdVec
    - auto::SetEncodeResult
    - std::make_unique<MockModel>
    - std::move
    - EXPECT_FALSE
    - EXPECT_TRUE
    - std::make_unique<normalizer::Normalizer>
    - EXPECT_EQ
    - SentencePieceText::pieces_size
    - std::make_unique<ByteFallbackMockModel>
    - SentencePieceProcessor::SetModel
    - sentencepiece::MakeDefaultNormalizerSpec
    - sentencepiece::GetSpVec
    - SentencePieceProcessor::SetNormalizer
    - SentencePieceText::pieces
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:420,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:422,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:426,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:428,1
    - Dst: auto::SetNBestEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:430,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:431,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:431,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:432,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:433,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:436,1
    - Dst: SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:436,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:437,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:437,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:438,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:438,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:439,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:439,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:442,1
    - Dst: SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:442,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:443,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:443,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:444,1
    - Dst: sentencepiece::GetIdVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:444,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:445,1
    - Dst: sentencepiece::GetIdVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:445,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:448,1
    - Dst: SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:448,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:449,1
    - Dst: NBestSentencePieceText::nbests_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:449,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:450,1
    - Dst: NBestSentencePieceText::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:450,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:451,1
    - Dst: NBestSentencePieceText::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:451,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:452,1
    - Dst: NBestSentencePieceText::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:452,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:453,1
    - Dst: NBestSentencePieceText::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:453,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:455,1
    - Dst: NBestSentencePieceText::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:455,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:456,1
    - Dst: NBestSentencePieceText::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:456,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:459,1
    - Dst: auto::SetNBestEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:460,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:461,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:461,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:462,1
    - Dst: SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 463
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - auto::SetNBestEncodeResult
    - sentencepiece::GetIdVec
    - std::make_unique<MockModel>
    - static_cast<float>
    - SentencePieceProcessor::NBestEncode
    - NBestSentencePieceText::nbests
    - std::move
    - std::vector::size
    - EXPECT_FALSE
    - EXPECT_TRUE
    - std::make_unique<normalizer::Normalizer>
    - EXPECT_EQ
    - SentencePieceProcessor::SetModel
    - sentencepiece::MakeDefaultNormalizerSpec
    - sentencepiece::GetSpVec
    - SentencePieceProcessor::SetNormalizer
    - NBestSentencePieceText::nbests_size
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, NBestEncodeTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:469,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:471,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:477,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:479,1
    - Dst: auto::SetNBestEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:481,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:482,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:483,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:483,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:484,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:485,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:488,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:488,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:489,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:490,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:490,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:493,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:494,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:494,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:495,1
    - Dst: sentencepiece::GetIdVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:495,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:498,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:498,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:499,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:499,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:501,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:501,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:502,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:502,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:505,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:505,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:506,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:506,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:507,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:507,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:511,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:511,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:512,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:512,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:513,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:515,1
    - Dst: LOG
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:518,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:522,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:522,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:522,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:524,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:526,1
    - Dst: auto::SetNBestEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:527,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:528,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:528,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:529,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:529,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 530
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::size
    - EXPECT_TRUE
    - std::make_unique<normalizer::Normalizer>
    - EXPECT_FALSE
    - sentencepiece::GetSpVec
    - auto::SetEncodeResult
    - SentencePieceProcessor::SampleEncode
    - LOG
    - EXPECT_EQ
    - std::exp
    - SentencePieceProcessor::SetNormalizer
    - auto::SetNBestEncodeResult
    - SentencePieceProcessor::SetModel
    - sentencepiece::MakeDefaultNormalizerSpec
    - SentencePieceText::pieces
    - sentencepiece::GetIdVec
    - std::make_unique<MockModel>
    - static_cast<float>
    - SentencePieceText::pieces_size
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, SampleEncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:545,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:568,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:569,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:569,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:571,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:572,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:573,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:577,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:577,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:578,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:578,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:579,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:579,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:582,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:582,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:585,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:585,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:586,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:586,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:587,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:587,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:588,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:588,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:589,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:589,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:590,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:590,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:591,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:591,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:592,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:592,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:594,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:594,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:595,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:595,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:596,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:596,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:597,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:597,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:598,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:598,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:599,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:599,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:600,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:600,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:601,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:601,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:602,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:602,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:603,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:603,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:604,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:604,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:605,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:605,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:606,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:606,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:607,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:607,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:608,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:608,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:609,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:609,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:615,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:616,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:616,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:618,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:619,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:619,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:621,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:622,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:623,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:627,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:627,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:628,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:628,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:629,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:629,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:634,1
    - Dst: auto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:635,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:636,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:636,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:638,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:639,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:639,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:641,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:642,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:643,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:647,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:647,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:648,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:648,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:649,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:649,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:654,1
    - Dst: auto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:655,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:656,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:656,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:658,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:659,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:659,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:661,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:662,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:663,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:667,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:667,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:668,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:668,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:669,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:669,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:674,1
    - Dst: auto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:675,1
    - Dst: auto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:676,1
    - Dst: auto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:677,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:678,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:678,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:680,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:681,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:681,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:683,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:684,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:685,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:689,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:689,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:690,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:690,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:691,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 693
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::Decode
    - SentencePieceText::text
    - std::make_unique<DecodeMockModel>
    - std::make_unique<ModelProto>
    - std::move
    - EXPECT_TRUE
    - std::make_unique<normalizer::Normalizer>
    - sentencepiece::port::FindWithDefault
    - EXPECT_EQ
    - auto::mutable_normalizer_spec
    - SentencePieceProcessor::SetModel
    - sentencepiece::MakeDefaultNormalizerSpec
    - SentencePieceText::pieces_size
    - SentencePieceProcessor::SetNormalizer
    - SentencePieceText::pieces
    - auto::mutable_trainer_spec
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, DecodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: sentencepiece::DecodeMockModel::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 539
    functionName: sentencepiece::DecodeMockModel::GetPieceSize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPieceSize() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 546
    functionName: sentencepiece::DecodeMockModel::PieceToId
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: int
    signature: int PieceToId(absl::string_view piece) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 552
    functionName: '& IdToPiece(int id) const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & IdToPiece(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 554
    functionName: sentencepiece::DecodeMockModel::IsUnknown
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUnknown(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 556
    functionName: sentencepiece::DecodeMockModel::IsControl
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsControl(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 558
    functionName: sentencepiece::DecodeMockModel::IsByte
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsByte(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 560
    functionName: sentencepiece::DecodeMockModel::GetScore
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetScore(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:708,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:732,1
    - Dst: auto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:733,1
    - Dst: auto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:734,1
    - Dst: auto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:735,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:736,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:736,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:738,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:739,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:739,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:741,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:742,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:743,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:747,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:747,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:748,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:748,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:749,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:749,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:754,1
    - Dst: auto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:755,1
    - Dst: auto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:756,1
    - Dst: auto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:757,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:758,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:758,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:760,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:761,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:761,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:763,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:764,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:765,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:769,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:769,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:770,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:770,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:771,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 773
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::Decode
    - SentencePieceText::text
    - std::make_unique<ModelProto>
    - std::make_unique<DecodeMockModel>
    - std::move
    - EXPECT_TRUE
    - std::make_unique<normalizer::Normalizer>
    - auto::mutable_normalizer_spec
    - sentencepiece::port::FindWithDefault
    - EXPECT_EQ
    - SentencePieceProcessor::SetModel
    - SentencePieceProcessor::Load
    - SentencePieceText::pieces_size
    - SentencePieceProcessor::SetNormalizer
    - sentencepiece::MakeDefaultNormalizerSpec
    - auto::mutable_trainer_spec
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, DummyPrefixDecodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 700
    functionName: sentencepiece::DecodeMockModel::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 702
    functionName: sentencepiece::DecodeMockModel::GetPieceSize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPieceSize() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 709
    functionName: sentencepiece::DecodeMockModel::PieceToId
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: int
    signature: int PieceToId(absl::string_view piece) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 715
    functionName: '& IdToPiece(int id) const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & IdToPiece(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 717
    functionName: sentencepiece::DecodeMockModel::IsUnknown
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUnknown(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 719
    functionName: sentencepiece::DecodeMockModel::IsControl
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsControl(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 721
    functionName: sentencepiece::DecodeMockModel::IsByte
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsByte(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 723
    functionName: sentencepiece::DecodeMockModel::GetScore
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetScore(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:789,1
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:793,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:793,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:800,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:800,1
    - Dst: std::make_unique<ByteFallbackDecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:819,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:820,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:820,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:822,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:823,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:824,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:855,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:855,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:856,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:856,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:857,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:857,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:860,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:860,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:863,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:863,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:864,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:864,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:865,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:865,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:867,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:867,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:868,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:868,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:869,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:869,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:871,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:871,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:872,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:872,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:873,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:873,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:875,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:875,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:876,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:876,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:877,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:877,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:878,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:878,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:879,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:879,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:880,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:880,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:881,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:881,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:882,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:882,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:883,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:883,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:885,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:885,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:886,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:886,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:887,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:887,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:889,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:889,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:890,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:890,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:891,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:891,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:892,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:892,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:893,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:893,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:894,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:894,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:896,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:896,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:897,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:897,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:898,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:898,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:900,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:900,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:901,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:901,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:902,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:902,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:904,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:904,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:905,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:905,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:906,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:906,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:908,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:908,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:909,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:909,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:910,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:910,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:911,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:911,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:912,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:912,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:913,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:913,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:914,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:914,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:915,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:915,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:916,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:916,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:918,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:918,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:919,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:919,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:920,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:920,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:921,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:921,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:922,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:922,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:923,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:923,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:924,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:924,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:925,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:925,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:926,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:926,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 928
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ByteToPiece
    - SentencePieceProcessor::Decode
    - SentencePieceText::text
    - std::vector::push_back
    - std::move
    - EXPECT_TRUE
    - std::make_unique<ByteFallbackDecodeMockModel>
    - sentencepiece::port::FindWithDefault
    - std::make_unique<normalizer::Normalizer>
    - EXPECT_EQ
    - SentencePieceProcessor::SetModel
    - sentencepiece::MakeDefaultNormalizerSpec
    - std::string
    - SentencePieceProcessor::SetNormalizer
    - SentencePieceText::pieces_size
    - SentencePieceText::pieces
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ByteFallbackDecodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 780
    functionName: sentencepiece::ByteFallbackDecodeMockModel::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:789,1
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:793,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 794
    functionName: sentencepiece::ByteFallbackDecodeMockModel::PieceToId
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - ByteToPiece
    - std::string
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: int
    signature: int PieceToId(absl::string_view piece) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:800,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 796
    functionDepth: 1
    functionLinenumber: 796
    functionLinenumberEnd: 805
    functionName: '& IdToPiece(int id) const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ByteToPiece
    - std::vector::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string & IdToPiece(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 807
    functionName: sentencepiece::ByteFallbackDecodeMockModel::GetPieceSize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPieceSize() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 809
    functionName: sentencepiece::ByteFallbackDecodeMockModel::IsUnknown
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUnknown(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 811
    functionName: sentencepiece::ByteFallbackDecodeMockModel::IsControl
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsControl(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 813
    functionName: sentencepiece::ByteFallbackDecodeMockModel::IsByte
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsByte(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 815
    functionName: sentencepiece::ByteFallbackDecodeMockModel::ByteFallbackEnabled
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ByteFallbackEnabled() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:932,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:933,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:933,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 935
    functionName: sentencepiece::AddPiece
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto* model_proto, absl::string_view piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:939,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:939,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:940,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 941
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, LoadInvalidModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:945,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:946,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:947,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:948,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:949,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:949,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:952,1
    - Dst: SentencePieceProcessor::LoadFromSerializedProto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:952,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:953,1
    - Dst: SentencePieceProcessor::LoadFromSerializedProto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:953,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:953,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:954,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:954,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 943
    functionDepth: 2
    functionLinenumber: 943
    functionLinenumberEnd: 956
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - auto*::set_type
    - SentencePieceProcessor::LoadFromSerializedProto
    - sentencepiece::AddPiece
    - SentencePieceProcessor::model_proto
    - EXPECT_FALSE
    - EXPECT_TRUE
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - ModelProto::add_pieces
    - sentencepiece::MakeDefaultNormalizerSpec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, LoadSerializedProtoTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:960,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:961,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:962,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:964,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:965,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:966,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:967,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:968,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:969,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:971,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:972,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:973,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:974,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:975,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:977,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:977,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:980,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:981,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:981,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:982,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:982,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:986,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:986,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:986,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:986,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:988,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:988,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:989,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:991,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:991,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:992,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:992,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:993,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:993,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:994,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:994,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:995,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:995,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:996,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:996,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:997,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:997,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:998,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:998,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:999,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:999,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1001,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1001,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1002,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1002,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1003,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1003,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1004,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1004,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1005,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1005,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1006,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1006,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1007,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1007,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1008,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1008,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1010,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1010,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1011,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1011,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1012,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1012,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1013,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1013,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1014,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1014,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1015,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1015,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1016,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1016,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1017,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1017,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1019,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1019,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1020,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1020,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1021,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1021,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1022,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1022,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1023,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1023,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1024,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1024,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1025,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1025,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1026,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1026,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1028,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1028,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1029,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1029,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1030,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1030,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1031,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1031,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1032,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1032,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1033,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1033,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1034,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1034,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1035,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1035,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1037,1
    - Dst: SentencePieceProcessor::unk_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1037,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1038,1
    - Dst: SentencePieceProcessor::bos_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1038,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1039,1
    - Dst: SentencePieceProcessor::eos_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1039,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1040,1
    - Dst: SentencePieceProcessor::pad_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1040,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1045,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1045,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1046,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1050,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1050,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1051,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1055,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1055,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1059,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1059,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1060,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1064,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1064,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1065,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1068,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1068,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1069,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1069,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1070,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1070,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1074,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1074,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1078,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1078,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1079,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1083,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1083,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1084,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1087,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1087,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1088,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1088,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1089,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1089,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1090,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1090,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1094,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1094,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1098,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1098,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1099,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1103,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1104,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1108,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1108,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1113,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1114,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1118,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1118,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1119,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1123,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1123,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1128,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1128,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1129,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1133,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1134,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1138,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1138,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1143,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1143,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1144,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1148,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1148,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1149,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1155,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1155,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1156,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1159,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1160,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1164,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1164,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1168,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1168,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1169,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1172,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1172,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1173,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1177,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1177,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1181,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1181,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1182,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1185,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1186,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1190,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1190,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1194,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1194,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1195,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1198,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1198,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1199,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1203,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1203,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1207,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1207,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1208,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1211,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1212,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1216,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1216,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1220,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1221,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1224,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1224,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1225,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1232,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1232,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1236,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1236,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1240,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1240,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1241,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1244,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1244,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1245,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1249,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1249,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1253,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1253,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1254,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1257,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1257,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1258,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1261,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1261,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1262,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1262,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1264,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1264,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1265,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1265,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1268,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1268,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1269,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1271,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1271,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1272,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1272,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1273,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1273,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1274,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1274,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1275,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1275,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1276,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1276,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1277,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1277,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1278,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1278,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1279,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1279,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1281,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1281,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1282,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1282,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1283,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1283,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1284,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1284,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1285,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1285,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1286,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1287,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1287,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1288,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1288,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1290,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1290,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1291,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1291,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1292,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1292,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1293,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1293,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1294,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1294,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1295,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1295,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1296,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1296,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1297,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1297,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1299,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1299,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1300,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1300,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1301,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1301,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1302,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1302,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1303,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1303,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1304,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1304,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1305,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1305,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1306,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1306,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1311,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1311,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1312,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1316,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1316,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1317,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1323,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1323,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1324,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1327,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1327,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1328,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1336,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1336,1
    - Dst: RunTest
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1337,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1343,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1344,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1346,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1346,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1346,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1347,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1347,1
    - Dst: RunTest
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 216
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 1350
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::bos_id
    - SentencePieceProcessor::pad_id
    - SentencePieceProcessor::Decode
    - EXPECT_NEAR
    - auto*::set_type
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - std::move
    - EXPECT_TRUE
    - ModelProto::SerializeAsString
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - EXPECT_FALSE
    - auto*::set_piece
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::SetEncodeExtraOptions
    - SentencePieceProcessor::GetScore
    - SentencePieceProcessor::IsControl
    - sentencepiece::AddPiece
    - SentencePieceProcessor::SetDecodeExtraOptions
    - auto::Write
    - SentencePieceProcessor::IdToPiece
    - EXPECT_EQ
    - SentencePieceProcessor::eos_id
    - ModelProto::mutable_normalizer_spec
    - SentencePieceProcessor::unk_id
    - sentencepiece::MakeDefaultNormalizerSpec
    - SentencePieceProcessor::IsUnknown
    - SentencePieceText::pieces
    - RunTest
    - auto::get
    - std::make_unique<ModelProto>
    - SentencePieceProcessor::PieceToId
    - ModelProto::add_pieces
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1354,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1355,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1357,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1358,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1359,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1360,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1362,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1363,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1364,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1365,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1366,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1367,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1368,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1370,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1371,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1374,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1374,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1377,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1377,1
    - Dst: LOG
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1378,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1379,1
    - Dst: std::vector<std::string>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1382
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::Encode
    - auto*::set_type
    - sentencepiece::AddPiece
    - LOG
    - EXPECT_TRUE
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    - ModelProto::mutable_normalizer_spec
    - EXPECT_EQ
    - ModelProto::add_pieces
    - SentencePieceProcessor::Load
    - std::vector<std::string>
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, SkipNormalizationTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1386,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1387,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1388,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1390,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1391,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1392,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1393,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1396,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1397,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1398,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1399,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1400,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1401,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1403,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1404,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1407,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1408,1
    - Dst: SentencePieceProcessor::unk_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1408,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1409,1
    - Dst: SentencePieceProcessor::bos_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1409,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1410,1
    - Dst: SentencePieceProcessor::eos_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1410,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1411,1
    - Dst: SentencePieceProcessor::pad_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1411,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1413,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1413,1
    - Dst: SentencePieceProcessor::unk_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1413,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1414,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1414,1
    - Dst: SentencePieceProcessor::bos_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1414,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1415,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1415,1
    - Dst: SentencePieceProcessor::eos_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1416
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::bos_id
    - SentencePieceProcessor::pad_id
    - auto*::set_type
    - sentencepiece::AddPiece
    - SentencePieceProcessor::eos_id
    - EXPECT_TRUE
    - SentencePieceProcessor::unk_id
    - EXPECT_EQ
    - SentencePieceProcessor::IdToPiece
    - ModelProto::add_pieces
    - SentencePieceProcessor::Load
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, OverrideSpecialPieceTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1422,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1423,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1424,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1426,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1427,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1428,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1430,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1431,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1433,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1434,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1435,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1436,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1438,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1441,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1441,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1444,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1444,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1446,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1446,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1447,1
    - Dst: std::vector<std::string>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1447,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1449,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1449,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1450,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1450,1
    - Dst: test_with_model
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1455,1
    - Dst: test_with_model
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1457,1
    - Dst: test_with_model
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1459,1
    - Dst: test_with_model
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1461,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1466,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1467,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1468,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1469,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1472,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1472,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1473,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1473,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1474,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1418
    functionDepth: 0
    functionLinenumber: 1418
    functionLinenumberEnd: 1476
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::Encode
    - test_with_model
    - SentencePieceProcessor::SetEncodeExtraOptions
    - auto*::set_type
    - sentencepiece::AddPiece
    - EXPECT_FALSE
    - EXPECT_TRUE
    - EXPECT_EQ
    - std::vector<std::string>
    - ModelProto::add_pieces
    - SentencePieceProcessor::Load
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, SpecialPiecesCombinationsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::io::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1480,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1481,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1481,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1482,1
    - Dst: absl::StrContains
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1482,1
    - Dst: auto::message
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1484
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrContains
    - sentencepiece::io::LoadModelProto
    - auto::ok
    - EXPECT_TRUE
    - EXPECT_FALSE
    - auto::message
    linkageType: ''
    returnType: void
    signature: void TEST(LoadModelProtoTest, EmptyFilename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1488,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1488,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1490,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1491,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1491,1
    - Dst: sentencepiece::io::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1494,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1495,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1495,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1496,1
    - Dst: absl::StrContains
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1496,1
    - Dst: auto::message
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1497,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1486
    functionDepth: 2
    functionLinenumber: 1486
    functionLinenumberEnd: 1499
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - absl::StrContains
    - absl::StrCat
    - sentencepiece::io::LoadModelProto
    - auto::Write
    - ::testing::TempDir
    - auto::ok
    - EXPECT_TRUE
    - EXPECT_FALSE
    - sentencepiece::filesystem::NewWritableFile
    - auto::message
    linkageType: ''
    returnType: void
    signature: void TEST(LoadModelProtoTest, FileNotParseableAsModelProto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1503,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1504,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1505,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1507,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1507,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1509,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1510,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1510,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1510,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1512,1
    - Dst: sentencepiece::io::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1501
    functionDepth: 2
    functionLinenumber: 1501
    functionLinenumberEnd: 1513
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::AddPiece
    - ASSERT_TRUE
    - sentencepiece::io::LoadModelProto
    - ::testing::TempDir
    - auto::Write
    - ModelProto::SerializeAsString
    - sentencepiece::filesystem::NewWritableFile
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(LoadModelProtoTest, FileLoadsOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - ' output'
    argTypes:
    - absl::string_view
    - EncodeResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: sentencepiece::MockModel::SetEncodeResult
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SetEncodeResult(absl::string_view input, const EncodeResult& output)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - ' output'
    argTypes:
    - absl::string_view
    - NBestEncodeResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: sentencepiece::MockModel::SetNBestEncodeResult
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SetNBestEncodeResult(absl::string_view input,\n                            const
      NBestEncodeResult& output)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: sentencepiece::MockModel::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - normalized
    - alpha
    argTypes:
    - absl::string_view
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: sentencepiece::MockModel::SampleEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: EncodeResult
    signature: "EncodeResult SampleEncode(absl::string_view normalized,\n                            float
      alpha) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - normalized
    - nbest_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: sentencepiece::MockModel::NBestEncode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    linkageType: ''
    returnType: NBestEncodeResult
    signature: "NBestEncodeResult NBestEncode(absl::string_view normalized,\n                                int
      nbest_size) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: sentencepiece::MockModel::IsSampleEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSampleEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: sentencepiece::MockModel::IsNBestEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNBestEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: sentencepiece::MockModel::IsControl
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsControl(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    functionName: sentencepiece::MockModel::IsUnknown
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUnknown(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: sentencepiece::MockModel::GetPieceSize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPieceSize() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: sentencepiece::MockModel::PieceToId
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int PieceToId(absl::string_view piece) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: '& IdToPiece(int id) const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & IdToPiece(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: sentencepiece::MockModel::GetScore
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetScore(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: sentencepiece::ByteFallbackMockModel::ByteFallbackEnabled
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ByteFallbackEnabled() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:99,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - EncodeResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: sentencepiece::GetSpVec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 3
    functionsReached:
    - std::vector::emplace_back
    - std::string
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> GetSpVec(const EncodeResult& pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - EncodeResult
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: sentencepiece::GetIdVec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 3
    functionsReached:
    - std::vector::emplace_back
    linkageType: ''
    returnType: std::vector<int>
    signature: std::vector<int> GetIdVec(const EncodeResult& pieces)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:114,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:115,1
    - Dst: piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' spt'
    argTypes:
    - SentencePieceText
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 118
    functionName: sentencepiece::GetSpVec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 3
    functionsReached:
    - pieces
    - std::vector::emplace_back
    - piece
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> GetSpVec(const SentencePieceText& spt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: sentencepiece::MakeDefaultNormalizerSpec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 8
    functionsReached:
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec MakeDefaultNormalizerSpec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:126,1
    - Dst: SentencePieceProcessor::status
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:126,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:127,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:128,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:128,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:129,1
    - Dst: SentencePieceProcessor::status
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<MockModel>
    - std::move
    - SentencePieceProcessor::status
    - SentencePieceProcessor::SetModel
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, StatusTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:136,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:139,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:143,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:145,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:145,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:146,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:147,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:150,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:151,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:151,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:154,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:155,1
    - Dst: sentencepiece::GetIdVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:155,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:158,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:159,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:161,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:164,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:164,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:165,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:165,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:166,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:166,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:167,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:167,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:169,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:169,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:170,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:171,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:171,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:172,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:172,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:174,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:174,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:175,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:175,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:176,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:176,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:177,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:178,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:178,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:179,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:180,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:181,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:181,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:186,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:193,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:194,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:194,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:195,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:196,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:199,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:200,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:200,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:203,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:203,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:204,1
    - Dst: sentencepiece::GetIdVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:204,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:207,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:208,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:210,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:213,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:213,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:214,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:215,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:215,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:216,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:218,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:219,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:220,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:221,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:223,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:224,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:225,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:226,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:227,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:228,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:229,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:229,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:230,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:230,1
    - Dst: std::make_unique<ByteFallbackMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:236,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:247,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:248,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:248,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:249,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:250,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:253,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:253,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:254,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:254,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:257,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:257,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:258,1
    - Dst: sentencepiece::GetIdVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:258,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:261,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:261,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:262,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:262,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:264,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:267,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:267,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:268,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:268,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:269,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:269,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:270,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:270,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:271,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:271,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:272,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:272,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:273,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:273,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:274,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:274,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:276,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:277,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:278,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:279,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:279,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:280,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:280,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:281,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:281,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:282,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:282,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:283,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:283,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:285,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:285,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:286,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:287,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:287,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:288,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:289,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:289,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:290,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:290,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:291,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:292,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:292,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:293,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:294,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:295,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:295,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:296,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:296,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:297,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:297,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:298,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:298,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:299,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:299,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:300,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:300,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:306,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:308,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:309,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:309,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:310,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:311,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:314,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:314,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:320,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:323,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:324,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:324,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:325,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:326,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:329,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:329,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:335,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:338,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:339,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:339,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:340,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:341,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:344,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:344,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:349,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:352,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:353,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:353,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:355,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:355,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:356,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:356,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:359,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:359,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:360,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:360,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:362,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:362,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:365,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:366,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:366,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:367,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:367,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:369,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:369,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:370,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:371,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:373,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:373,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:374,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:375,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:375,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:376,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:376,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:377,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:378,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:378,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:383,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:386,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:387,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:387,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:389,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:389,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:390,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:390,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:393,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:393,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:394,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:394,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:396,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:396,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:399,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:399,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:400,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:401,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:401,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:403,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:403,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:404,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:404,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:405,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:407,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:408,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:408,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:409,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:409,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:410,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:410,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:411,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:411,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:412,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:412,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 163
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 414
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::Encode
    - sentencepiece::GetIdVec
    - auto::SetEncodeResult
    - std::make_unique<MockModel>
    - std::move
    - EXPECT_FALSE
    - EXPECT_TRUE
    - std::make_unique<normalizer::Normalizer>
    - EXPECT_EQ
    - SentencePieceText::pieces_size
    - std::make_unique<ByteFallbackMockModel>
    - SentencePieceProcessor::SetModel
    - sentencepiece::MakeDefaultNormalizerSpec
    - sentencepiece::GetSpVec
    - SentencePieceProcessor::SetNormalizer
    - SentencePieceText::pieces
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:420,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:422,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:426,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:428,1
    - Dst: auto::SetNBestEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:430,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:431,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:431,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:432,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:433,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:436,1
    - Dst: SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:436,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:437,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:437,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:438,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:438,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:439,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:439,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:442,1
    - Dst: SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:442,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:443,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:443,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:444,1
    - Dst: sentencepiece::GetIdVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:444,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:445,1
    - Dst: sentencepiece::GetIdVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:445,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:448,1
    - Dst: SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:448,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:449,1
    - Dst: NBestSentencePieceText::nbests_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:449,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:450,1
    - Dst: NBestSentencePieceText::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:450,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:451,1
    - Dst: NBestSentencePieceText::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:451,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:452,1
    - Dst: NBestSentencePieceText::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:452,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:453,1
    - Dst: NBestSentencePieceText::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:453,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:455,1
    - Dst: NBestSentencePieceText::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:455,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:456,1
    - Dst: NBestSentencePieceText::nbests
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:456,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:459,1
    - Dst: auto::SetNBestEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:460,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:461,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:461,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:462,1
    - Dst: SentencePieceProcessor::NBestEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 416
    functionDepth: 2
    functionLinenumber: 416
    functionLinenumberEnd: 463
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - auto::SetNBestEncodeResult
    - sentencepiece::GetIdVec
    - std::make_unique<MockModel>
    - static_cast<float>
    - SentencePieceProcessor::NBestEncode
    - NBestSentencePieceText::nbests
    - std::move
    - std::vector::size
    - EXPECT_FALSE
    - EXPECT_TRUE
    - std::make_unique<normalizer::Normalizer>
    - EXPECT_EQ
    - SentencePieceProcessor::SetModel
    - sentencepiece::MakeDefaultNormalizerSpec
    - sentencepiece::GetSpVec
    - SentencePieceProcessor::SetNormalizer
    - NBestSentencePieceText::nbests_size
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, NBestEncodeTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:469,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:471,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:477,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:479,1
    - Dst: auto::SetNBestEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:481,1
    - Dst: auto::SetEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:482,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:483,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:483,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:484,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:485,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:488,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:488,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:489,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:490,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:490,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:493,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:494,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:494,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:495,1
    - Dst: sentencepiece::GetIdVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:495,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:498,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:498,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:499,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:499,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:501,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:501,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:502,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:502,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:505,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:505,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:506,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:506,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:507,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:507,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:511,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:511,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:512,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:512,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:513,1
    - Dst: sentencepiece::GetSpVec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:515,1
    - Dst: LOG
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:518,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:522,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:522,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:522,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:524,1
    - Dst: std::make_unique<MockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:526,1
    - Dst: auto::SetNBestEncodeResult
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:527,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:528,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:528,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:529,1
    - Dst: SentencePieceProcessor::SampleEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:529,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 465
    functionDepth: 2
    functionLinenumber: 465
    functionLinenumberEnd: 530
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::size
    - EXPECT_TRUE
    - std::make_unique<normalizer::Normalizer>
    - EXPECT_FALSE
    - sentencepiece::GetSpVec
    - auto::SetEncodeResult
    - SentencePieceProcessor::SampleEncode
    - LOG
    - EXPECT_EQ
    - std::exp
    - SentencePieceProcessor::SetNormalizer
    - auto::SetNBestEncodeResult
    - SentencePieceProcessor::SetModel
    - sentencepiece::MakeDefaultNormalizerSpec
    - SentencePieceText::pieces
    - sentencepiece::GetIdVec
    - std::make_unique<MockModel>
    - static_cast<float>
    - SentencePieceText::pieces_size
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, SampleEncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:545,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:568,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:569,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:569,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:571,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:572,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:573,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:577,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:577,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:578,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:578,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:579,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:579,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:582,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:582,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:585,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:585,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:586,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:586,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:587,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:587,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:588,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:588,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:589,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:589,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:590,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:590,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:591,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:591,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:592,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:592,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:594,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:594,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:595,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:595,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:596,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:596,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:597,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:597,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:598,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:598,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:599,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:599,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:600,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:600,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:601,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:601,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:602,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:602,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:603,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:603,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:604,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:604,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:605,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:605,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:606,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:606,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:607,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:607,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:608,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:608,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:609,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:609,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:615,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:616,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:616,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:618,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:619,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:619,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:621,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:622,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:623,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:627,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:627,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:628,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:628,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:629,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:629,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:634,1
    - Dst: auto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:635,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:636,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:636,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:638,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:639,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:639,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:641,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:642,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:643,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:647,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:647,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:648,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:648,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:649,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:649,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:654,1
    - Dst: auto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:655,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:656,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:656,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:658,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:659,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:659,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:661,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:662,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:663,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:667,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:667,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:668,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:668,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:669,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:669,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:674,1
    - Dst: auto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:675,1
    - Dst: auto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:676,1
    - Dst: auto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:677,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:678,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:678,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:680,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:681,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:681,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:683,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:684,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:685,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:689,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:689,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:690,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:690,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:691,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:691,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 693
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::Decode
    - SentencePieceText::text
    - std::make_unique<DecodeMockModel>
    - std::make_unique<ModelProto>
    - std::move
    - EXPECT_TRUE
    - std::make_unique<normalizer::Normalizer>
    - sentencepiece::port::FindWithDefault
    - EXPECT_EQ
    - auto::mutable_normalizer_spec
    - SentencePieceProcessor::SetModel
    - sentencepiece::MakeDefaultNormalizerSpec
    - SentencePieceText::pieces_size
    - SentencePieceProcessor::SetNormalizer
    - SentencePieceText::pieces
    - auto::mutable_trainer_spec
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, DecodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: sentencepiece::DecodeMockModel::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 539
    functionName: sentencepiece::DecodeMockModel::GetPieceSize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPieceSize() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 546
    functionName: sentencepiece::DecodeMockModel::PieceToId
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: int
    signature: int PieceToId(absl::string_view piece) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 552
    functionName: '& IdToPiece(int id) const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & IdToPiece(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 554
    functionDepth: 0
    functionLinenumber: 554
    functionLinenumberEnd: 554
    functionName: sentencepiece::DecodeMockModel::IsUnknown
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUnknown(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 556
    functionDepth: 0
    functionLinenumber: 556
    functionLinenumberEnd: 556
    functionName: sentencepiece::DecodeMockModel::IsControl
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsControl(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 558
    functionName: sentencepiece::DecodeMockModel::IsByte
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsByte(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 560
    functionDepth: 0
    functionLinenumber: 560
    functionLinenumberEnd: 560
    functionName: sentencepiece::DecodeMockModel::GetScore
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetScore(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:708,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:732,1
    - Dst: auto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:733,1
    - Dst: auto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:734,1
    - Dst: auto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:735,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:736,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:736,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:738,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:739,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:739,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:741,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:742,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:743,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:747,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:747,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:748,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:748,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:749,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:749,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:754,1
    - Dst: auto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:755,1
    - Dst: auto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:756,1
    - Dst: auto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:757,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:758,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:758,1
    - Dst: std::make_unique<DecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:760,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:761,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:761,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:763,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:764,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:765,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:769,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:769,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:770,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:770,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:771,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 773
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::Decode
    - SentencePieceText::text
    - std::make_unique<ModelProto>
    - std::make_unique<DecodeMockModel>
    - std::move
    - EXPECT_TRUE
    - std::make_unique<normalizer::Normalizer>
    - auto::mutable_normalizer_spec
    - sentencepiece::port::FindWithDefault
    - EXPECT_EQ
    - SentencePieceProcessor::SetModel
    - SentencePieceProcessor::Load
    - SentencePieceText::pieces_size
    - SentencePieceProcessor::SetNormalizer
    - sentencepiece::MakeDefaultNormalizerSpec
    - auto::mutable_trainer_spec
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, DummyPrefixDecodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 700
    functionName: sentencepiece::DecodeMockModel::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 702
    functionName: sentencepiece::DecodeMockModel::GetPieceSize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPieceSize() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 709
    functionName: sentencepiece::DecodeMockModel::PieceToId
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: int
    signature: int PieceToId(absl::string_view piece) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 711
    functionDepth: 0
    functionLinenumber: 711
    functionLinenumberEnd: 715
    functionName: '& IdToPiece(int id) const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & IdToPiece(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 717
    functionName: sentencepiece::DecodeMockModel::IsUnknown
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUnknown(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 719
    functionName: sentencepiece::DecodeMockModel::IsControl
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsControl(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 721
    functionName: sentencepiece::DecodeMockModel::IsByte
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsByte(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 723
    functionName: sentencepiece::DecodeMockModel::GetScore
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetScore(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:789,1
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:793,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:793,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:800,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:800,1
    - Dst: std::make_unique<ByteFallbackDecodeMockModel>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:819,1
    - Dst: SentencePieceProcessor::SetModel
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:820,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:820,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:822,1
    - Dst: SentencePieceProcessor::SetNormalizer
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:823,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:824,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:855,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:855,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:856,1
    - Dst: SentencePieceText::text
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:856,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:857,1
    - Dst: SentencePieceText::pieces_size
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:857,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:860,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:860,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:863,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:863,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:864,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:864,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:865,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:865,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:867,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:867,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:868,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:868,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:869,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:869,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:871,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:871,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:872,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:872,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:873,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:873,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:875,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:875,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:876,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:876,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:877,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:877,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:878,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:878,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:879,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:879,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:880,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:880,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:881,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:881,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:882,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:882,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:883,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:883,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:885,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:885,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:886,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:886,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:887,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:887,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:889,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:889,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:890,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:890,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:891,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:891,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:892,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:892,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:893,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:893,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:894,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:894,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:896,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:896,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:897,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:897,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:898,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:898,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:900,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:900,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:901,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:901,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:902,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:902,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:904,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:904,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:905,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:905,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:906,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:906,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:908,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:908,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:909,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:909,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:910,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:910,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:911,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:911,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:912,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:912,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:913,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:913,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:914,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:914,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:915,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:915,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:916,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:916,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:918,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:918,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:919,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:919,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:920,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:920,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:921,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:921,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:922,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:922,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:923,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:923,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:924,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:924,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:925,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:925,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:926,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:926,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 928
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ByteToPiece
    - SentencePieceProcessor::Decode
    - SentencePieceText::text
    - std::vector::push_back
    - std::move
    - EXPECT_TRUE
    - std::make_unique<ByteFallbackDecodeMockModel>
    - sentencepiece::port::FindWithDefault
    - std::make_unique<normalizer::Normalizer>
    - EXPECT_EQ
    - SentencePieceProcessor::SetModel
    - sentencepiece::MakeDefaultNormalizerSpec
    - std::string
    - SentencePieceProcessor::SetNormalizer
    - SentencePieceText::pieces_size
    - SentencePieceText::pieces
    linkageType: ''
    returnType: void
    signature: void TEST(SentencepieceProcessorTest, ByteFallbackDecodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 778
    functionDepth: 0
    functionLinenumber: 778
    functionLinenumberEnd: 780
    functionName: sentencepiece::ByteFallbackDecodeMockModel::Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:789,1
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:793,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 794
    functionName: sentencepiece::ByteFallbackDecodeMockModel::PieceToId
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - ByteToPiece
    - std::string
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: int
    signature: int PieceToId(absl::string_view piece) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:800,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:800,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 796
    functionDepth: 0
    functionLinenumber: 796
    functionLinenumberEnd: 805
    functionName: '& IdToPiece(int id) const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - ByteToPiece
    - std::vector::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string & IdToPiece(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 807
    functionDepth: 0
    functionLinenumber: 807
    functionLinenumberEnd: 807
    functionName: sentencepiece::ByteFallbackDecodeMockModel::GetPieceSize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int GetPieceSize() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 809
    functionName: sentencepiece::ByteFallbackDecodeMockModel::IsUnknown
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsUnknown(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 811
    functionName: sentencepiece::ByteFallbackDecodeMockModel::IsControl
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsControl(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 813
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 813
    functionName: sentencepiece::ByteFallbackDecodeMockModel::IsByte
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsByte(int id) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 815
    functionDepth: 0
    functionLinenumber: 815
    functionLinenumberEnd: 815
    functionName: sentencepiece::ByteFallbackDecodeMockModel::ByteFallbackEnabled
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ByteFallbackEnabled() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:932,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:933,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:933,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 930
    functionDepth: 0
    functionLinenumber: 930
    functionLinenumberEnd: 935
    functionName: sentencepiece::AddPiece
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 6
    functionsReached:
    - std::string
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto* model_proto, absl::string_view piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:939,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:939,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:940,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 941
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, LoadInvalidModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:945,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:946,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:947,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:948,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:949,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:949,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:952,1
    - Dst: SentencePieceProcessor::LoadFromSerializedProto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:952,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:953,1
    - Dst: SentencePieceProcessor::LoadFromSerializedProto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:953,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:953,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:954,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:954,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 943
    functionDepth: 2
    functionLinenumber: 943
    functionLinenumberEnd: 956
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - auto*::set_type
    - SentencePieceProcessor::LoadFromSerializedProto
    - sentencepiece::AddPiece
    - SentencePieceProcessor::model_proto
    - EXPECT_FALSE
    - EXPECT_TRUE
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - ModelProto::mutable_normalizer_spec
    - ModelProto::add_pieces
    - sentencepiece::MakeDefaultNormalizerSpec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, LoadSerializedProtoTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:960,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:961,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:962,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:964,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:965,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:966,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:967,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:968,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:969,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:971,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:972,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:973,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:974,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:975,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:977,1
    - Dst: sentencepiece::MakeDefaultNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:977,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:980,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:981,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:981,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:982,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:982,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:986,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:986,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:986,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:986,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:988,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:988,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:989,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:991,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:991,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:992,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:992,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:993,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:993,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:994,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:994,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:995,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:995,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:996,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:996,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:997,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:997,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:998,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:998,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:999,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:999,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1001,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1001,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1002,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1002,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1003,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1003,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1004,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1004,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1005,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1005,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1006,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1006,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1007,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1007,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1008,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1008,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1010,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1010,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1011,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1011,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1012,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1012,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1013,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1013,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1014,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1014,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1015,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1015,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1016,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1016,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1017,1
    - Dst: SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1017,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1019,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1019,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1020,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1020,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1021,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1021,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1022,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1022,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1023,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1023,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1024,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1024,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1025,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1025,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1026,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1026,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1028,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1028,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1029,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1029,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1030,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1030,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1031,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1031,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1032,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1032,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1033,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1033,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1034,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1034,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1035,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1035,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1037,1
    - Dst: SentencePieceProcessor::unk_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1037,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1038,1
    - Dst: SentencePieceProcessor::bos_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1038,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1039,1
    - Dst: SentencePieceProcessor::eos_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1039,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1040,1
    - Dst: SentencePieceProcessor::pad_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1040,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1045,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1045,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1046,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1050,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1050,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1051,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1055,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1055,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1059,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1059,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1060,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1064,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1064,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1065,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1068,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1068,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1069,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1069,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1070,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1070,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1074,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1074,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1078,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1078,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1079,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1083,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1083,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1084,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1087,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1087,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1088,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1088,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1089,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1089,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1090,1
    - Dst: SentencePieceText::pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1090,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1094,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1094,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1098,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1098,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1099,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1103,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1104,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1108,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1108,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1113,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1114,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1118,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1118,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1119,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1123,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1123,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1128,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1128,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1129,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1133,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1134,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1138,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1138,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1143,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1143,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1144,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1148,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1148,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1149,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1155,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1155,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1156,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1159,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1160,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1164,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1164,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1168,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1168,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1169,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1172,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1172,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1173,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1177,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1177,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1181,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1181,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1182,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1185,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1186,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1190,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1190,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1194,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1194,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1195,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1198,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1198,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1199,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1203,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1203,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1207,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1207,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1208,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1211,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1212,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1216,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1216,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1220,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1221,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1224,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1224,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1225,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1232,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1232,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1236,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1236,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1240,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1240,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1241,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1244,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1244,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1245,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1249,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1249,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1253,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1253,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1254,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1257,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1257,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1258,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1261,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1261,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1262,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1262,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1264,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1264,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1265,1
    - Dst: SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1265,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1268,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1268,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1269,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1271,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1271,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1272,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1272,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1273,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1273,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1274,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1274,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1275,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1275,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1276,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1276,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1277,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1277,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1278,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1278,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1279,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1279,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1281,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1281,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1282,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1282,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1283,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1283,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1284,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1284,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1285,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1285,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1286,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1287,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1287,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1288,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1288,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1290,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1290,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1291,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1291,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1292,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1292,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1293,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1293,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1294,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1294,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1295,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1295,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1296,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1296,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1297,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1297,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1299,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1299,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1300,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1300,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1301,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1301,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1302,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1302,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1303,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1303,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1304,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1304,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1305,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1305,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1306,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1306,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1311,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1311,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1312,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1316,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1316,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1317,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1323,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1323,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1324,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1327,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1327,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1328,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1336,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1336,1
    - Dst: RunTest
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1337,1
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1343,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1344,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1346,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1346,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1346,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1347,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1347,1
    - Dst: RunTest
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 216
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1350
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 1350
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::bos_id
    - SentencePieceProcessor::pad_id
    - SentencePieceProcessor::Decode
    - EXPECT_NEAR
    - auto*::set_type
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - std::move
    - EXPECT_TRUE
    - ModelProto::SerializeAsString
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - EXPECT_FALSE
    - auto*::set_piece
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::SetEncodeExtraOptions
    - SentencePieceProcessor::GetScore
    - SentencePieceProcessor::IsControl
    - sentencepiece::AddPiece
    - SentencePieceProcessor::SetDecodeExtraOptions
    - auto::Write
    - SentencePieceProcessor::IdToPiece
    - EXPECT_EQ
    - SentencePieceProcessor::eos_id
    - ModelProto::mutable_normalizer_spec
    - SentencePieceProcessor::unk_id
    - sentencepiece::MakeDefaultNormalizerSpec
    - SentencePieceProcessor::IsUnknown
    - SentencePieceText::pieces
    - RunTest
    - auto::get
    - std::make_unique<ModelProto>
    - SentencePieceProcessor::PieceToId
    - ModelProto::add_pieces
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1354,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1355,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1357,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1358,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1359,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1360,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1362,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1363,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1364,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1365,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1366,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1367,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1368,1
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1370,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1371,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1374,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1374,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1377,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1377,1
    - Dst: LOG
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1378,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1379,1
    - Dst: std::vector<std::string>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1379,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1352
    functionDepth: 1
    functionLinenumber: 1352
    functionLinenumberEnd: 1382
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::Encode
    - auto*::set_type
    - sentencepiece::AddPiece
    - LOG
    - EXPECT_TRUE
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    - ModelProto::mutable_normalizer_spec
    - EXPECT_EQ
    - ModelProto::add_pieces
    - SentencePieceProcessor::Load
    - std::vector<std::string>
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, SkipNormalizationTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1386,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1387,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1388,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1390,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1391,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1392,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1393,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1396,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1397,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1398,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1399,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1400,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1401,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1403,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1404,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1407,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1408,1
    - Dst: SentencePieceProcessor::unk_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1408,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1409,1
    - Dst: SentencePieceProcessor::bos_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1409,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1410,1
    - Dst: SentencePieceProcessor::eos_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1410,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1411,1
    - Dst: SentencePieceProcessor::pad_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1411,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1413,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1413,1
    - Dst: SentencePieceProcessor::unk_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1413,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1414,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1414,1
    - Dst: SentencePieceProcessor::bos_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1414,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1415,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1415,1
    - Dst: SentencePieceProcessor::eos_id
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1416
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::bos_id
    - SentencePieceProcessor::pad_id
    - auto*::set_type
    - sentencepiece::AddPiece
    - SentencePieceProcessor::eos_id
    - EXPECT_TRUE
    - SentencePieceProcessor::unk_id
    - EXPECT_EQ
    - SentencePieceProcessor::IdToPiece
    - ModelProto::add_pieces
    - SentencePieceProcessor::Load
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, OverrideSpecialPieceTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1422,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1423,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1424,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1426,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1427,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1428,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1430,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1431,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1433,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1434,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1435,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1436,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1438,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1441,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1441,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1444,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1444,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1446,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1446,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1447,1
    - Dst: std::vector<std::string>
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1447,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1449,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1449,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1450,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1450,1
    - Dst: test_with_model
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1455,1
    - Dst: test_with_model
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1457,1
    - Dst: test_with_model
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1459,1
    - Dst: test_with_model
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1461,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1466,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1467,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1468,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1469,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1472,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1472,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1473,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1473,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1474,1
    - Dst: SentencePieceProcessor::SetEncodeExtraOptions
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1476
      start: 1418
    functionDepth: 0
    functionLinenumber: 1418
    functionLinenumberEnd: 1476
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::Encode
    - test_with_model
    - SentencePieceProcessor::SetEncodeExtraOptions
    - auto*::set_type
    - sentencepiece::AddPiece
    - EXPECT_FALSE
    - EXPECT_TRUE
    - EXPECT_EQ
    - std::vector<std::string>
    - ModelProto::add_pieces
    - SentencePieceProcessor::Load
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceProcessorTest, SpecialPiecesCombinationsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::io::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1480,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1481,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1481,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1482,1
    - Dst: absl::StrContains
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1482,1
    - Dst: auto::message
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1478
    functionDepth: 2
    functionLinenumber: 1478
    functionLinenumberEnd: 1484
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - absl::StrContains
    - sentencepiece::io::LoadModelProto
    - auto::ok
    - EXPECT_TRUE
    - EXPECT_FALSE
    - auto::message
    linkageType: ''
    returnType: void
    signature: void TEST(LoadModelProtoTest, EmptyFilename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1488,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1488,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1490,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1491,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1491,1
    - Dst: sentencepiece::io::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1494,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1495,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1495,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1496,1
    - Dst: absl::StrContains
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1496,1
    - Dst: auto::message
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1497,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1486
    functionDepth: 2
    functionLinenumber: 1486
    functionLinenumberEnd: 1499
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - absl::StrContains
    - absl::StrCat
    - sentencepiece::io::LoadModelProto
    - auto::Write
    - ::testing::TempDir
    - auto::ok
    - EXPECT_TRUE
    - EXPECT_FALSE
    - sentencepiece::filesystem::NewWritableFile
    - auto::message
    linkageType: ''
    returnType: void
    signature: void TEST(LoadModelProtoTest, FileNotParseableAsModelProto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1503,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1504,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1505,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1507,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1507,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1509,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1510,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1510,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1510,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1512,1
    - Dst: sentencepiece::io::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor_test.cc:1512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1501
    functionDepth: 2
    functionLinenumber: 1501
    functionLinenumberEnd: 1513
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::AddPiece
    - ASSERT_TRUE
    - sentencepiece::io::LoadModelProto
    - ::testing::TempDir
    - auto::Write
    - ModelProto::SerializeAsString
    - sentencepiece::filesystem::NewWritableFile
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(LoadModelProtoTest, FileLoadsOk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: sentencepiece::ModelInterface::ModelInterface
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ModelInterface()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: sentencepiece::ModelInterface::status
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: '& model_proto() const'
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto & model_proto() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/sentencepiece/src/model_interface.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: sentencepiece::ModelInterface::prefix_matcher
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: normalizer::PrefixMatcher
    signature: "normalizer::PrefixMatcher * prefix_matcher()\n      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/model_interface.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - normalized
    - nbest_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: sentencepiece::ModelInterface::NBestEncode
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: NBestEncodeResult
    signature: "NBestEncodeResult NBestEncode(\n      absl::string_view normalized,
      int nbest_size) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/model_interface.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - normalized
    - alpha
    argTypes:
    - absl::string_view
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: sentencepiece::ModelInterface::SampleEncode
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: EncodeResult
    signature: "EncodeResult SampleEncode(absl::string_view normalized,\n                                                  float
      alpha) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: sentencepiece::ModelInterface::IsSampleEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSampleEncodeAvailable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: sentencepiece::ModelInterface::IsNBestEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNBestEncodeAvailable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:121,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:122,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:122,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: '& IdToPiece(int id) const'
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: std::string
    signature: std::string & IdToPiece(int id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: sentencepiece::ModelInterface::GetPieceSize
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces_size
    linkageType: ''
    returnType: int
    signature: int GetPieceSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:139,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:140,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:140,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: sentencepiece::ModelInterface::GetScore
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: float
    signature: float GetScore(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:146,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:147,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:147,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: sentencepiece::ModelInterface::IsUnknown
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsUnknown(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:154,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:155,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:155,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: sentencepiece::ModelInterface::IsControl
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsControl(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:162,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:163,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:163,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: sentencepiece::ModelInterface::IsUnused
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsUnused(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:170,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:171,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:171,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: sentencepiece::ModelInterface::IsUserDefined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsUserDefined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:178,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:179,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:179,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: sentencepiece::ModelInterface::IsByte
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsByte(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/model_interface.h:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: sentencepiece::ModelInterface::ByteFallbackEnabled
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - trainer_spec
    linkageType: ''
    returnType: bool
    signature: bool ByteFallbackEnabled() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: sentencepiece::ModelInterface::VerifyOutputsEquivalent
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool VerifyOutputsEquivalent(\n      absl::string_view expected, absl::string_view
      actual) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:208,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:209,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:209,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: sentencepiece::ModelInterface::GetScoreInlined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: float
    signature: float GetScoreInlined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:214,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:215,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:215,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: sentencepiece::ModelInterface::IsUnknownInlined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsUnknownInlined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:221,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:222,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:222,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: sentencepiece::ModelInterface::IsControlInlined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsControlInlined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:228,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:229,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:229,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: sentencepiece::ModelInterface::IsUnusedInlined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsUnusedInlined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:235,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:236,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:236,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: sentencepiece::ModelInterface::IsUserDefinedInlined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsUserDefinedInlined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:242,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:243,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:243,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: sentencepiece::ModelInterface::IsByteInlined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsByteInlined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:248,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:249,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:249,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:250,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.h:251,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.h:252,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.h:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 254
    functionName: sentencepiece::ModelInterface::IsReservedId
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - DCHECK_GE
    - type
    - pieces_size
    - pieces
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsReservedId(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: sentencepiece::ModelInterface::ModelInterface
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ModelInterface()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    functionName: sentencepiece::ModelInterface::status
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: '& model_proto() const'
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto & model_proto() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/sentencepiece/src/model_interface.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: sentencepiece::ModelInterface::prefix_matcher
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: normalizer::PrefixMatcher
    signature: "normalizer::PrefixMatcher * prefix_matcher()\n      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/model_interface.h:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - normalized
    - nbest_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: sentencepiece::ModelInterface::NBestEncode
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: NBestEncodeResult
    signature: "NBestEncodeResult NBestEncode(\n      absl::string_view normalized,
      int nbest_size) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/model_interface.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - normalized
    - alpha
    argTypes:
    - absl::string_view
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: sentencepiece::ModelInterface::SampleEncode
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - LOG
    linkageType: ''
    returnType: EncodeResult
    signature: "EncodeResult SampleEncode(absl::string_view normalized,\n                                                  float
      alpha) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: sentencepiece::ModelInterface::IsSampleEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSampleEncodeAvailable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: sentencepiece::ModelInterface::IsNBestEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNBestEncodeAvailable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:121,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:122,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:122,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: '& IdToPiece(int id) const'
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: std::string
    signature: std::string & IdToPiece(int id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: sentencepiece::ModelInterface::GetPieceSize
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces_size
    linkageType: ''
    returnType: int
    signature: int GetPieceSize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:139,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:140,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:140,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 142
    functionName: sentencepiece::ModelInterface::GetScore
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: float
    signature: float GetScore(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:146,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:147,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:147,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 150
    functionName: sentencepiece::ModelInterface::IsUnknown
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsUnknown(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:154,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:155,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:155,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 158
    functionName: sentencepiece::ModelInterface::IsControl
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsControl(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:162,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:163,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:163,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 166
    functionName: sentencepiece::ModelInterface::IsUnused
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsUnused(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:170,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:171,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:171,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 174
    functionName: sentencepiece::ModelInterface::IsUserDefined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsUserDefined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:178,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:179,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:179,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: sentencepiece::ModelInterface::IsByte
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsByte(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/model_interface.h:185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: sentencepiece::ModelInterface::ByteFallbackEnabled
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - trainer_spec
    linkageType: ''
    returnType: bool
    signature: bool ByteFallbackEnabled() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    functionName: sentencepiece::ModelInterface::VerifyOutputsEquivalent
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool VerifyOutputsEquivalent(\n      absl::string_view expected, absl::string_view
      actual) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:208,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:209,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:209,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: sentencepiece::ModelInterface::GetScoreInlined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: float
    signature: float GetScoreInlined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:214,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:215,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:215,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 218
    functionName: sentencepiece::ModelInterface::IsUnknownInlined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsUnknownInlined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:221,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:222,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:222,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: sentencepiece::ModelInterface::IsControlInlined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsControlInlined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:228,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:229,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:229,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: sentencepiece::ModelInterface::IsUnusedInlined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsUnusedInlined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:235,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:236,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:236,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: sentencepiece::ModelInterface::IsUserDefinedInlined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsUserDefinedInlined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:242,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:243,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:243,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: sentencepiece::ModelInterface::IsByteInlined
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - pieces
    - DCHECK_GE
    - pieces_size
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsByteInlined(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DCHECK_GE
      Src: /src/sentencepiece/src/model_interface.h:248,1
    - Dst: DCHECK_LT
      Src: /src/sentencepiece/src/model_interface.h:249,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.h:249,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.h:250,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.h:251,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.h:252,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.h:253,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - id
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 254
    functionName: sentencepiece::ModelInterface::IsReservedId
    functionSourceFile: /src/sentencepiece/src/model_interface.h
    functionUses: 0
    functionsReached:
    - DCHECK_GE
    - type
    - pieces_size
    - pieces
    - DCHECK_LT
    linkageType: ''
    returnType: bool
    signature: bool IsReservedId(int id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:37,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:37,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:38,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:39,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:39,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - filename
    - expected_vocab_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: sentencepiece::CheckVocab
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - SentencePieceProcessor::model_proto
    - EXPECT_EQ
    - SentencePieceProcessor::Load
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: void CheckVocab(absl::string_view filename, int expected_vocab_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:46,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:46,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:46,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:47,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:49,1
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:51,1
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - filename
    - expected_has_normalizer
    - expected_has_denormalizer
    argTypes:
    - absl::string_view
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: sentencepiece::CheckNormalizer
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - SentencePieceProcessor::model_proto
    - EXPECT_EQ
    - precompiled_charsmap
    - SentencePieceProcessor::Load
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: "void CheckNormalizer(absl::string_view filename, bool expected_has_normalizer,\n
      \                    bool expected_has_denormalizer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:56,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:56,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:57,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:57,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:59,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:59,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:60,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:63,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:65,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:66,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:67,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:70,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:72,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:72,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:73,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:76,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:78,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:78,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:79,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:82,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:84,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:84,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:85,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:88,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:90,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:90,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:91,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:97,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:97,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:98,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 103
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckVocab
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainFromArgsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:109,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:111,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:114,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:121,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:121,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:122,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:122,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:126,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:127,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:127,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:129,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:129,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:132,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:132,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:133,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:136,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:137,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:139,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:139,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:142,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:143,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:146,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:147,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:148,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:150,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 152
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::util::JoinPath
    - size
    - CHECK_OK
    - auto::status
    - std::vector::emplace_back
    - ASSERT_TRUE
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::SentencePieceTrainer::Train
    - std::move
    - absl::StrCat
    - sentencepiece::CheckNormalizer
    - sentencepiece::CheckVocab
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainFromIterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: sentencepiece::VectorIterator::VectorIterator
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void VectorIterator(std::vector<std::string>&& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: sentencepiece::VectorIterator::done
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool done() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: sentencepiece::VectorIterator::Next
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: '& value() const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: sentencepiece::VectorIterator::status
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:155,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:155,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:156,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:156,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:157,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:157,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:159,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:159,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:160,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckNormalizer
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainWithCustomNormalizationRule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:169,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:169,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:170,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:170,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:172,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:172,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:174,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:174,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:175,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:176,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:177,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 184
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckNormalizer
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainWithCustomDenormalizationRule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NormalizerSpec::set_normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:189,1
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:190,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:191,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::SentencePieceTrainer::Train
    - NormalizerSpec::set_precompiled_charsmap
    - NormalizerSpec::set_normalization_rule_tsv
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainErrorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:196,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:196,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:196,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:197,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:197,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:197,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:198,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:200,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:200,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:201,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - ::testing::SrcDir
    - ::testing::TempDir
    - TrainerSpec::add_input
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:208,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:209,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:211,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:213,1
    - Dst: TrainerSpec::vocab_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:213,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:214,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:215,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:217,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:219,1
    - Dst: TrainerSpec::input_format
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:219,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:220,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:222,1
    - Dst: TrainerSpec::input_format
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:222,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:224,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:224,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:227,1
    - Dst: TrainerSpec::split_by_whitespace
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:227,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:228,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:229,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:231,1
    - Dst: TrainerSpec::split_by_whitespace
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:231,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:233,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:234,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:236,1
    - Dst: TrainerSpec::character_coverage
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:236,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:237,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:238,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:241,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:242,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:244,1
    - Dst: TrainerSpec::input_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:244,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:245,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:246,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:247,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:247,1
    - Dst: TrainerSpec::Clear
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:250,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:251,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:252,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:254,1
    - Dst: TrainerSpec::input_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:255,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:256,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:256,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:258,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:259,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:260,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:261,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:266,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:267,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:269,1
    - Dst: NormalizerSpec::add_dummy_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:269,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:271,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:271,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:274,1
    - Dst: NormalizerSpec::escape_whitespaces
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:276,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 279
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::Clear
    - TrainerSpec::character_coverage
    - ASSERT_TRUE
    - TrainerSpec::input
    - NormalizerSpec::escape_whitespaces
    - EXPECT_TRUE
    - EXPECT_EQ
    - TrainerSpec::vocab_size
    - TrainerSpec::split_by_whitespace
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - EXPECT_FALSE
    - NormalizerSpec::add_dummy_prefix
    - TrainerSpec::input_format
    - TrainerSpec::input_size
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, SetProtoFieldTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:285,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:286,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:289,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:289,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:293,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:294,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:298,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:298,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:303,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:303,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:308,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:308,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:313,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:313,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:318,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:318,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:322,1
    - Dst: NormalizerSpec::name
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:322,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:324,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:324,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:328,1
    - Dst: NormalizerSpec::normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:328,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:330,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:330,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:334,1
    - Dst: NormalizerSpec::normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:334,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:336,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 340
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - NormalizerSpec::name
    - ASSERT_TRUE
    - EXPECT_EQ
    - NormalizerSpec::normalization_rule_tsv
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, MergeSpecsFromArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:344,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:346,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:346,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:347,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:348,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:349,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:349,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:350,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:351,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:352,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:352,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:353,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:354,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:355,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:355,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:356,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 358
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
    - EXPECT_FALSE
    - TrainerSpec::model_type
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, PopulateModelTypeFromStringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:361,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:361,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:362,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:365,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:365,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:365,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:366,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:367,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:368,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:368,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:374,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:375,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:375,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:380,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:382,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:382,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:385,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:385,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:388,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:388,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:389,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:390,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:391,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:391,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:393,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:393,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:394,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:395,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:396,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:396,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:401,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:401,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:402,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:406,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:406,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:411,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:411,1
    - Dst: mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:412,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:413,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:413,1
    - Dst: mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:414,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:415,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:415,1
    - Dst: mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:417,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:422,1
    - Dst: SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:422,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:423,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:424,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:424,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:429,1
    - Dst: SentencePieceNormalizer::LoadFromRuleTSV
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:430,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:430,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:430,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:431,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:432,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:432,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:437,1
    - Dst: SentencePieceNormalizer::LoadFromRuleTSV
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:437,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:442,1
    - Dst: SentencePieceNormalizer::LoadFromRuleName
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:442,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:443,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:444,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:444,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:449,1
    - Dst: SentencePieceNormalizer::LoadFromRuleName
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:449,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:450,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:451,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:451,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:456,1
    - Dst: SentencePieceNormalizer::LoadFromRuleName
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 458
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrCat
    - ::testing::TempDir
    - SentencePieceProcessor::Load
    - EXPECT_FALSE
    - TrainerSpec::set_model_prefix
    - sentencepiece::SentencePieceTrainer::Train
    - ::testing::SrcDir
    - TrainerSpec::add_input
    - EXPECT_EQ
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - mutable_normalizer_spec
    - SentencePieceNormalizer::LoadFromRuleName
    - TrainerSpec::set_vocab_size
    - SentencePieceNormalizer::LoadFromRuleTSV
    - SentencePieceNormalizer::Normalize
    - std::vector<size_t>
    - ASSERT_TRUE
    - static_cast<char>
    - SentencePieceNormalizer::Load
    - set_normalization_only
    - SentencePieceProcessor::Normalize
    - sentencepiece::ConvertToUnicodeAlignment
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, NormalizationTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:467,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:467,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:469,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:469,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:470,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:471,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:471,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:472,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:473,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:473,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:476,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:477,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:477,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:478,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:478,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:479,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:479,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:482,1
    - Dst: SentencePieceNormalizer::Decompile
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:482,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:484,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:484,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:486,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:487,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:488,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:493,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:493,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:494,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:494,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:495,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:495,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:496,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:496,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:497,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 498
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceNormalizer::Normalize
    - SentencePieceNormalizer::Decompile
    - std::vector::size
    - EXPECT_EQ
    - SentencePieceNormalizer::mutable_normalizer_spec
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - EXPECT_FALSE
    - SentencePieceNormalizer::LoadFromMap
    - ASSERT_EQ
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, NormalizerMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:503,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:503,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:504,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:504,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:505,1
    - Dst: SentencePieceNormalizer::serialized_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:507,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:516,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:520,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:520,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:521,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:521,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:522,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:522,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:523,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:523,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:524,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:524,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:525,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:525,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:527,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 528
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - train_with_kwargs
    - SentencePieceNormalizer::serialized_normalizer_spec
    - SentencePieceNormalizer::mutable_normalizer_spec
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - EXPECT_FALSE
    - SentencePieceNormalizer::LoadFromMap
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, NormalizerConflictTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:531,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:531,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:533,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:533,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:538,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:541,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:541,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:542,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 547
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckVocab
    - absl::StrSplit
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainWithTrainerComponentsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:550,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:550,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:552,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:552,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:562,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:562,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:563,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:571,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:571,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 576
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - EXPECT_FALSE
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, InconsistentPretokenizerTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:579,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:579,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:580,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:580,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:585,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:589,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:589,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 595
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - absl::StrSplit
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, PretokenizerAndDelimiterMutuallyExclusiveTest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:598,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:598,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:599,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:599,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:612,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:613,1
    - Dst: std::string::clear
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:614,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:616,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:616,1
    - Dst: std::string::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:618,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:621,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:622,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:627,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:627,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:628,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:633,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:633,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:634,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 635
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - std::vector::push_back
    - ::testing::TempDir
    - std::string::empty
    - std::string::clear
    - std::string::push_back
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - std::string
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, ComplexPretokenizerTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:37,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:37,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:38,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:39,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:39,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - filename
    - expected_vocab_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: sentencepiece::CheckVocab
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 3
    functionsReached:
    - ASSERT_TRUE
    - SentencePieceProcessor::model_proto
    - EXPECT_EQ
    - SentencePieceProcessor::Load
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: void CheckVocab(absl::string_view filename, int expected_vocab_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:46,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:46,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:46,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:47,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:49,1
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:51,1
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - filename
    - expected_has_normalizer
    - expected_has_denormalizer
    argTypes:
    - absl::string_view
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: sentencepiece::CheckNormalizer
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 3
    functionsReached:
    - ASSERT_TRUE
    - SentencePieceProcessor::model_proto
    - EXPECT_EQ
    - precompiled_charsmap
    - SentencePieceProcessor::Load
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: "void CheckNormalizer(absl::string_view filename, bool expected_has_normalizer,\n
      \                    bool expected_has_denormalizer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:56,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:56,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:57,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:57,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:59,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:59,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:60,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:63,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:65,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:66,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:67,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:70,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:72,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:72,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:73,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:76,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:78,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:78,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:79,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:82,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:84,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:84,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:85,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:88,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:90,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:90,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:91,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:97,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:97,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:98,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 103
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckVocab
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainFromArgsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:109,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:111,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:114,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:121,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:121,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:122,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:122,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:126,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:127,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:127,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:129,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:129,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:132,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:132,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:133,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:136,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:137,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:139,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:139,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:142,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:143,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:146,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:147,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:148,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:150,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 152
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::util::JoinPath
    - size
    - CHECK_OK
    - auto::status
    - std::vector::emplace_back
    - ASSERT_TRUE
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::SentencePieceTrainer::Train
    - std::move
    - absl::StrCat
    - sentencepiece::CheckNormalizer
    - sentencepiece::CheckVocab
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainFromIterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: sentencepiece::VectorIterator::VectorIterator
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void VectorIterator(std::vector<std::string>&& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: sentencepiece::VectorIterator::done
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool done() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: sentencepiece::VectorIterator::Next
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: '& value() const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: sentencepiece::VectorIterator::status
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:155,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:155,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:156,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:156,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:157,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:157,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:159,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:159,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:160,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckNormalizer
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainWithCustomNormalizationRule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:169,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:169,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:170,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:170,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:172,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:172,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:174,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:174,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:175,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:176,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:177,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 184
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckNormalizer
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainWithCustomDenormalizationRule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NormalizerSpec::set_normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:189,1
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:190,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:191,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::SentencePieceTrainer::Train
    - NormalizerSpec::set_precompiled_charsmap
    - NormalizerSpec::set_normalization_rule_tsv
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainErrorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:196,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:196,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:196,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:197,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:197,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:197,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:198,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:200,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:200,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:201,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - ::testing::SrcDir
    - ::testing::TempDir
    - TrainerSpec::add_input
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:208,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:209,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:211,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:213,1
    - Dst: TrainerSpec::vocab_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:213,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:214,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:215,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:217,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:219,1
    - Dst: TrainerSpec::input_format
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:219,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:220,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:222,1
    - Dst: TrainerSpec::input_format
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:222,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:224,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:224,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:227,1
    - Dst: TrainerSpec::split_by_whitespace
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:227,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:228,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:229,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:231,1
    - Dst: TrainerSpec::split_by_whitespace
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:231,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:233,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:234,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:236,1
    - Dst: TrainerSpec::character_coverage
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:236,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:237,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:238,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:241,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:242,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:244,1
    - Dst: TrainerSpec::input_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:244,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:245,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:246,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:247,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:247,1
    - Dst: TrainerSpec::Clear
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:250,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:251,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:252,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:254,1
    - Dst: TrainerSpec::input_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:255,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:256,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:256,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:258,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:259,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:260,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:261,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:266,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:267,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:269,1
    - Dst: NormalizerSpec::add_dummy_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:269,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:271,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:271,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:274,1
    - Dst: NormalizerSpec::escape_whitespaces
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:276,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 279
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::Clear
    - TrainerSpec::character_coverage
    - ASSERT_TRUE
    - TrainerSpec::input
    - NormalizerSpec::escape_whitespaces
    - EXPECT_TRUE
    - EXPECT_EQ
    - TrainerSpec::vocab_size
    - TrainerSpec::split_by_whitespace
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - EXPECT_FALSE
    - NormalizerSpec::add_dummy_prefix
    - TrainerSpec::input_format
    - TrainerSpec::input_size
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, SetProtoFieldTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:285,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:286,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:289,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:289,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:293,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:294,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:298,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:298,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:303,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:303,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:308,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:308,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:313,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:313,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:318,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:318,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:322,1
    - Dst: NormalizerSpec::name
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:322,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:324,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:324,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:328,1
    - Dst: NormalizerSpec::normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:328,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:330,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:330,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:334,1
    - Dst: NormalizerSpec::normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:334,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:336,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 340
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - NormalizerSpec::name
    - ASSERT_TRUE
    - EXPECT_EQ
    - NormalizerSpec::normalization_rule_tsv
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, MergeSpecsFromArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:344,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:346,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:346,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:347,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:348,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:349,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:349,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:350,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:351,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:352,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:352,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:353,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:354,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:355,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:355,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:356,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 358
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
    - EXPECT_FALSE
    - TrainerSpec::model_type
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, PopulateModelTypeFromStringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:361,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:361,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:362,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:365,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:365,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:365,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:366,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:367,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:368,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:368,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:374,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:375,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:375,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:380,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:382,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:382,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:385,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:385,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:388,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:388,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:389,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:390,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:391,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:391,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:393,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:393,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:394,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:395,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:396,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:396,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:401,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:401,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:402,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:406,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:406,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:411,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:411,1
    - Dst: mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:412,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:413,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:413,1
    - Dst: mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:414,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:415,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:415,1
    - Dst: mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:417,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:422,1
    - Dst: SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:422,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:423,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:424,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:424,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:429,1
    - Dst: SentencePieceNormalizer::LoadFromRuleTSV
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:430,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:430,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:430,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:431,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:432,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:432,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:437,1
    - Dst: SentencePieceNormalizer::LoadFromRuleTSV
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:437,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:442,1
    - Dst: SentencePieceNormalizer::LoadFromRuleName
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:442,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:443,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:444,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:444,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:449,1
    - Dst: SentencePieceNormalizer::LoadFromRuleName
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:449,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:450,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:451,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:451,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:456,1
    - Dst: SentencePieceNormalizer::LoadFromRuleName
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 458
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrCat
    - ::testing::TempDir
    - SentencePieceProcessor::Load
    - EXPECT_FALSE
    - TrainerSpec::set_model_prefix
    - sentencepiece::SentencePieceTrainer::Train
    - ::testing::SrcDir
    - TrainerSpec::add_input
    - EXPECT_EQ
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - mutable_normalizer_spec
    - SentencePieceNormalizer::LoadFromRuleName
    - TrainerSpec::set_vocab_size
    - SentencePieceNormalizer::LoadFromRuleTSV
    - SentencePieceNormalizer::Normalize
    - std::vector<size_t>
    - ASSERT_TRUE
    - static_cast<char>
    - SentencePieceNormalizer::Load
    - set_normalization_only
    - SentencePieceProcessor::Normalize
    - sentencepiece::ConvertToUnicodeAlignment
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, NormalizationTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:467,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:467,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:469,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:469,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:470,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:471,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:471,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:472,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:473,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:473,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:476,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:477,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:477,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:478,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:478,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:479,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:479,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:482,1
    - Dst: SentencePieceNormalizer::Decompile
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:482,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:484,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:484,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:486,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:487,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:488,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:493,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:493,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:494,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:494,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:495,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:495,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:496,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:496,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:497,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 498
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceNormalizer::Normalize
    - SentencePieceNormalizer::Decompile
    - std::vector::size
    - EXPECT_EQ
    - SentencePieceNormalizer::mutable_normalizer_spec
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - EXPECT_FALSE
    - SentencePieceNormalizer::LoadFromMap
    - ASSERT_EQ
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, NormalizerMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:503,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:503,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:504,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:504,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:505,1
    - Dst: SentencePieceNormalizer::serialized_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:507,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:516,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:520,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:520,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:521,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:521,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:522,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:522,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:523,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:523,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:524,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:524,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:525,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:525,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:527,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 528
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - train_with_kwargs
    - SentencePieceNormalizer::serialized_normalizer_spec
    - SentencePieceNormalizer::mutable_normalizer_spec
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - EXPECT_FALSE
    - SentencePieceNormalizer::LoadFromMap
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, NormalizerConflictTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:531,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:531,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:533,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:533,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:538,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:541,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:541,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:542,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 547
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckVocab
    - absl::StrSplit
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainWithTrainerComponentsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:550,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:550,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:552,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:552,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:562,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:562,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:563,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:571,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:571,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 576
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - EXPECT_FALSE
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, InconsistentPretokenizerTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:579,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:579,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:580,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:580,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:585,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:589,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:589,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 595
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - absl::StrSplit
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, PretokenizerAndDelimiterMutuallyExclusiveTest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:598,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:598,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:599,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:599,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:612,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:613,1
    - Dst: std::string::clear
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:614,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:616,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:616,1
    - Dst: std::string::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:618,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:621,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:622,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:627,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:627,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:628,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:633,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:633,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:634,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 635
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - std::vector::push_back
    - ::testing::TempDir
    - std::string::empty
    - std::string::clear
    - std::string::push_back
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - std::string
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, ComplexPretokenizerTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:37,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:37,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:38,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:39,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:39,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - filename
    - expected_vocab_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: sentencepiece::CheckVocab
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 6
    functionsReached:
    - ASSERT_TRUE
    - SentencePieceProcessor::model_proto
    - EXPECT_EQ
    - SentencePieceProcessor::Load
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: void CheckVocab(absl::string_view filename, int expected_vocab_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:46,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:46,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:46,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:47,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:49,1
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:51,1
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - filename
    - expected_has_normalizer
    - expected_has_denormalizer
    argTypes:
    - absl::string_view
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: sentencepiece::CheckNormalizer
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 6
    functionsReached:
    - ASSERT_TRUE
    - SentencePieceProcessor::model_proto
    - EXPECT_EQ
    - precompiled_charsmap
    - SentencePieceProcessor::Load
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: "void CheckNormalizer(absl::string_view filename, bool expected_has_normalizer,\n
      \                    bool expected_has_denormalizer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:56,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:56,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:57,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:57,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:59,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:59,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:60,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:63,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:65,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:66,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:67,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:70,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:72,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:72,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:73,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:76,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:78,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:78,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:79,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:82,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:84,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:84,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:85,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:88,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:90,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:90,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:91,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:97,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:97,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:98,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 103
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckVocab
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainFromArgsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:109,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:111,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:114,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:121,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:121,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:122,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:122,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:126,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:127,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:127,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:129,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:129,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:132,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:132,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:133,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:136,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:137,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:139,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:139,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:142,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:143,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:146,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:147,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:148,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:150,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 152
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::util::JoinPath
    - size
    - CHECK_OK
    - auto::status
    - std::vector::emplace_back
    - ASSERT_TRUE
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::SentencePieceTrainer::Train
    - std::move
    - absl::StrCat
    - sentencepiece::CheckNormalizer
    - sentencepiece::CheckVocab
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainFromIterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: sentencepiece::VectorIterator::VectorIterator
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void VectorIterator(std::vector<std::string>&& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: sentencepiece::VectorIterator::done
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool done() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: sentencepiece::VectorIterator::Next
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: '& value() const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: sentencepiece::VectorIterator::status
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:155,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:155,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:156,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:156,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:157,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:157,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:159,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:159,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:160,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckNormalizer
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainWithCustomNormalizationRule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:169,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:169,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:170,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:170,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:172,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:172,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:174,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:174,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:175,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:176,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:177,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 184
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckNormalizer
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainWithCustomDenormalizationRule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NormalizerSpec::set_normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:189,1
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:190,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:191,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::SentencePieceTrainer::Train
    - NormalizerSpec::set_precompiled_charsmap
    - NormalizerSpec::set_normalization_rule_tsv
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainErrorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:196,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:196,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:196,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:197,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:197,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:197,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:198,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:200,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:200,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:201,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - ::testing::SrcDir
    - ::testing::TempDir
    - TrainerSpec::add_input
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:208,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:209,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:211,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:213,1
    - Dst: TrainerSpec::vocab_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:213,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:214,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:215,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:217,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:219,1
    - Dst: TrainerSpec::input_format
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:219,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:220,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:222,1
    - Dst: TrainerSpec::input_format
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:222,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:224,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:224,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:227,1
    - Dst: TrainerSpec::split_by_whitespace
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:227,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:228,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:229,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:231,1
    - Dst: TrainerSpec::split_by_whitespace
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:231,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:233,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:234,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:236,1
    - Dst: TrainerSpec::character_coverage
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:236,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:237,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:238,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:241,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:242,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:244,1
    - Dst: TrainerSpec::input_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:244,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:245,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:246,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:247,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:247,1
    - Dst: TrainerSpec::Clear
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:250,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:251,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:252,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:254,1
    - Dst: TrainerSpec::input_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:255,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:256,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:256,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:258,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:259,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:260,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:261,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:266,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:267,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:269,1
    - Dst: NormalizerSpec::add_dummy_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:269,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:271,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:271,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:274,1
    - Dst: NormalizerSpec::escape_whitespaces
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:276,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 279
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::Clear
    - TrainerSpec::character_coverage
    - ASSERT_TRUE
    - TrainerSpec::input
    - NormalizerSpec::escape_whitespaces
    - EXPECT_TRUE
    - EXPECT_EQ
    - TrainerSpec::vocab_size
    - TrainerSpec::split_by_whitespace
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - EXPECT_FALSE
    - NormalizerSpec::add_dummy_prefix
    - TrainerSpec::input_format
    - TrainerSpec::input_size
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, SetProtoFieldTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:285,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:286,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:289,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:289,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:293,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:294,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:298,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:298,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:303,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:303,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:308,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:308,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:313,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:313,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:318,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:318,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:322,1
    - Dst: NormalizerSpec::name
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:322,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:324,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:324,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:328,1
    - Dst: NormalizerSpec::normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:328,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:330,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:330,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:334,1
    - Dst: NormalizerSpec::normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:334,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:336,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 340
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - NormalizerSpec::name
    - ASSERT_TRUE
    - EXPECT_EQ
    - NormalizerSpec::normalization_rule_tsv
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, MergeSpecsFromArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:344,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:346,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:346,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:347,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:348,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:349,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:349,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:350,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:351,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:352,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:352,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:353,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:354,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:355,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:355,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:356,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 358
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
    - EXPECT_FALSE
    - TrainerSpec::model_type
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, PopulateModelTypeFromStringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:361,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:361,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:362,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:365,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:365,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:365,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:366,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:367,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:368,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:368,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:374,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:375,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:375,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:380,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:382,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:382,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:385,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:385,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:388,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:388,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:389,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:390,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:391,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:391,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:393,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:393,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:394,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:395,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:396,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:396,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:401,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:401,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:402,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:406,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:406,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:411,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:411,1
    - Dst: mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:412,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:413,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:413,1
    - Dst: mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:414,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:415,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:415,1
    - Dst: mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:417,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:422,1
    - Dst: SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:422,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:423,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:424,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:424,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:429,1
    - Dst: SentencePieceNormalizer::LoadFromRuleTSV
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:430,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:430,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:430,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:431,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:432,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:432,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:437,1
    - Dst: SentencePieceNormalizer::LoadFromRuleTSV
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:437,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:442,1
    - Dst: SentencePieceNormalizer::LoadFromRuleName
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:442,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:443,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:444,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:444,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:449,1
    - Dst: SentencePieceNormalizer::LoadFromRuleName
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:449,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:450,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:451,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:451,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:456,1
    - Dst: SentencePieceNormalizer::LoadFromRuleName
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 458
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrCat
    - ::testing::TempDir
    - SentencePieceProcessor::Load
    - EXPECT_FALSE
    - TrainerSpec::set_model_prefix
    - sentencepiece::SentencePieceTrainer::Train
    - ::testing::SrcDir
    - TrainerSpec::add_input
    - EXPECT_EQ
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - mutable_normalizer_spec
    - SentencePieceNormalizer::LoadFromRuleName
    - TrainerSpec::set_vocab_size
    - SentencePieceNormalizer::LoadFromRuleTSV
    - SentencePieceNormalizer::Normalize
    - std::vector<size_t>
    - ASSERT_TRUE
    - static_cast<char>
    - SentencePieceNormalizer::Load
    - set_normalization_only
    - SentencePieceProcessor::Normalize
    - sentencepiece::ConvertToUnicodeAlignment
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, NormalizationTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:467,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:467,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:469,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:469,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:470,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:471,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:471,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:472,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:473,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:473,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:476,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:477,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:477,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:478,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:478,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:479,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:479,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:482,1
    - Dst: SentencePieceNormalizer::Decompile
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:482,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:484,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:484,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:486,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:487,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:488,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:493,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:493,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:494,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:494,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:495,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:495,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:496,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:496,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:497,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 498
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceNormalizer::Normalize
    - SentencePieceNormalizer::Decompile
    - std::vector::size
    - EXPECT_EQ
    - SentencePieceNormalizer::mutable_normalizer_spec
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - EXPECT_FALSE
    - SentencePieceNormalizer::LoadFromMap
    - ASSERT_EQ
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, NormalizerMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:503,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:503,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:504,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:504,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:505,1
    - Dst: SentencePieceNormalizer::serialized_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:507,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:516,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:520,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:520,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:521,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:521,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:522,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:522,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:523,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:523,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:524,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:524,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:525,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:525,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:527,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 528
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - train_with_kwargs
    - SentencePieceNormalizer::serialized_normalizer_spec
    - SentencePieceNormalizer::mutable_normalizer_spec
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - EXPECT_FALSE
    - SentencePieceNormalizer::LoadFromMap
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, NormalizerConflictTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:531,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:531,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:533,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:533,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:538,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:541,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:541,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:542,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 547
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckVocab
    - absl::StrSplit
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainWithTrainerComponentsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:550,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:550,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:552,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:552,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:562,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:562,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:563,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:571,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:571,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 576
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - EXPECT_FALSE
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, InconsistentPretokenizerTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:579,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:579,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:580,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:580,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:585,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:589,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:589,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 595
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - absl::StrSplit
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, PretokenizerAndDelimiterMutuallyExclusiveTest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:598,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:598,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:599,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:599,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:612,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:613,1
    - Dst: std::string::clear
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:614,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:616,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:616,1
    - Dst: std::string::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:618,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:621,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:622,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:627,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:627,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:628,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:633,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:633,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:634,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 635
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - std::vector::push_back
    - ::testing::TempDir
    - std::string::empty
    - std::string::clear
    - std::string::push_back
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - std::string
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, ComplexPretokenizerTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:37,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:37,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:38,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:39,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:39,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - filename
    - expected_vocab_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: sentencepiece::CheckVocab
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 9
    functionsReached:
    - ASSERT_TRUE
    - SentencePieceProcessor::model_proto
    - EXPECT_EQ
    - SentencePieceProcessor::Load
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: void CheckVocab(absl::string_view filename, int expected_vocab_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:46,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:46,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:46,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:47,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:49,1
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:51,1
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - filename
    - expected_has_normalizer
    - expected_has_denormalizer
    argTypes:
    - absl::string_view
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: sentencepiece::CheckNormalizer
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 9
    functionsReached:
    - ASSERT_TRUE
    - SentencePieceProcessor::model_proto
    - EXPECT_EQ
    - precompiled_charsmap
    - SentencePieceProcessor::Load
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: "void CheckNormalizer(absl::string_view filename, bool expected_has_normalizer,\n
      \                    bool expected_has_denormalizer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:56,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:56,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:57,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:57,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:59,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:59,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:60,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:63,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:65,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:66,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:67,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:70,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:72,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:72,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:73,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:76,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:78,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:78,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:79,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:82,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:84,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:84,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:85,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:88,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:90,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:90,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:91,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:97,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:97,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:98,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 103
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckVocab
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainFromArgsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:109,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:111,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:114,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:121,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:121,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:122,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:122,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:126,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:127,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:127,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:129,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:129,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:132,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:132,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:133,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:136,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:137,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:139,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:139,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:142,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:143,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:146,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:147,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:148,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:150,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 152
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::util::JoinPath
    - size
    - CHECK_OK
    - auto::status
    - std::vector::emplace_back
    - ASSERT_TRUE
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::SentencePieceTrainer::Train
    - std::move
    - absl::StrCat
    - sentencepiece::CheckNormalizer
    - sentencepiece::CheckVocab
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainFromIterator)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: sentencepiece::VectorIterator::VectorIterator
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void VectorIterator(std::vector<std::string>&& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: sentencepiece::VectorIterator::done
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool done() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: sentencepiece::VectorIterator::Next
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: '& value() const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: sentencepiece::VectorIterator::status
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:155,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:155,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:156,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:156,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:157,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:157,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:159,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:159,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:160,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 165
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckNormalizer
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainWithCustomNormalizationRule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:169,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:169,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:170,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:170,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:172,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:172,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:174,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:174,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:175,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:176,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:177,1
    - Dst: sentencepiece::CheckNormalizer
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 184
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckNormalizer
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainWithCustomDenormalizationRule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NormalizerSpec::set_normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:189,1
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:190,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:191,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 192
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::SentencePieceTrainer::Train
    - NormalizerSpec::set_precompiled_charsmap
    - NormalizerSpec::set_normalization_rule_tsv
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainErrorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:196,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:196,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:196,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:197,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:197,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:197,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:198,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:200,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:200,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:201,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 202
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - ::testing::SrcDir
    - ::testing::TempDir
    - TrainerSpec::add_input
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:208,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:209,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:211,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:213,1
    - Dst: TrainerSpec::vocab_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:213,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:214,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:215,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:217,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:219,1
    - Dst: TrainerSpec::input_format
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:219,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:220,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:222,1
    - Dst: TrainerSpec::input_format
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:222,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:224,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:224,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:227,1
    - Dst: TrainerSpec::split_by_whitespace
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:227,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:228,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:229,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:231,1
    - Dst: TrainerSpec::split_by_whitespace
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:231,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:233,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:234,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:236,1
    - Dst: TrainerSpec::character_coverage
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:236,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:237,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:238,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:241,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:242,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:244,1
    - Dst: TrainerSpec::input_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:244,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:245,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:246,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:247,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:247,1
    - Dst: TrainerSpec::Clear
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:250,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:251,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:252,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:254,1
    - Dst: TrainerSpec::input_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:254,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:255,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:256,1
    - Dst: TrainerSpec::input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:256,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:258,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:259,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:260,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:261,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:266,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:267,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:269,1
    - Dst: NormalizerSpec::add_dummy_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:269,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:271,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:271,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:274,1
    - Dst: NormalizerSpec::escape_whitespaces
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:276,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 279
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::Clear
    - TrainerSpec::character_coverage
    - ASSERT_TRUE
    - TrainerSpec::input
    - NormalizerSpec::escape_whitespaces
    - EXPECT_TRUE
    - EXPECT_EQ
    - TrainerSpec::vocab_size
    - TrainerSpec::split_by_whitespace
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - EXPECT_FALSE
    - NormalizerSpec::add_dummy_prefix
    - TrainerSpec::input_format
    - TrainerSpec::input_size
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, SetProtoFieldTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:285,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:286,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:289,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:289,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:293,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:294,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:298,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:298,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:303,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:303,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:308,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:308,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:313,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:313,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:318,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:318,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:322,1
    - Dst: NormalizerSpec::name
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:322,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:324,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:324,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:328,1
    - Dst: NormalizerSpec::normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:328,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:330,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:330,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:334,1
    - Dst: NormalizerSpec::normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:334,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:336,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 340
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - NormalizerSpec::name
    - ASSERT_TRUE
    - EXPECT_EQ
    - NormalizerSpec::normalization_rule_tsv
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, MergeSpecsFromArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:344,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:346,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:346,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:347,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:348,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:349,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:349,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:350,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:351,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:352,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:352,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:353,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:354,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:355,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:355,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:356,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 358
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
    - EXPECT_FALSE
    - TrainerSpec::model_type
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, PopulateModelTypeFromStringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:361,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:361,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:362,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:365,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:365,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:365,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:366,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:367,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:368,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:368,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:374,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:375,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:375,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:380,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:382,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:382,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:385,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:385,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:388,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:388,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:389,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:390,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:391,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:391,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:393,1
    - Dst: SentencePieceProcessor::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:393,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:394,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:395,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:396,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:396,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:401,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:401,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:402,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:405,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:406,1
    - Dst: std::vector<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:406,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:411,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:411,1
    - Dst: mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:412,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:413,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:413,1
    - Dst: mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:414,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:415,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:415,1
    - Dst: mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:417,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:422,1
    - Dst: SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:422,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:423,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:424,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:424,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:429,1
    - Dst: SentencePieceNormalizer::LoadFromRuleTSV
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:430,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:430,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:430,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:431,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:432,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:432,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:437,1
    - Dst: SentencePieceNormalizer::LoadFromRuleTSV
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:437,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:442,1
    - Dst: SentencePieceNormalizer::LoadFromRuleName
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:442,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:443,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:444,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:444,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:449,1
    - Dst: SentencePieceNormalizer::LoadFromRuleName
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:449,1
    - Dst: set_normalization_only
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:450,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:451,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:451,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:456,1
    - Dst: SentencePieceNormalizer::LoadFromRuleName
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:456,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 458
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrCat
    - ::testing::TempDir
    - SentencePieceProcessor::Load
    - EXPECT_FALSE
    - TrainerSpec::set_model_prefix
    - sentencepiece::SentencePieceTrainer::Train
    - ::testing::SrcDir
    - TrainerSpec::add_input
    - EXPECT_EQ
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - mutable_normalizer_spec
    - SentencePieceNormalizer::LoadFromRuleName
    - TrainerSpec::set_vocab_size
    - SentencePieceNormalizer::LoadFromRuleTSV
    - SentencePieceNormalizer::Normalize
    - std::vector<size_t>
    - ASSERT_TRUE
    - static_cast<char>
    - SentencePieceNormalizer::Load
    - set_normalization_only
    - SentencePieceProcessor::Normalize
    - sentencepiece::ConvertToUnicodeAlignment
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, NormalizationTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:467,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:467,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:469,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:469,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:470,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:471,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:471,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:472,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:473,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:473,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:476,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:477,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:477,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:478,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:478,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:479,1
    - Dst: SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:479,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:482,1
    - Dst: SentencePieceNormalizer::Decompile
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:482,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:484,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:484,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:486,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:487,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:488,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:493,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:493,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:494,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:494,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:495,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:495,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:496,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:496,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:497,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 498
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - SentencePieceNormalizer::Normalize
    - SentencePieceNormalizer::Decompile
    - std::vector::size
    - EXPECT_EQ
    - SentencePieceNormalizer::mutable_normalizer_spec
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - EXPECT_FALSE
    - SentencePieceNormalizer::LoadFromMap
    - ASSERT_EQ
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, NormalizerMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:503,1
    - Dst: SentencePieceNormalizer::LoadFromMap
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:503,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:504,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:504,1
    - Dst: SentencePieceNormalizer::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:505,1
    - Dst: SentencePieceNormalizer::serialized_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:507,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:516,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:520,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:520,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:521,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:521,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:522,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:522,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:523,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:523,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:524,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:524,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:525,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:525,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:527,1
    - Dst: train_with_kwargs
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:527,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 528
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - train_with_kwargs
    - SentencePieceNormalizer::serialized_normalizer_spec
    - SentencePieceNormalizer::mutable_normalizer_spec
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - EXPECT_FALSE
    - SentencePieceNormalizer::LoadFromMap
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, NormalizerConflictTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:531,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:531,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:533,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:533,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:538,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:541,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:541,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:542,1
    - Dst: sentencepiece::CheckVocab
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 547
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - sentencepiece::CheckVocab
    - absl::StrSplit
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, TrainWithTrainerComponentsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:550,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:550,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:552,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:552,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:562,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:562,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:563,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:571,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:571,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 576
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - EXPECT_FALSE
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, InconsistentPretokenizerTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:579,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:579,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:580,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:580,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:585,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:589,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:589,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 578
    functionDepth: 1
    functionLinenumber: 578
    functionLinenumberEnd: 595
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - absl::StrSplit
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, PretokenizerAndDelimiterMutuallyExclusiveTest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:598,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:598,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:599,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:599,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:612,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:613,1
    - Dst: std::string::clear
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:614,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:616,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:616,1
    - Dst: std::string::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:618,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:621,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:622,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:627,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:627,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:628,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:633,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:633,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:634,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/sentencepiece_trainer_test.cc:634,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 635
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - std::vector::push_back
    - ::testing::TempDir
    - std::string::empty
    - std::string::clear
    - std::string::push_back
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - std::string
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, ComplexPretokenizerTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::Model::SampleEncode
      Src: /src/sentencepiece/src/bpe_model.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: sentencepiece::bpe::Model::Encode
    functionSourceFile: /src/sentencepiece/src/bpe_model.h
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::Model::SampleEncode
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: sentencepiece::bpe::Model::IsSampleEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/bpe_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSampleEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: sentencepiece::bpe::Model::IsNBestEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/bpe_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNBestEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::Model::SampleEncode
      Src: /src/sentencepiece/src/bpe_model.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: sentencepiece::bpe::Model::Encode
    functionSourceFile: /src/sentencepiece/src/bpe_model.h
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::Model::SampleEncode
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: sentencepiece::bpe::Model::IsSampleEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/bpe_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSampleEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: sentencepiece::bpe::Model::IsNBestEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/bpe_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNBestEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::Model::SampleEncode
      Src: /src/sentencepiece/src/bpe_model.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: sentencepiece::bpe::Model::Encode
    functionSourceFile: /src/sentencepiece/src/bpe_model.h
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::Model::SampleEncode
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: sentencepiece::bpe::Model::IsSampleEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/bpe_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSampleEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: sentencepiece::bpe::Model::IsNBestEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/bpe_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNBestEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::Model::SampleEncode
      Src: /src/sentencepiece/src/bpe_model.h:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: sentencepiece::bpe::Model::Encode
    functionSourceFile: /src/sentencepiece/src/bpe_model.h
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::Model::SampleEncode
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: sentencepiece::bpe::Model::IsSampleEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/bpe_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSampleEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: sentencepiece::bpe::Model::IsNBestEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/bpe_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNBestEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: WPATH
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPATH(path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - path
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: WPATH
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WPATH(path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/filesystem.cc:38,1
    - Dst: open
      Src: /src/sentencepiece/src/filesystem.cc:41,1
    - Dst: WPATH
      Src: /src/sentencepiece/src/filesystem.cc:41,1
    - Dst: peek
      Src: /src/sentencepiece/src/filesystem.cc:45,1
    - Dst: fail
      Src: /src/sentencepiece/src/filesystem.cc:45,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/filesystem.cc:46,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/filesystem.cc:47,1
    - Dst: sentencepiece::util::StrError
      Src: /src/sentencepiece/src/filesystem.cc:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: sentencepiece::filesystem::PosixReadableFile::PosixReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - fail
    - open
    - peek
    - absl::string_view::empty
    - sentencepiece::util::StrError
    - absl::StatusBuilder
    - WPATH
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: "void PosixReadableFile(absl::string_view filename,\n                             bool
      is_binary = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: ~PosixReadableFile() override
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PosixReadableFile() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: sentencepiece::filesystem::PosixReadableFile::status
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/sentencepiece/src/filesystem.cc:56,1
    - Dst: std::getline
      Src: /src/sentencepiece/src/filesystem.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: sentencepiece::filesystem::PosixReadableFile::ReadLine
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    - std::getline
    linkageType: ''
    returnType: bool
    signature: bool ReadLine(std::string* line) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/filesystem.cc:61,1
    - Dst: std::string*::assign
      Src: /src/sentencepiece/src/filesystem.cc:64,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/sentencepiece/src/filesystem.cc:64,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/sentencepiece/src/filesystem.cc:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: sentencepiece::filesystem::PosixReadableFile::ReadAll
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - std::istreambuf_iterator<char>
    - std::string*::assign
    - LOG
    linkageType: ''
    returnType: bool
    signature: bool ReadAll(std::string* line) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/filesystem.cc:79,1
    - Dst: open
      Src: /src/sentencepiece/src/filesystem.cc:82,1
    - Dst: WPATH
      Src: /src/sentencepiece/src/filesystem.cc:82,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/filesystem.cc:87,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/filesystem.cc:88,1
    - Dst: sentencepiece::util::StrError
      Src: /src/sentencepiece/src/filesystem.cc:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: sentencepiece::filesystem::PosixWritableFile::PosixWritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - open
    - absl::string_view::empty
    - sentencepiece::util::StrError
    - absl::StatusBuilder
    - WPATH
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: "void PosixWritableFile(absl::string_view filename,\n                             bool
      is_binary = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~PosixWritableFile() override
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PosixWritableFile() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: sentencepiece::filesystem::PosixWritableFile::status
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/sentencepiece/src/filesystem.cc:97,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/filesystem.cc:97,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/filesystem.cc:97,1
    - Dst: good
      Src: /src/sentencepiece/src/filesystem.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: sentencepiece::filesystem::PosixWritableFile::Write
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - good
    - absl::string_view::size
    - write
    linkageType: ''
    returnType: bool
    signature: bool Write(absl::string_view text) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::PosixWritableFile::Write
      Src: /src/sentencepiece/src/filesystem.cc:102,1
    - Dst: sentencepiece::filesystem::PosixWritableFile::Write
      Src: /src/sentencepiece/src/filesystem.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: sentencepiece::filesystem::PosixWritableFile::WriteLine
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::filesystem::PosixWritableFile::Write
    linkageType: ''
    returnType: bool
    signature: bool WriteLine(absl::string_view text) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DefaultReadableFile>
      Src: /src/sentencepiece/src/filesystem.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - is_binary
    argTypes:
    - absl::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: sentencepiece::filesystem::NewReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 14
    functionsReached:
    - std::make_unique<DefaultReadableFile>
    linkageType: ''
    returnType: std::unique_ptr<ReadableFile>
    signature: "std::unique_ptr<ReadableFile> NewReadableFile(absl::string_view filename,\n
      \                                             bool is_binary)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DefaultWritableFile>
      Src: /src/sentencepiece/src/filesystem.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - is_binary
    argTypes:
    - absl::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: sentencepiece::filesystem::NewWritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 19
    functionsReached:
    - std::make_unique<DefaultWritableFile>
    linkageType: ''
    returnType: std::unique_ptr<WritableFile>
    signature: "std::unique_ptr<WritableFile> NewWritableFile(absl::string_view filename,\n
      \                                             bool is_binary)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/filesystem.cc:38,1
    - Dst: open
      Src: /src/sentencepiece/src/filesystem.cc:41,1
    - Dst: WPATH
      Src: /src/sentencepiece/src/filesystem.cc:41,1
    - Dst: peek
      Src: /src/sentencepiece/src/filesystem.cc:45,1
    - Dst: fail
      Src: /src/sentencepiece/src/filesystem.cc:45,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/filesystem.cc:46,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/filesystem.cc:47,1
    - Dst: sentencepiece::util::StrError
      Src: /src/sentencepiece/src/filesystem.cc:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: sentencepiece::filesystem::PosixReadableFile::PosixReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - fail
    - open
    - peek
    - absl::string_view::empty
    - sentencepiece::util::StrError
    - absl::StatusBuilder
    - WPATH
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: "void PosixReadableFile(absl::string_view filename,\n                             bool
      is_binary = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: ~PosixReadableFile() override
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PosixReadableFile() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: sentencepiece::filesystem::PosixReadableFile::status
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/sentencepiece/src/filesystem.cc:56,1
    - Dst: std::getline
      Src: /src/sentencepiece/src/filesystem.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: sentencepiece::filesystem::PosixReadableFile::ReadLine
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    - std::getline
    linkageType: ''
    returnType: bool
    signature: bool ReadLine(std::string* line) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/filesystem.cc:61,1
    - Dst: std::string*::assign
      Src: /src/sentencepiece/src/filesystem.cc:64,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/sentencepiece/src/filesystem.cc:64,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/sentencepiece/src/filesystem.cc:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: sentencepiece::filesystem::PosixReadableFile::ReadAll
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - std::istreambuf_iterator<char>
    - std::string*::assign
    - LOG
    linkageType: ''
    returnType: bool
    signature: bool ReadAll(std::string* line) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/filesystem.cc:79,1
    - Dst: open
      Src: /src/sentencepiece/src/filesystem.cc:82,1
    - Dst: WPATH
      Src: /src/sentencepiece/src/filesystem.cc:82,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/filesystem.cc:87,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/filesystem.cc:88,1
    - Dst: sentencepiece::util::StrError
      Src: /src/sentencepiece/src/filesystem.cc:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: sentencepiece::filesystem::PosixWritableFile::PosixWritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - open
    - absl::string_view::empty
    - sentencepiece::util::StrError
    - absl::StatusBuilder
    - WPATH
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: "void PosixWritableFile(absl::string_view filename,\n                             bool
      is_binary = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~PosixWritableFile() override
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PosixWritableFile() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: sentencepiece::filesystem::PosixWritableFile::status
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/sentencepiece/src/filesystem.cc:97,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/filesystem.cc:97,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/filesystem.cc:97,1
    - Dst: good
      Src: /src/sentencepiece/src/filesystem.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: sentencepiece::filesystem::PosixWritableFile::Write
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 1
    functionsReached:
    - absl::string_view::data
    - good
    - absl::string_view::size
    - write
    linkageType: ''
    returnType: bool
    signature: bool Write(absl::string_view text) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::PosixWritableFile::Write
      Src: /src/sentencepiece/src/filesystem.cc:102,1
    - Dst: sentencepiece::filesystem::PosixWritableFile::Write
      Src: /src/sentencepiece/src/filesystem.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: sentencepiece::filesystem::PosixWritableFile::WriteLine
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::filesystem::PosixWritableFile::Write
    linkageType: ''
    returnType: bool
    signature: bool WriteLine(absl::string_view text) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DefaultReadableFile>
      Src: /src/sentencepiece/src/filesystem.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - is_binary
    argTypes:
    - absl::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: sentencepiece::filesystem::NewReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 14
    functionsReached:
    - std::make_unique<DefaultReadableFile>
    linkageType: ''
    returnType: std::unique_ptr<ReadableFile>
    signature: "std::unique_ptr<ReadableFile> NewReadableFile(absl::string_view filename,\n
      \                                             bool is_binary)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DefaultWritableFile>
      Src: /src/sentencepiece/src/filesystem.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - is_binary
    argTypes:
    - absl::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: sentencepiece::filesystem::NewWritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 19
    functionsReached:
    - std::make_unique<DefaultWritableFile>
    linkageType: ''
    returnType: std::unique_ptr<WritableFile>
    signature: "std::unique_ptr<WritableFile> NewWritableFile(absl::string_view filename,\n
      \                                             bool is_binary)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/filesystem.cc:38,1
    - Dst: open
      Src: /src/sentencepiece/src/filesystem.cc:41,1
    - Dst: WPATH
      Src: /src/sentencepiece/src/filesystem.cc:41,1
    - Dst: peek
      Src: /src/sentencepiece/src/filesystem.cc:45,1
    - Dst: fail
      Src: /src/sentencepiece/src/filesystem.cc:45,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/filesystem.cc:46,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/filesystem.cc:47,1
    - Dst: sentencepiece::util::StrError
      Src: /src/sentencepiece/src/filesystem.cc:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: sentencepiece::filesystem::PosixReadableFile::PosixReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - fail
    - open
    - peek
    - absl::string_view::empty
    - sentencepiece::util::StrError
    - absl::StatusBuilder
    - WPATH
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: "void PosixReadableFile(absl::string_view filename,\n                             bool
      is_binary = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: ~PosixReadableFile() override
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PosixReadableFile() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: sentencepiece::filesystem::PosixReadableFile::status
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/sentencepiece/src/filesystem.cc:56,1
    - Dst: std::getline
      Src: /src/sentencepiece/src/filesystem.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: sentencepiece::filesystem::PosixReadableFile::ReadLine
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    - std::getline
    linkageType: ''
    returnType: bool
    signature: bool ReadLine(std::string* line) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/filesystem.cc:61,1
    - Dst: std::string*::assign
      Src: /src/sentencepiece/src/filesystem.cc:64,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/sentencepiece/src/filesystem.cc:64,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/sentencepiece/src/filesystem.cc:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: sentencepiece::filesystem::PosixReadableFile::ReadAll
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - std::istreambuf_iterator<char>
    - std::string*::assign
    - LOG
    linkageType: ''
    returnType: bool
    signature: bool ReadAll(std::string* line) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/filesystem.cc:79,1
    - Dst: open
      Src: /src/sentencepiece/src/filesystem.cc:82,1
    - Dst: WPATH
      Src: /src/sentencepiece/src/filesystem.cc:82,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/filesystem.cc:87,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/filesystem.cc:88,1
    - Dst: sentencepiece::util::StrError
      Src: /src/sentencepiece/src/filesystem.cc:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: sentencepiece::filesystem::PosixWritableFile::PosixWritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - open
    - absl::string_view::empty
    - sentencepiece::util::StrError
    - absl::StatusBuilder
    - WPATH
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: "void PosixWritableFile(absl::string_view filename,\n                             bool
      is_binary = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~PosixWritableFile() override
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PosixWritableFile() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: sentencepiece::filesystem::PosixWritableFile::status
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/sentencepiece/src/filesystem.cc:97,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/filesystem.cc:97,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/filesystem.cc:97,1
    - Dst: good
      Src: /src/sentencepiece/src/filesystem.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: sentencepiece::filesystem::PosixWritableFile::Write
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 2
    functionsReached:
    - absl::string_view::data
    - good
    - absl::string_view::size
    - write
    linkageType: ''
    returnType: bool
    signature: bool Write(absl::string_view text) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::PosixWritableFile::Write
      Src: /src/sentencepiece/src/filesystem.cc:102,1
    - Dst: sentencepiece::filesystem::PosixWritableFile::Write
      Src: /src/sentencepiece/src/filesystem.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: sentencepiece::filesystem::PosixWritableFile::WriteLine
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::filesystem::PosixWritableFile::Write
    linkageType: ''
    returnType: bool
    signature: bool WriteLine(absl::string_view text) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DefaultReadableFile>
      Src: /src/sentencepiece/src/filesystem.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - is_binary
    argTypes:
    - absl::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: sentencepiece::filesystem::NewReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 14
    functionsReached:
    - std::make_unique<DefaultReadableFile>
    linkageType: ''
    returnType: std::unique_ptr<ReadableFile>
    signature: "std::unique_ptr<ReadableFile> NewReadableFile(absl::string_view filename,\n
      \                                             bool is_binary)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DefaultWritableFile>
      Src: /src/sentencepiece/src/filesystem.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - is_binary
    argTypes:
    - absl::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: sentencepiece::filesystem::NewWritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 19
    functionsReached:
    - std::make_unique<DefaultWritableFile>
    linkageType: ''
    returnType: std::unique_ptr<WritableFile>
    signature: "std::unique_ptr<WritableFile> NewWritableFile(absl::string_view filename,\n
      \                                             bool is_binary)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/filesystem.cc:38,1
    - Dst: open
      Src: /src/sentencepiece/src/filesystem.cc:41,1
    - Dst: WPATH
      Src: /src/sentencepiece/src/filesystem.cc:41,1
    - Dst: peek
      Src: /src/sentencepiece/src/filesystem.cc:45,1
    - Dst: fail
      Src: /src/sentencepiece/src/filesystem.cc:45,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/filesystem.cc:46,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/filesystem.cc:47,1
    - Dst: sentencepiece::util::StrError
      Src: /src/sentencepiece/src/filesystem.cc:47,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: sentencepiece::filesystem::PosixReadableFile::PosixReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - fail
    - open
    - peek
    - absl::string_view::empty
    - sentencepiece::util::StrError
    - absl::StatusBuilder
    - WPATH
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: "void PosixReadableFile(absl::string_view filename,\n                             bool
      is_binary = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: ~PosixReadableFile() override
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PosixReadableFile() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: sentencepiece::filesystem::PosixReadableFile::status
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<bool>
      Src: /src/sentencepiece/src/filesystem.cc:56,1
    - Dst: std::getline
      Src: /src/sentencepiece/src/filesystem.cc:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: sentencepiece::filesystem::PosixReadableFile::ReadLine
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - static_cast<bool>
    - std::getline
    linkageType: ''
    returnType: bool
    signature: bool ReadLine(std::string* line) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/filesystem.cc:61,1
    - Dst: std::string*::assign
      Src: /src/sentencepiece/src/filesystem.cc:64,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/sentencepiece/src/filesystem.cc:64,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/sentencepiece/src/filesystem.cc:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - line
    argTypes:
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: sentencepiece::filesystem::PosixReadableFile::ReadAll
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - std::istreambuf_iterator<char>
    - std::string*::assign
    - LOG
    linkageType: ''
    returnType: bool
    signature: bool ReadAll(std::string* line) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/filesystem.cc:79,1
    - Dst: open
      Src: /src/sentencepiece/src/filesystem.cc:82,1
    - Dst: WPATH
      Src: /src/sentencepiece/src/filesystem.cc:82,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/filesystem.cc:87,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/filesystem.cc:88,1
    - Dst: sentencepiece::util::StrError
      Src: /src/sentencepiece/src/filesystem.cc:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: sentencepiece::filesystem::PosixWritableFile::PosixWritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - open
    - absl::string_view::empty
    - sentencepiece::util::StrError
    - absl::StatusBuilder
    - WPATH
    - absl::string_view::data
    linkageType: ''
    returnType: void
    signature: "void PosixWritableFile(absl::string_view filename,\n                             bool
      is_binary = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~PosixWritableFile() override
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PosixWritableFile() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: sentencepiece::filesystem::PosixWritableFile::status
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/sentencepiece/src/filesystem.cc:97,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/filesystem.cc:97,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/filesystem.cc:97,1
    - Dst: good
      Src: /src/sentencepiece/src/filesystem.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: sentencepiece::filesystem::PosixWritableFile::Write
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 3
    functionsReached:
    - absl::string_view::data
    - good
    - absl::string_view::size
    - write
    linkageType: ''
    returnType: bool
    signature: bool Write(absl::string_view text) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::PosixWritableFile::Write
      Src: /src/sentencepiece/src/filesystem.cc:102,1
    - Dst: sentencepiece::filesystem::PosixWritableFile::Write
      Src: /src/sentencepiece/src/filesystem.cc:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - text
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: sentencepiece::filesystem::PosixWritableFile::WriteLine
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::filesystem::PosixWritableFile::Write
    linkageType: ''
    returnType: bool
    signature: bool WriteLine(absl::string_view text) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DefaultReadableFile>
      Src: /src/sentencepiece/src/filesystem.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - is_binary
    argTypes:
    - absl::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: sentencepiece::filesystem::NewReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 14
    functionsReached:
    - std::make_unique<DefaultReadableFile>
    linkageType: ''
    returnType: std::unique_ptr<ReadableFile>
    signature: "std::unique_ptr<ReadableFile> NewReadableFile(absl::string_view filename,\n
      \                                             bool is_binary)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DefaultWritableFile>
      Src: /src/sentencepiece/src/filesystem.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename
    - is_binary
    argTypes:
    - absl::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: sentencepiece::filesystem::NewWritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.cc
    functionUses: 19
    functionsReached:
    - std::make_unique<DefaultWritableFile>
    linkageType: ''
    returnType: std::unique_ptr<WritableFile>
    signature: "std::unique_ptr<WritableFile> NewWritableFile(absl::string_view filename,\n
      \                                             bool is_binary)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/trainer_interface_test.cc:33,1
    - Dst: string_util::UnicodeText::empty
      Src: /src/sentencepiece/src/trainer_interface_test.cc:34,1
    - Dst: string_util::UnicodeText::begin
      Src: /src/sentencepiece/src/trainer_interface_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: sentencepiece::ToChar32
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - string_util::UnicodeText::begin
    - string_util::UnicodeText::empty
    linkageType: ''
    returnType: char32_t
    signature: char32_t ToChar32(absl::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/trainer_interface_test.cc:41,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/trainer_interface_test.cc:42,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:46,1
    - Dst: TrainerInterface::Train
      Src: /src/sentencepiece/src/trainer_interface_test.cc:46,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/trainer_interface_test.cc:51,1
    - Dst: TrainerInterface::IsValidSentencePiece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:52,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:55,1
    - Dst: TrainerInterface::IsValidSentencePiece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:55,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:56,1
    - Dst: TrainerInterface::IsValidSentencePiece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:56,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:57,1
    - Dst: TrainerInterface::IsValidSentencePiece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:57,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:58,1
    - Dst: TrainerInterface::IsValidSentencePiece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:58,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:61,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:61,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:62,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:62,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:63,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:64,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:64,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:65,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:65,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:66,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:66,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:67,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:67,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:68,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:68,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:69,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:69,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:70,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:70,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:71,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:71,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:72,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:72,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:73,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:73,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:74,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:74,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:75,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:76,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:76,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:77,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:77,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:78,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:78,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:79,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:80,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:82,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:82,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:83,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:83,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:84,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:84,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:85,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:85,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:87,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:87,1
    - Dst: TrainerSpec::set_split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface_test.cc:90,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:91,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:91,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:93,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:93,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:94,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:94,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:95,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:96,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:96,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:97,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:97,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:98,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:98,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:99,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:99,1
    - Dst: TrainerSpec::set_allow_whitespace_only_pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:103,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:104,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:104,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:108,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:108,1
    - Dst: TrainerSpec::set_allow_whitespace_only_pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:110,1
    - Dst: TrainerSpec::set_split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface_test.cc:111,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:112,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:112,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:113,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:114,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:114,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:115,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:115,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:116,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:116,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:117,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:117,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:118,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:118,1
    - Dst: TrainerSpec::set_split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface_test.cc:120,1
    - Dst: TrainerSpec::set_split_by_number
      Src: /src/sentencepiece/src/trainer_interface_test.cc:121,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:122,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:122,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:123,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:123,1
    - Dst: TrainerSpec::set_split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface_test.cc:125,1
    - Dst: TrainerSpec::set_split_by_number
      Src: /src/sentencepiece/src/trainer_interface_test.cc:126,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:127,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:127,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:128,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:128,1
    - Dst: TrainerSpec::set_split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface_test.cc:130,1
    - Dst: TrainerSpec::set_split_by_number
      Src: /src/sentencepiece/src/trainer_interface_test.cc:131,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:132,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:132,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:133,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:133,1
    - Dst: TrainerSpec::set_split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface_test.cc:135,1
    - Dst: TrainerSpec::set_split_by_number
      Src: /src/sentencepiece/src/trainer_interface_test.cc:136,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:137,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:137,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:138,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:138,1
    - Dst: TrainerSpec::set_max_sentencepiece_length
      Src: /src/sentencepiece/src/trainer_interface_test.cc:140,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:141,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:141,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:142,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:142,1
    - Dst: TrainerSpec::set_max_sentencepiece_length
      Src: /src/sentencepiece/src/trainer_interface_test.cc:144,1
    - Dst: TrainerSpec::set_split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface_test.cc:145,1
    - Dst: TrainerSpec::set_split_by_number
      Src: /src/sentencepiece/src/trainer_interface_test.cc:146,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:147,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:147,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:148,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:148,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:149,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:149,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:150,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:150,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:151,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:151,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:152,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:152,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:153,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:153,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:154,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:154,1
    - Dst: TrainerSpec::set_split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface_test.cc:156,1
    - Dst: TrainerSpec::set_treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/trainer_interface_test.cc:157,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:158,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:158,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:159,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:159,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:160,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:160,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:161,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:161,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:162,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:162,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:163,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:163,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:164,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:164,1
    - Dst: TrainerSpec::set_allow_whitespace_only_pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:166,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:167,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:167,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:169,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:169,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:170,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:170,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:171,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:171,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:172,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:172,1
    - Dst: TrainerSpec::set_allow_whitespace_only_pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:174,1
    - Dst: TrainerSpec::set_split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface_test.cc:175,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:176,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:176,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:177,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:177,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:178,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:178,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:179,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:179,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:180,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:180,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:181,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:182,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:182,1
    - Dst: TrainerSpec::set_split_digits
      Src: /src/sentencepiece/src/trainer_interface_test.cc:184,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:185,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:185,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:186,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:186,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:187,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:187,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:188,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:188,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:189,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:189,1
    - Dst: TrainerSpec::set_split_digits
      Src: /src/sentencepiece/src/trainer_interface_test.cc:191,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:192,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:192,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:193,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:193,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:194,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:194,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:195,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:195,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:196,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:196,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:198,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:198,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:199,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:199,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:200,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:200,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:201,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:201,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:202,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 126
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 203
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - TrainerSpec::set_treat_whitespace_as_suffix
    - TrainerSpec::set_split_digits
    - TrainerSpec::set_split_by_number
    - IsValid
    - TrainerInterface::IsValidSentencePiece
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - TrainerSpec::set_max_sentencepiece_length
    - TrainerSpec::set_split_by_unicode_script
    - TrainerInterface::Train
    - TrainerSpec::set_split_by_whitespace
    - EXPECT_FALSE
    - TrainerSpec::set_allow_whitespace_only_pieces
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, IsValidSentencePieceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/trainer_interface_test.cc:209,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/trainer_interface_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:215,1
    - Dst: auto::unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:215,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:216,1
    - Dst: auto::bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:217,1
    - Dst: auto::eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:218,1
    - Dst: auto::pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:218,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:222,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:223,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:224,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:228,1
    - Dst: TrainerInterface::meta_pieces_::size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:229,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:232,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:237,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:238,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:239,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:243,1
    - Dst: TrainerInterface::meta_pieces_::size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:243,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:244,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:247,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:252,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:253,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:254,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:258,1
    - Dst: TrainerInterface::meta_pieces_::size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:258,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:260,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:265,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:266,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:267,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:268,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:271,1
    - Dst: TrainerInterface::meta_pieces_::size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:271,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:272,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:277,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:278,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:279,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:280,1
    - Dst: auto::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:282,1
    - Dst: auto::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:283,1
    - Dst: auto::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:284,1
    - Dst: auto::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:285,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:288,1
    - Dst: TrainerInterface::meta_pieces_::size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:289,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:290,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:292,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:295,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:300,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:301,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:302,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:304,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:304,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:310,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:311,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:312,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:314,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:314,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:320,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:321,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:322,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:324,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:324,1
    - Dst: auto::set_vocab_size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:329,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:330,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:331,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:332,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:334,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:334,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:340,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:341,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:342,1
    - Dst: auto::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:343,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:345,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:345,1
    - Dst: auto::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:351,1
    - Dst: auto::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:352,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:354,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:354,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:359,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:360,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:361,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:362,1
    - Dst: auto::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:366,1
    - Dst: auto::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:367,1
    - Dst: auto::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:368,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:370,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:372,1
    - Dst: TrainerInterface::meta_pieces_::size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:373,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:375,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:376,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:379,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:383,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:385,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:387,1
    - Dst: auto::set_unk_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:393,1
    - Dst: auto::set_bos_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:394,1
    - Dst: auto::set_eos_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:395,1
    - Dst: auto::set_pad_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:396,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:397,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:399,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:399,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:401,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:402,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:403,1
    - Dst: auto::set_unk_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:408,1
    - Dst: auto::set_bos_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:409,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:411,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:411,1
    - Dst: auto::set_unk_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:416,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:418,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 128
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 420
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - auto::pad_id
    - EXPECT_TRUE
    - auto::set_unk_id
    - EXPECT_FALSE
    - auto::set_pad_id
    - TrainerSpec::set_model_prefix
    - auto::eos_id
    - TrainerSpec::add_input
    - auto::unk_id
    - EXPECT_EQ
    - auto::set_eos_id
    - auto::set_vocab_size
    - TrainerInterface::status
    - auto::bos_id
    - auto::add_user_defined_symbols
    - auto::add_control_symbols
    - TrainerInterface::meta_pieces_::size
    - auto::set_bos_piece
    - auto::set_eos_piece
    - auto::set_pad_piece
    - auto::set_unk_piece
    - auto::set_bos_id
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, OverrideSpecialPiecesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/trainer_interface_test.cc:426,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/trainer_interface_test.cc:427,1
    - Dst: TrainerSpec::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:429,1
    - Dst: TrainerSpec::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:430,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:431,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:432,1
    - Dst: TrainerSpec::set_byte_fallback
      Src: /src/sentencepiece/src/trainer_interface_test.cc:434,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:437,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:437,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:442,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/trainer_interface_test.cc:442,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 445
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - TrainerInterface::status
    - TrainerSpec::set_model_prefix
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - TrainerSpec::add_control_symbols
    - EXPECT_EQ
    - absl::StrFormat
    - TrainerSpec::set_byte_fallback
    - TrainerSpec::add_user_defined_symbols
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, BytePiecesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/trainer_interface_test.cc:451,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/trainer_interface_test.cc:452,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:454,1
    - Dst: TrainerSpec::hard_vocab_limit
      Src: /src/sentencepiece/src/trainer_interface_test.cc:454,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:460,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:464,1
    - Dst: TrainerInterface::Serialize
      Src: /src/sentencepiece/src/trainer_interface_test.cc:464,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:468,1
    - Dst: TrainerSpec::set_hard_vocab_limit
      Src: /src/sentencepiece/src/trainer_interface_test.cc:469,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:473,1
    - Dst: TrainerInterface::Serialize
      Src: /src/sentencepiece/src/trainer_interface_test.cc:473,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:474,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/trainer_interface_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:476,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:477,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:477,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:482,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/trainer_interface_test.cc:483,1
    - Dst: TrainerSpec::set_hard_vocab_limit
      Src: /src/sentencepiece/src/trainer_interface_test.cc:484,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:488,1
    - Dst: TrainerInterface::Serialize
      Src: /src/sentencepiece/src/trainer_interface_test.cc:488,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:489,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/trainer_interface_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:491,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:492,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 495
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::set_vocab_size
    - TrainerSpec::set_hard_vocab_limit
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::trainer_spec
    - TrainerSpec::set_model_type
    - TrainerSpec::hard_vocab_limit
    - ModelProto::pieces
    - TrainerInterface::Serialize
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, SerializeTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/trainer_interface_test.cc:498,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/trainer_interface_test.cc:498,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/trainer_interface_test.cc:500,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/trainer_interface_test.cc:513,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/trainer_interface_test.cc:518,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/trainer_interface_test.cc:519,1
    - Dst: TrainerSpec::set_character_coverage
      Src: /src/sentencepiece/src/trainer_interface_test.cc:520,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/trainer_interface_test.cc:525,1
    - Dst: TrainerInterface::LoadSentences
      Src: /src/sentencepiece/src/trainer_interface_test.cc:525,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:528,1
    - Dst: E
      Src: /src/sentencepiece/src/trainer_interface_test.cc:529,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:529,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:529,1
    - Dst: TrainerSpec::set_required_chars
      Src: /src/sentencepiece/src/trainer_interface_test.cc:532,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/trainer_interface_test.cc:534,1
    - Dst: TrainerInterface::LoadSentences
      Src: /src/sentencepiece/src/trainer_interface_test.cc:534,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:536,1
    - Dst: E
      Src: /src/sentencepiece/src/trainer_interface_test.cc:536,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:536,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:537,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:538,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:539,1
    - Dst: TrainerSpec::set_required_chars
      Src: /src/sentencepiece/src/trainer_interface_test.cc:542,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/trainer_interface_test.cc:544,1
    - Dst: TrainerInterface::LoadSentences
      Src: /src/sentencepiece/src/trainer_interface_test.cc:544,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:546,1
    - Dst: E
      Src: /src/sentencepiece/src/trainer_interface_test.cc:547,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:547,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:547,1
    - Dst: TrainerSpec::set_required_chars
      Src: /src/sentencepiece/src/trainer_interface_test.cc:550,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/trainer_interface_test.cc:552,1
    - Dst: TrainerInterface::LoadSentences
      Src: /src/sentencepiece/src/trainer_interface_test.cc:552,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:554,1
    - Dst: E
      Src: /src/sentencepiece/src/trainer_interface_test.cc:556,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:556,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:556,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 558
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - TrainerInterface::LoadSentences
    - TrainerSpec::set_character_coverage
    - EXPECT_OK
    - ::testing::TempDir
    - sentencepiece::ToChar32
    - TrainerSpec::add_input
    - EXPECT_EQ
    - auto::WriteLine
    - TrainerSpec::set_required_chars
    - E
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, CharactersTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/trainer_interface_test.cc:565,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/trainer_interface_test.cc:565,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface_test.cc:565,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/trainer_interface_test.cc:566,1
    - Dst: rand
      Src: /src/sentencepiece/src/trainer_interface_test.cc:567,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface_test.cc:569,1
    - Dst: rand
      Src: /src/sentencepiece/src/trainer_interface_test.cc:569,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/trainer_interface_test.cc:570,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/trainer_interface_test.cc:571,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/trainer_interface_test.cc:573,1
    - Dst: MultiFileSentenceIterator::done
      Src: /src/sentencepiece/src/trainer_interface_test.cc:578,1
    - Dst: MultiFileSentenceIterator::Next
      Src: /src/sentencepiece/src/trainer_interface_test.cc:578,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/trainer_interface_test.cc:578,1
    - Dst: MultiFileSentenceIterator::value
      Src: /src/sentencepiece/src/trainer_interface_test.cc:578,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/trainer_interface_test.cc:579,1
    - Dst: MultiFileSentenceIterator::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:579,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 581
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - MultiFileSentenceIterator::status
    - MultiFileSentenceIterator::value
    - std::vector::emplace_back
    - absl::StrCat
    - MultiFileSentenceIterator::Next
    - rand
    - ::testing::TempDir
    - std::vector::push_back
    - MultiFileSentenceIterator::done
    - EXPECT_EQ
    - auto::WriteLine
    - sentencepiece::filesystem::NewWritableFile
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, MultiFileSentenceIteratorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/trainer_interface_test.cc:586,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/trainer_interface_test.cc:586,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface_test.cc:587,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/trainer_interface_test.cc:588,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:592,1
    - Dst: MultiFileSentenceIterator::done
      Src: /src/sentencepiece/src/trainer_interface_test.cc:592,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:593,1
    - Dst: MultiFileSentenceIterator::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 594
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - MultiFileSentenceIterator::status
    - absl::StrCat
    - std::vector::push_back
    - ::testing::TempDir
    - MultiFileSentenceIterator::done
    - EXPECT_TRUE
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, MultiFileSentenceIteratorErrorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/trainer_interface_test.cc:33,1
    - Dst: string_util::UnicodeText::empty
      Src: /src/sentencepiece/src/trainer_interface_test.cc:34,1
    - Dst: string_util::UnicodeText::begin
      Src: /src/sentencepiece/src/trainer_interface_test.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: sentencepiece::ToChar32
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - string_util::UnicodeText::begin
    - string_util::UnicodeText::empty
    linkageType: ''
    returnType: char32_t
    signature: char32_t ToChar32(absl::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/trainer_interface_test.cc:41,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/trainer_interface_test.cc:42,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:46,1
    - Dst: TrainerInterface::Train
      Src: /src/sentencepiece/src/trainer_interface_test.cc:46,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/trainer_interface_test.cc:51,1
    - Dst: TrainerInterface::IsValidSentencePiece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:52,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:55,1
    - Dst: TrainerInterface::IsValidSentencePiece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:55,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:56,1
    - Dst: TrainerInterface::IsValidSentencePiece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:56,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:57,1
    - Dst: TrainerInterface::IsValidSentencePiece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:57,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:58,1
    - Dst: TrainerInterface::IsValidSentencePiece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:58,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:61,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:61,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:62,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:62,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:63,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:63,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:64,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:64,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:65,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:65,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:66,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:66,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:67,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:67,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:68,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:68,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:69,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:69,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:70,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:70,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:71,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:71,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:72,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:72,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:73,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:73,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:74,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:74,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:75,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:75,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:76,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:76,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:77,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:77,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:78,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:78,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:79,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:80,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:82,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:82,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:83,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:83,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:84,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:84,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:85,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:85,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:87,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:87,1
    - Dst: TrainerSpec::set_split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface_test.cc:90,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:91,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:91,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:93,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:93,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:94,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:94,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:95,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:96,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:96,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:97,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:97,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:98,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:98,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:99,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:99,1
    - Dst: TrainerSpec::set_allow_whitespace_only_pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:103,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:104,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:104,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:108,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:108,1
    - Dst: TrainerSpec::set_allow_whitespace_only_pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:110,1
    - Dst: TrainerSpec::set_split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface_test.cc:111,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:112,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:112,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:113,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:114,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:114,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:115,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:115,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:116,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:116,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:117,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:117,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:118,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:118,1
    - Dst: TrainerSpec::set_split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface_test.cc:120,1
    - Dst: TrainerSpec::set_split_by_number
      Src: /src/sentencepiece/src/trainer_interface_test.cc:121,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:122,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:122,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:123,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:123,1
    - Dst: TrainerSpec::set_split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface_test.cc:125,1
    - Dst: TrainerSpec::set_split_by_number
      Src: /src/sentencepiece/src/trainer_interface_test.cc:126,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:127,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:127,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:128,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:128,1
    - Dst: TrainerSpec::set_split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface_test.cc:130,1
    - Dst: TrainerSpec::set_split_by_number
      Src: /src/sentencepiece/src/trainer_interface_test.cc:131,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:132,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:132,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:133,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:133,1
    - Dst: TrainerSpec::set_split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface_test.cc:135,1
    - Dst: TrainerSpec::set_split_by_number
      Src: /src/sentencepiece/src/trainer_interface_test.cc:136,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:137,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:137,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:138,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:138,1
    - Dst: TrainerSpec::set_max_sentencepiece_length
      Src: /src/sentencepiece/src/trainer_interface_test.cc:140,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:141,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:141,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:142,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:142,1
    - Dst: TrainerSpec::set_max_sentencepiece_length
      Src: /src/sentencepiece/src/trainer_interface_test.cc:144,1
    - Dst: TrainerSpec::set_split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface_test.cc:145,1
    - Dst: TrainerSpec::set_split_by_number
      Src: /src/sentencepiece/src/trainer_interface_test.cc:146,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:147,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:147,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:148,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:148,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:149,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:149,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:150,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:150,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:151,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:151,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:152,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:152,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:153,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:153,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:154,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:154,1
    - Dst: TrainerSpec::set_split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface_test.cc:156,1
    - Dst: TrainerSpec::set_treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/trainer_interface_test.cc:157,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:158,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:158,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:159,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:159,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:160,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:160,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:161,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:161,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:162,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:162,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:163,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:163,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:164,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:164,1
    - Dst: TrainerSpec::set_allow_whitespace_only_pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:166,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:167,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:167,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:169,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:169,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:170,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:170,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:171,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:171,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:172,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:172,1
    - Dst: TrainerSpec::set_allow_whitespace_only_pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:174,1
    - Dst: TrainerSpec::set_split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface_test.cc:175,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:176,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:176,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:177,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:177,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:178,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:178,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:179,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:179,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:180,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:180,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:181,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:182,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:182,1
    - Dst: TrainerSpec::set_split_digits
      Src: /src/sentencepiece/src/trainer_interface_test.cc:184,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:185,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:185,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:186,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:186,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:187,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:187,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:188,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:188,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:189,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:189,1
    - Dst: TrainerSpec::set_split_digits
      Src: /src/sentencepiece/src/trainer_interface_test.cc:191,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:192,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:192,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:193,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:193,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:194,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:194,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:195,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:195,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:196,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:196,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:198,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:198,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:199,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:199,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:200,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:200,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:201,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:201,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:202,1
    - Dst: IsValid
      Src: /src/sentencepiece/src/trainer_interface_test.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 126
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 203
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - TrainerSpec::set_treat_whitespace_as_suffix
    - TrainerSpec::set_split_digits
    - TrainerSpec::set_split_by_number
    - IsValid
    - TrainerInterface::IsValidSentencePiece
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - TrainerSpec::set_max_sentencepiece_length
    - TrainerSpec::set_split_by_unicode_script
    - TrainerInterface::Train
    - TrainerSpec::set_split_by_whitespace
    - EXPECT_FALSE
    - TrainerSpec::set_allow_whitespace_only_pieces
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, IsValidSentencePieceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/trainer_interface_test.cc:209,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/trainer_interface_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:215,1
    - Dst: auto::unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:215,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:216,1
    - Dst: auto::bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:216,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:217,1
    - Dst: auto::eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:218,1
    - Dst: auto::pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:218,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:222,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:223,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:224,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:228,1
    - Dst: TrainerInterface::meta_pieces_::size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:229,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:232,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:237,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:238,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:239,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:243,1
    - Dst: TrainerInterface::meta_pieces_::size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:243,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:244,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:245,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:246,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:247,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:252,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:253,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:254,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:255,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:258,1
    - Dst: TrainerInterface::meta_pieces_::size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:258,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:259,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:260,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:265,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:266,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:267,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:268,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:271,1
    - Dst: TrainerInterface::meta_pieces_::size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:271,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:272,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:277,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:278,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:279,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:280,1
    - Dst: auto::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:282,1
    - Dst: auto::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:283,1
    - Dst: auto::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:284,1
    - Dst: auto::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:285,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:288,1
    - Dst: TrainerInterface::meta_pieces_::size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:289,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:290,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:291,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:292,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:294,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:295,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:300,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:301,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:302,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:304,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:304,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:310,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:311,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:312,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:314,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:314,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:320,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:321,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:322,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:324,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:324,1
    - Dst: auto::set_vocab_size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:329,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:330,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:331,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:332,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:334,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:334,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:340,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:341,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:342,1
    - Dst: auto::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:343,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:345,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:345,1
    - Dst: auto::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:351,1
    - Dst: auto::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:352,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:354,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:354,1
    - Dst: auto::set_unk_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:359,1
    - Dst: auto::set_bos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:360,1
    - Dst: auto::set_eos_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:361,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:362,1
    - Dst: auto::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:366,1
    - Dst: auto::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:367,1
    - Dst: auto::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:368,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:370,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:372,1
    - Dst: TrainerInterface::meta_pieces_::size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:373,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:375,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:376,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:379,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:383,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:385,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:387,1
    - Dst: auto::set_unk_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:393,1
    - Dst: auto::set_bos_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:394,1
    - Dst: auto::set_eos_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:395,1
    - Dst: auto::set_pad_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:396,1
    - Dst: auto::set_pad_id
      Src: /src/sentencepiece/src/trainer_interface_test.cc:397,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:399,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:399,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:401,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:402,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:403,1
    - Dst: auto::set_unk_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:408,1
    - Dst: auto::set_bos_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:409,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:411,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:411,1
    - Dst: auto::set_unk_piece
      Src: /src/sentencepiece/src/trainer_interface_test.cc:416,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:418,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 128
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 420
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - auto::pad_id
    - EXPECT_TRUE
    - auto::set_unk_id
    - EXPECT_FALSE
    - auto::set_pad_id
    - TrainerSpec::set_model_prefix
    - auto::eos_id
    - TrainerSpec::add_input
    - auto::unk_id
    - EXPECT_EQ
    - auto::set_eos_id
    - auto::set_vocab_size
    - TrainerInterface::status
    - auto::bos_id
    - auto::add_user_defined_symbols
    - auto::add_control_symbols
    - TrainerInterface::meta_pieces_::size
    - auto::set_bos_piece
    - auto::set_eos_piece
    - auto::set_pad_piece
    - auto::set_unk_piece
    - auto::set_bos_id
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, OverrideSpecialPiecesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/trainer_interface_test.cc:426,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/trainer_interface_test.cc:427,1
    - Dst: TrainerSpec::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:429,1
    - Dst: TrainerSpec::add_control_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:430,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:431,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface_test.cc:432,1
    - Dst: TrainerSpec::set_byte_fallback
      Src: /src/sentencepiece/src/trainer_interface_test.cc:434,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:437,1
    - Dst: TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:437,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:442,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/trainer_interface_test.cc:442,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 445
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - TrainerInterface::status
    - TrainerSpec::set_model_prefix
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - TrainerSpec::add_control_symbols
    - EXPECT_EQ
    - absl::StrFormat
    - TrainerSpec::set_byte_fallback
    - TrainerSpec::add_user_defined_symbols
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, BytePiecesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/trainer_interface_test.cc:451,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/trainer_interface_test.cc:452,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:454,1
    - Dst: TrainerSpec::hard_vocab_limit
      Src: /src/sentencepiece/src/trainer_interface_test.cc:454,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:460,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:464,1
    - Dst: TrainerInterface::Serialize
      Src: /src/sentencepiece/src/trainer_interface_test.cc:464,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:468,1
    - Dst: TrainerSpec::set_hard_vocab_limit
      Src: /src/sentencepiece/src/trainer_interface_test.cc:469,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:473,1
    - Dst: TrainerInterface::Serialize
      Src: /src/sentencepiece/src/trainer_interface_test.cc:473,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:474,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/trainer_interface_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:476,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:477,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:477,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/trainer_interface_test.cc:482,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/trainer_interface_test.cc:483,1
    - Dst: TrainerSpec::set_hard_vocab_limit
      Src: /src/sentencepiece/src/trainer_interface_test.cc:484,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:488,1
    - Dst: TrainerInterface::Serialize
      Src: /src/sentencepiece/src/trainer_interface_test.cc:488,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:489,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/trainer_interface_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:491,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:492,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface_test.cc:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 495
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::set_vocab_size
    - TrainerSpec::set_hard_vocab_limit
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - EXPECT_FALSE
    - EXPECT_EQ
    - ModelProto::trainer_spec
    - TrainerSpec::set_model_type
    - TrainerSpec::hard_vocab_limit
    - ModelProto::pieces
    - TrainerInterface::Serialize
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, SerializeTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/trainer_interface_test.cc:498,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/trainer_interface_test.cc:498,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/trainer_interface_test.cc:500,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/trainer_interface_test.cc:513,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/trainer_interface_test.cc:518,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/trainer_interface_test.cc:519,1
    - Dst: TrainerSpec::set_character_coverage
      Src: /src/sentencepiece/src/trainer_interface_test.cc:520,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/trainer_interface_test.cc:525,1
    - Dst: TrainerInterface::LoadSentences
      Src: /src/sentencepiece/src/trainer_interface_test.cc:525,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:528,1
    - Dst: E
      Src: /src/sentencepiece/src/trainer_interface_test.cc:529,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:529,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:529,1
    - Dst: TrainerSpec::set_required_chars
      Src: /src/sentencepiece/src/trainer_interface_test.cc:532,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/trainer_interface_test.cc:534,1
    - Dst: TrainerInterface::LoadSentences
      Src: /src/sentencepiece/src/trainer_interface_test.cc:534,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:536,1
    - Dst: E
      Src: /src/sentencepiece/src/trainer_interface_test.cc:536,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:536,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:537,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:538,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:539,1
    - Dst: TrainerSpec::set_required_chars
      Src: /src/sentencepiece/src/trainer_interface_test.cc:542,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/trainer_interface_test.cc:544,1
    - Dst: TrainerInterface::LoadSentences
      Src: /src/sentencepiece/src/trainer_interface_test.cc:544,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:546,1
    - Dst: E
      Src: /src/sentencepiece/src/trainer_interface_test.cc:547,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:547,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:547,1
    - Dst: TrainerSpec::set_required_chars
      Src: /src/sentencepiece/src/trainer_interface_test.cc:550,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/trainer_interface_test.cc:552,1
    - Dst: TrainerInterface::LoadSentences
      Src: /src/sentencepiece/src/trainer_interface_test.cc:552,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:554,1
    - Dst: E
      Src: /src/sentencepiece/src/trainer_interface_test.cc:556,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:556,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:556,1
    - Dst: sentencepiece::ToChar32
      Src: /src/sentencepiece/src/trainer_interface_test.cc:556,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 497
    functionDepth: 2
    functionLinenumber: 497
    functionLinenumberEnd: 558
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - TrainerInterface::LoadSentences
    - TrainerSpec::set_character_coverage
    - EXPECT_OK
    - ::testing::TempDir
    - sentencepiece::ToChar32
    - TrainerSpec::add_input
    - EXPECT_EQ
    - auto::WriteLine
    - TrainerSpec::set_required_chars
    - E
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, CharactersTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/trainer_interface_test.cc:565,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/trainer_interface_test.cc:565,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface_test.cc:565,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/trainer_interface_test.cc:566,1
    - Dst: rand
      Src: /src/sentencepiece/src/trainer_interface_test.cc:567,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface_test.cc:569,1
    - Dst: rand
      Src: /src/sentencepiece/src/trainer_interface_test.cc:569,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/trainer_interface_test.cc:570,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/trainer_interface_test.cc:571,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/trainer_interface_test.cc:573,1
    - Dst: MultiFileSentenceIterator::done
      Src: /src/sentencepiece/src/trainer_interface_test.cc:578,1
    - Dst: MultiFileSentenceIterator::Next
      Src: /src/sentencepiece/src/trainer_interface_test.cc:578,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/trainer_interface_test.cc:578,1
    - Dst: MultiFileSentenceIterator::value
      Src: /src/sentencepiece/src/trainer_interface_test.cc:578,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/trainer_interface_test.cc:579,1
    - Dst: MultiFileSentenceIterator::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:579,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/trainer_interface_test.cc:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 581
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - MultiFileSentenceIterator::status
    - MultiFileSentenceIterator::value
    - std::vector::emplace_back
    - absl::StrCat
    - MultiFileSentenceIterator::Next
    - rand
    - ::testing::TempDir
    - std::vector::push_back
    - MultiFileSentenceIterator::done
    - EXPECT_EQ
    - auto::WriteLine
    - sentencepiece::filesystem::NewWritableFile
    - EXPECT_OK
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, MultiFileSentenceIteratorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/trainer_interface_test.cc:586,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/trainer_interface_test.cc:586,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface_test.cc:587,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/trainer_interface_test.cc:588,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:592,1
    - Dst: MultiFileSentenceIterator::done
      Src: /src/sentencepiece/src/trainer_interface_test.cc:592,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/trainer_interface_test.cc:593,1
    - Dst: MultiFileSentenceIterator::status
      Src: /src/sentencepiece/src/trainer_interface_test.cc:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 594
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/trainer_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - MultiFileSentenceIterator::status
    - absl::StrCat
    - std::vector::push_back
    - ::testing::TempDir
    - MultiFileSentenceIterator::done
    - EXPECT_TRUE
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerInterfaceTest, MultiFileSentenceIteratorErrorTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: sentencepiece::filesystem::ReadableFile::ReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReadableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: sentencepiece::filesystem::ReadableFile::ReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReadableFile(absl::string_view filename, bool is_binary = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: ~ReadableFile()
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ReadableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: sentencepiece::filesystem::WritableFile::WritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WritableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: sentencepiece::filesystem::WritableFile::WritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WritableFile(absl::string_view filename, bool is_binary = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ~WritableFile()
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WritableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: sentencepiece::filesystem::ReadableFile::ReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReadableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: sentencepiece::filesystem::ReadableFile::ReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReadableFile(absl::string_view filename, bool is_binary = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: ~ReadableFile()
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ReadableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: sentencepiece::filesystem::WritableFile::WritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WritableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: sentencepiece::filesystem::WritableFile::WritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WritableFile(absl::string_view filename, bool is_binary = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ~WritableFile()
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WritableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: sentencepiece::filesystem::ReadableFile::ReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReadableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: sentencepiece::filesystem::ReadableFile::ReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReadableFile(absl::string_view filename, bool is_binary = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: ~ReadableFile()
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ReadableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: sentencepiece::filesystem::WritableFile::WritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WritableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: sentencepiece::filesystem::WritableFile::WritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WritableFile(absl::string_view filename, bool is_binary = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ~WritableFile()
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WritableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: sentencepiece::filesystem::ReadableFile::ReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReadableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: sentencepiece::filesystem::ReadableFile::ReadableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReadableFile(absl::string_view filename, bool is_binary = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: ~ReadableFile()
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ReadableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: sentencepiece::filesystem::WritableFile::WritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WritableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: sentencepiece::filesystem::WritableFile::WritableFile
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void WritableFile(absl::string_view filename, bool is_binary = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: ~WritableFile()
    functionSourceFile: /src/sentencepiece/src/filesystem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~WritableFile()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:52,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:53,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:53,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:55,1
    - Dst: auto::ReadAll
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:55,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:57,1
    - Dst: ModelProto::ParseFromString
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: sentencepiece::LoadModelProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::ParseFromString
    - auto::ReadAll
    - CHECK_OK
    - CHECK
    - auto::status
    - sentencepiece::filesystem::NewReadableFile
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto LoadModelProto(absl::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:62,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:63,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:63,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:65,1
    - Dst: auto::ReadAll
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: sentencepiece::LoadInput
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - auto::ReadAll
    - CHECK_OK
    - CHECK
    - auto::status
    - sentencepiece::filesystem::NewReadableFile
    linkageType: ''
    returnType: std::string
    signature: std::string LoadInput(absl::string_view filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:73,1
    - Dst: testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:73,1
    - Dst: sentencepiece::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:74,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:76,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:76,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:79,1
    - Dst: testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:79,1
    - Dst: sentencepiece::LoadInput
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:80,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:84,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:88,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:90,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:93,1
    - Dst: SetBytesProcessed
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:96,1
    - Dst: iterations
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:96,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' state'
    - model_filename
    - input_filename
    argTypes:
    - benchmark::State
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 97
    functionName: sentencepiece::BM_Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::ParallelEncode
    - sentencepiece::LoadModelProto
    - SentencePieceProcessor::Encode
    - SetBytesProcessed
    - CHECK_OK
    - iterations
    - testing::SrcDir
    - std::string::size
    - benchmark::DoNotOptimize
    - sentencepiece::LoadInput
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: "void BM_Encode(benchmark::State& state, absl::string_view model_filename,\n
      \              absl::string_view input_filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:107,1
    - Dst: testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:107,1
    - Dst: sentencepiece::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:108,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:110,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:110,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:113,1
    - Dst: testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:113,1
    - Dst: sentencepiece::LoadInput
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:114,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:115,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:119,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:121,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:122,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:124,1
    - Dst: SetBytesProcessed
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:126,1
    - Dst: iterations
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:126,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' state'
    - model_filename
    - input_filename
    argTypes:
    - benchmark::State
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 127
    functionName: sentencepiece::BM_Encode_ShortLines
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - sentencepiece::LoadModelProto
    - SetBytesProcessed
    - CHECK_OK
    - iterations
    - testing::SrcDir
    - std::string::size
    - benchmark::DoNotOptimize
    - sentencepiece::LoadInput
    - SentencePieceProcessor::Load
    - absl::StrSplit
    linkageType: ''
    returnType: void
    signature: "void BM_Encode_ShortLines(benchmark::State& state,\n                          absl::string_view
      model_filename,\n                          absl::string_view input_filename)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:138,1
    - Dst: testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:138,1
    - Dst: sentencepiece::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:139,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:141,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:141,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:144,1
    - Dst: testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:144,1
    - Dst: sentencepiece::LoadInput
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:145,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:149,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:149,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:150,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:150,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:154,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:155,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:159,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:161,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:164,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:165,1
    - Dst: SetBytesProcessed
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:168,1
    - Dst: iterations
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:168,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - ' state'
    - model_filename
    - input_filename
    argTypes:
    - benchmark::State
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 169
    functionName: sentencepiece::BM_Decode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - sentencepiece::LoadModelProto
    - SetBytesProcessed
    - SentencePieceProcessor::Decode
    - CHECK_OK
    - iterations
    - testing::SrcDir
    - std::string::size
    - benchmark::DoNotOptimize
    - sentencepiece::LoadInput
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: "void BM_Decode(benchmark::State& state, absl::string_view model_filename,\n
      \              absl::string_view input_filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: sentencepiece::BM_EncodeBotchan_Sequential
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode
    linkageType: ''
    returnType: void
    signature: void BM_EncodeBotchan_Sequential(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: sentencepiece::BM_EncodeBotchan_Parallel
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode
    linkageType: ''
    returnType: void
    signature: void BM_EncodeBotchan_Parallel(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode_ShortLines
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: sentencepiece::BM_EncodeBotchan_ShortLines
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode_ShortLines
    linkageType: ''
    returnType: void
    signature: void BM_EncodeBotchan_ShortLines(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: sentencepiece::BM_EncodeWagahaiwaNekodearu_Sequential
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode
    linkageType: ''
    returnType: void
    signature: void BM_EncodeWagahaiwaNekodearu_Sequential(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: sentencepiece::BM_EncodeWagahaiwaNekodearu_Parallel
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode
    linkageType: ''
    returnType: void
    signature: void BM_EncodeWagahaiwaNekodearu_Parallel(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: sentencepiece::BM_OSSModel_Sequential
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode
    linkageType: ''
    returnType: void
    signature: void BM_OSSModel_Sequential(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: sentencepiece::BM_OSSModel_Parallel
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode
    linkageType: ''
    returnType: void
    signature: void BM_OSSModel_Parallel(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: sentencepiece::BM_DecodeBotchan_Ids
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Decode
    linkageType: ''
    returnType: void
    signature: void BM_DecodeBotchan_Ids(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: sentencepiece::BM_DecodeBotchan_Pieces
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Decode
    linkageType: ''
    returnType: void
    signature: void BM_DecodeBotchan_Pieces(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: sentencepiece::BM_DecodeWagahaiwaNekodearu_Ids
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Decode
    linkageType: ''
    returnType: void
    signature: void BM_DecodeWagahaiwaNekodearu_Ids(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: sentencepiece::BM_DecodeOSSModel_Ids
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Decode
    linkageType: ''
    returnType: void
    signature: void BM_DecodeOSSModel_Ids(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:52,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:53,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:53,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:55,1
    - Dst: auto::ReadAll
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:55,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:57,1
    - Dst: ModelProto::ParseFromString
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: sentencepiece::LoadModelProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 3
    functionsReached:
    - ModelProto::ParseFromString
    - auto::ReadAll
    - CHECK_OK
    - CHECK
    - auto::status
    - sentencepiece::filesystem::NewReadableFile
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto LoadModelProto(absl::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:62,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:63,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:63,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:65,1
    - Dst: auto::ReadAll
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: sentencepiece::LoadInput
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 3
    functionsReached:
    - auto::ReadAll
    - CHECK_OK
    - CHECK
    - auto::status
    - sentencepiece::filesystem::NewReadableFile
    linkageType: ''
    returnType: std::string
    signature: std::string LoadInput(absl::string_view filename)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:73,1
    - Dst: testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:73,1
    - Dst: sentencepiece::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:74,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:76,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:76,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:79,1
    - Dst: testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:79,1
    - Dst: sentencepiece::LoadInput
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:80,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:84,1
    - Dst: SentencePieceProcessor::ParallelEncode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:88,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:90,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:93,1
    - Dst: SetBytesProcessed
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:96,1
    - Dst: iterations
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:96,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' state'
    - model_filename
    - input_filename
    argTypes:
    - benchmark::State
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 97
    functionName: sentencepiece::BM_Encode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 6
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::ParallelEncode
    - sentencepiece::LoadModelProto
    - SentencePieceProcessor::Encode
    - SetBytesProcessed
    - CHECK_OK
    - iterations
    - testing::SrcDir
    - std::string::size
    - benchmark::DoNotOptimize
    - sentencepiece::LoadInput
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: "void BM_Encode(benchmark::State& state, absl::string_view model_filename,\n
      \              absl::string_view input_filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:107,1
    - Dst: testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:107,1
    - Dst: sentencepiece::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:108,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:110,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:110,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:113,1
    - Dst: testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:113,1
    - Dst: sentencepiece::LoadInput
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:114,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:115,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:119,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:121,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:122,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:124,1
    - Dst: SetBytesProcessed
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:126,1
    - Dst: iterations
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:126,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' state'
    - model_filename
    - input_filename
    argTypes:
    - benchmark::State
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 127
    functionName: sentencepiece::BM_Encode_ShortLines
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - sentencepiece::LoadModelProto
    - SetBytesProcessed
    - CHECK_OK
    - iterations
    - testing::SrcDir
    - std::string::size
    - benchmark::DoNotOptimize
    - sentencepiece::LoadInput
    - SentencePieceProcessor::Load
    - absl::StrSplit
    linkageType: ''
    returnType: void
    signature: "void BM_Encode_ShortLines(benchmark::State& state,\n                          absl::string_view
      model_filename,\n                          absl::string_view input_filename)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:138,1
    - Dst: testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:138,1
    - Dst: sentencepiece::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:139,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:141,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:141,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:144,1
    - Dst: testing::SrcDir
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:144,1
    - Dst: sentencepiece::LoadInput
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:145,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:149,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:149,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:150,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:150,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:154,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:155,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:159,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:161,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:164,1
    - Dst: benchmark::DoNotOptimize
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:165,1
    - Dst: SetBytesProcessed
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:168,1
    - Dst: iterations
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:168,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - ' state'
    - model_filename
    - input_filename
    argTypes:
    - benchmark::State
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 169
    functionName: sentencepiece::BM_Decode
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 4
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - sentencepiece::LoadModelProto
    - SetBytesProcessed
    - SentencePieceProcessor::Decode
    - CHECK_OK
    - iterations
    - testing::SrcDir
    - std::string::size
    - benchmark::DoNotOptimize
    - sentencepiece::LoadInput
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: "void BM_Decode(benchmark::State& state, absl::string_view model_filename,\n
      \              absl::string_view input_filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: sentencepiece::BM_EncodeBotchan_Sequential
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode
    linkageType: ''
    returnType: void
    signature: void BM_EncodeBotchan_Sequential(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 180
    functionName: sentencepiece::BM_EncodeBotchan_Parallel
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode
    linkageType: ''
    returnType: void
    signature: void BM_EncodeBotchan_Parallel(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode_ShortLines
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 3
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: sentencepiece::BM_EncodeBotchan_ShortLines
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode_ShortLines
    linkageType: ''
    returnType: void
    signature: void BM_EncodeBotchan_ShortLines(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: sentencepiece::BM_EncodeWagahaiwaNekodearu_Sequential
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode
    linkageType: ''
    returnType: void
    signature: void BM_EncodeWagahaiwaNekodearu_Sequential(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: sentencepiece::BM_EncodeWagahaiwaNekodearu_Parallel
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode
    linkageType: ''
    returnType: void
    signature: void BM_EncodeWagahaiwaNekodearu_Parallel(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 3
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: sentencepiece::BM_OSSModel_Sequential
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode
    linkageType: ''
    returnType: void
    signature: void BM_OSSModel_Sequential(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Encode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: sentencepiece::BM_OSSModel_Parallel
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Encode
    linkageType: ''
    returnType: void
    signature: void BM_OSSModel_Parallel(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 3
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: sentencepiece::BM_DecodeBotchan_Ids
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Decode
    linkageType: ''
    returnType: void
    signature: void BM_DecodeBotchan_Ids(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: sentencepiece::BM_DecodeBotchan_Pieces
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Decode
    linkageType: ''
    returnType: void
    signature: void BM_DecodeBotchan_Pieces(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 230
    functionName: sentencepiece::BM_DecodeWagahaiwaNekodearu_Ids
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Decode
    linkageType: ''
    returnType: void
    signature: void BM_DecodeWagahaiwaNekodearu_Ids(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::BM_Decode
      Src: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - benchmark::State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 236
    functionName: sentencepiece::BM_DecodeOSSModel_Ids
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::BM_Decode
    linkageType: ''
    returnType: void
    signature: void BM_DecodeOSSModel_Ids(benchmark::State& state)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/util.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: '& operator<<(std::ostream& out, const std::vector<T>& v)'
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::StrJoin
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const std::vector<T>&
      v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.h:77,1
    - Dst: std::memcpy
      Src: /src/sentencepiece/src/util.h:80,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - result
    argTypes:
    - absl::string_view
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: sentencepiece::string_util::DecodePOD
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - absl::string_view::size
    - std::memcpy
    linkageType: ''
    returnType: bool
    signature: bool DecodePOD(absl::string_view str, T* result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/sentencepiece/src/util.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: sentencepiece::string_util::EncodePOD
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: std::string
    signature: std::string EncodePOD(const T& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/util.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: sentencepiece::string_util::IntToHex
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string IntToHex(T value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/util.h:98,1
    - Dst: absl::numbers_internal::safe_strtoi_base
      Src: /src/sentencepiece/src/util.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: sentencepiece::string_util::HexToInt
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::ConsumePrefix
    - absl::numbers_internal::safe_strtoi_base
    linkageType: ''
    returnType: T
    signature: T HexToInt(absl::string_view value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: sentencepiece::string_util::SimpleItoa
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string SimpleItoa(T val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: sentencepiece::string_util::OneCharLen
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OneCharLen(const char* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<signed char>
      Src: /src/sentencepiece/src/util.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: sentencepiece::string_util::IsTrailByte
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 4
    functionsReached:
    - static_cast<signed char>
    linkageType: ''
    returnType: bool
    signature: bool IsTrailByte(char x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.h:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: sentencepiece::string_util::UTF8Len
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 4
    functionsReached:
    - sentencepiece::string_util::IsTrailByte
    linkageType: ''
    returnType: size_t
    signature: size_t UTF8Len(absl::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/util.h:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: sentencepiece::string_util::IsValidCodepoint
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 8
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: bool
    signature: bool IsValidCodepoint(char32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.h:140,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:140,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:140,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - mblen
    argTypes:
    - absl::string_view
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: sentencepiece::string_util::DecodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 13
    functionsReached:
    - absl::string_view::data
    - sentencepiece::string_util::DecodeUTF8
    - absl::string_view::size
    linkageType: ''
    returnType: char32_t
    signature: char32_t DecodeUTF8(absl::string_view input, size_t* mblen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - input
    - mblen
    argTypes:
    - absl::string_view
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: sentencepiece::string_util::IsValidDecodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 4
    functionsReached:
    - sentencepiece::string_util::DecodeUTF8
    linkageType: ''
    returnType: bool
    signature: bool IsValidDecodeUTF8(absl::string_view input, size_t* mblen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.h:77,1
    - Dst: std::memcpy
      Src: /src/sentencepiece/src/util.h:80,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - result
    argTypes:
    - absl::string_view
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: sentencepiece::string_util::DecodePOD
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - absl::string_view::size
    - std::memcpy
    linkageType: ''
    returnType: bool
    signature: bool DecodePOD(absl::string_view str, T* result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/sentencepiece/src/util.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: sentencepiece::string_util::EncodePOD
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: std::string
    signature: std::string EncodePOD(const T& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/util.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: sentencepiece::string_util::IntToHex
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string IntToHex(T value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/util.h:98,1
    - Dst: absl::numbers_internal::safe_strtoi_base
      Src: /src/sentencepiece/src/util.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: sentencepiece::string_util::HexToInt
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::ConsumePrefix
    - absl::numbers_internal::safe_strtoi_base
    linkageType: ''
    returnType: T
    signature: T HexToInt(absl::string_view value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: sentencepiece::string_util::SimpleItoa
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string SimpleItoa(T val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: sentencepiece::string_util::OneCharLen
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OneCharLen(const char* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<signed char>
      Src: /src/sentencepiece/src/util.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: sentencepiece::string_util::IsTrailByte
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 5
    functionsReached:
    - static_cast<signed char>
    linkageType: ''
    returnType: bool
    signature: bool IsTrailByte(char x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.h:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: sentencepiece::string_util::UTF8Len
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 4
    functionsReached:
    - sentencepiece::string_util::IsTrailByte
    linkageType: ''
    returnType: size_t
    signature: size_t UTF8Len(absl::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/util.h:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: sentencepiece::string_util::IsValidCodepoint
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 8
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: bool
    signature: bool IsValidCodepoint(char32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.h:140,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:140,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:140,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - mblen
    argTypes:
    - absl::string_view
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: sentencepiece::string_util::DecodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 15
    functionsReached:
    - absl::string_view::data
    - sentencepiece::string_util::DecodeUTF8
    - absl::string_view::size
    linkageType: ''
    returnType: char32_t
    signature: char32_t DecodeUTF8(absl::string_view input, size_t* mblen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - input
    - mblen
    argTypes:
    - absl::string_view
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: sentencepiece::string_util::IsValidDecodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 4
    functionsReached:
    - sentencepiece::string_util::DecodeUTF8
    linkageType: ''
    returnType: bool
    signature: bool IsValidDecodeUTF8(absl::string_view input, size_t* mblen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/util.h:174,1
    - Dst: end
      Src: /src/sentencepiece/src/util.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' collection'
    - ' key'
    argTypes:
    - Collection
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: sentencepiece::port::ContainsKey
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 8
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: bool ContainsKey(const Collection& collection, const Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/util.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' collection'
    - ' key'
    argTypes:
    - Collection
    - typename Collection::value_type::first_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: sentencepiece::port::FindOrDie
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: typename Collection::value_type::second_type
    signature: "typename Collection::value_type::second_type & FindOrDie(\n    const
      Collection& collection,\n    const typename Collection::value_type::first_type&
      key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/util.h:193,1
    - Dst: end
      Src: /src/sentencepiece/src/util.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' collection'
    - ' key'
    - ' value'
    argTypes:
    - Collection
    - typename Collection::value_type::first_type
    - typename Collection::value_type::second_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: sentencepiece::port::FindWithDefault
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 12
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: typename Collection::value_type::second_type
    signature: "typename Collection::value_type::second_type & FindWithDefault(\n
      \   const Collection& collection,\n    const typename Collection::value_type::first_type&
      key,\n    const typename Collection::value_type::second_type& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Collection*::insert
      Src: /src/sentencepiece/src/util.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - collection
    - ' vt'
    argTypes:
    - Collection*
    - typename Collection::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: sentencepiece::port::InsertIfNotPresent
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - Collection*::insert
    linkageType: ''
    returnType: bool
    signature: "bool InsertIfNotPresent(Collection* const collection,\n                        const
      typename Collection::value_type& vt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::InsertIfNotPresent
      Src: /src/sentencepiece/src/util.h:210,1
    - Dst: Collection::value_type
      Src: /src/sentencepiece/src/util.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - collection
    - ' key'
    - ' value'
    argTypes:
    - Collection*
    - typename Collection::value_type::first_type
    - typename Collection::value_type::second_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: sentencepiece::port::InsertIfNotPresent
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 1
    functionsReached:
    - Collection::value_type
    - sentencepiece::port::InsertIfNotPresent
    linkageType: ''
    returnType: bool
    signature: "bool InsertIfNotPresent(\n    Collection* const collection,\n    const
      typename Collection::value_type::first_type& key,\n    const typename Collection::value_type::second_type&
      value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/sentencepiece/src/util.h:218,1
    - Dst: sentencepiece::port::InsertIfNotPresent
      Src: /src/sentencepiece/src/util.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - collection
    - ' key'
    - ' data'
    argTypes:
    - Collection*
    - typename Collection::value_type::first_type
    - typename Collection::value_type::second_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: sentencepiece::port::InsertOrDie
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - CHECK
    - sentencepiece::port::InsertIfNotPresent
    linkageType: ''
    returnType: void
    signature: "void InsertOrDie(Collection* const collection,\n                 const
      typename Collection::value_type::first_type& key,\n                 const typename
      Collection::value_type::second_type& data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/util.h:174,1
    - Dst: end
      Src: /src/sentencepiece/src/util.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' collection'
    - ' key'
    argTypes:
    - Collection
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: sentencepiece::port::ContainsKey
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 8
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: bool ContainsKey(const Collection& collection, const Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/util.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' collection'
    - ' key'
    argTypes:
    - Collection
    - typename Collection::value_type::first_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: sentencepiece::port::FindOrDie
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: typename Collection::value_type::second_type
    signature: "typename Collection::value_type::second_type & FindOrDie(\n    const
      Collection& collection,\n    const typename Collection::value_type::first_type&
      key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/util.h:193,1
    - Dst: end
      Src: /src/sentencepiece/src/util.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' collection'
    - ' key'
    - ' value'
    argTypes:
    - Collection
    - typename Collection::value_type::first_type
    - typename Collection::value_type::second_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: sentencepiece::port::FindWithDefault
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 12
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: typename Collection::value_type::second_type
    signature: "typename Collection::value_type::second_type & FindWithDefault(\n
      \   const Collection& collection,\n    const typename Collection::value_type::first_type&
      key,\n    const typename Collection::value_type::second_type& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Collection*::insert
      Src: /src/sentencepiece/src/util.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - collection
    - ' vt'
    argTypes:
    - Collection*
    - typename Collection::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: sentencepiece::port::InsertIfNotPresent
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 2
    functionsReached:
    - Collection*::insert
    linkageType: ''
    returnType: bool
    signature: "bool InsertIfNotPresent(Collection* const collection,\n                        const
      typename Collection::value_type& vt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::InsertIfNotPresent
      Src: /src/sentencepiece/src/util.h:210,1
    - Dst: Collection::value_type
      Src: /src/sentencepiece/src/util.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - collection
    - ' key'
    - ' value'
    argTypes:
    - Collection*
    - typename Collection::value_type::first_type
    - typename Collection::value_type::second_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: sentencepiece::port::InsertIfNotPresent
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 3
    functionsReached:
    - Collection::value_type
    - sentencepiece::port::InsertIfNotPresent
    linkageType: ''
    returnType: bool
    signature: "bool InsertIfNotPresent(\n    Collection* const collection,\n    const
      typename Collection::value_type::first_type& key,\n    const typename Collection::value_type::second_type&
      value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/sentencepiece/src/util.h:218,1
    - Dst: sentencepiece::port::InsertIfNotPresent
      Src: /src/sentencepiece/src/util.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - collection
    - ' key'
    - ' data'
    argTypes:
    - Collection*
    - typename Collection::value_type::first_type
    - typename Collection::value_type::second_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: sentencepiece::port::InsertOrDie
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - CHECK
    - sentencepiece::port::InsertIfNotPresent
    linkageType: ''
    returnType: void
    signature: "void InsertOrDie(Collection* const collection,\n                 const
      typename Collection::value_type::first_type& key,\n                 const typename
      Collection::value_type::second_type& data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - sampled
    - size
    argTypes:
    - std::vector<T>*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: sentencepiece::random::ReservoirSampler::ReservoirSampler
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReservoirSampler(std::vector<T>* sampled, uint64_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - sampled
    - size
    - seed
    argTypes:
    - std::vector<T>*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: sentencepiece::random::ReservoirSampler::ReservoirSampler
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ReservoirSampler(std::vector<T>* sampled, uint64_t size,\n                            uint64_t
      seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: ~ReservoirSampler()
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ReservoirSampler()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/util.h:243,1
    - Dst: push_back
      Src: /src/sentencepiece/src/util.h:244,1
    - Dst: absl::Uniform<uint64_t>
      Src: /src/sentencepiece/src/util.h:246,1
    - Dst: size
      Src: /src/sentencepiece/src/util.h:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 251
    functionName: sentencepiece::random::ReservoirSampler::Add
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - push_back
    - absl::Uniform<uint64_t>
    - size
    linkageType: ''
    returnType: void
    signature: void Add(const T& item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: sentencepiece::random::ReservoirSampler::total_size
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t total_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - sampled
    - size
    argTypes:
    - std::vector<T>*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: sentencepiece::random::ReservoirSampler::ReservoirSampler
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReservoirSampler(std::vector<T>* sampled, uint64_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - sampled
    - size
    - seed
    argTypes:
    - std::vector<T>*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: sentencepiece::random::ReservoirSampler::ReservoirSampler
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ReservoirSampler(std::vector<T>* sampled, uint64_t size,\n                            uint64_t
      seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: ~ReservoirSampler()
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ReservoirSampler()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/util.h:243,1
    - Dst: push_back
      Src: /src/sentencepiece/src/util.h:244,1
    - Dst: absl::Uniform<uint64_t>
      Src: /src/sentencepiece/src/util.h:246,1
    - Dst: size
      Src: /src/sentencepiece/src/util.h:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 251
    functionName: sentencepiece::random::ReservoirSampler::Add
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - push_back
    - absl::Uniform<uint64_t>
    - size
    linkageType: ''
    returnType: void
    signature: void Add(const T& item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: sentencepiece::random::ReservoirSampler::total_size
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t total_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: sentencepiece::util::is_bigendian
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_bigendian()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::gbswap_32
      Src: /src/sentencepiece/src/util.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: sentencepiece::util::Swap32
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::gbswap_32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Swap32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:273,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.h:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: sentencepiece::util::JoinPath
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 88
    functionsReached:
    - absl::string_view::data
    - absl::string_view::size
    linkageType: ''
    returnType: std::string
    signature: std::string JoinPath(absl::string_view path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.h:279,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:279,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:279,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.h:281,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:281,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - first
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: sentencepiece::util::JoinPath
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 89
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string JoinPath(absl::string_view first, const T&... rest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: RET_CHECK_EQ
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_EQ(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: RET_CHECK_NE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_NE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: RET_CHECK_GE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_GE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: RET_CHECK_LE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_LE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: RET_CHECK_GT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_GT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: RET_CHECK_LT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_LT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: RET_QCHECK_EQ
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_EQ(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: RET_QCHECK_NE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_NE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: RET_QCHECK_GE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_GE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: RET_QCHECK_LE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_LE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: RET_QCHECK_GT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_GT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: RET_QCHECK_LT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_LT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: sentencepiece::util::is_bigendian
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_bigendian()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::gbswap_32
      Src: /src/sentencepiece/src/util.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: sentencepiece::util::Swap32
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::gbswap_32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Swap32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:273,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.h:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: sentencepiece::util::JoinPath
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 89
    functionsReached:
    - absl::string_view::data
    - absl::string_view::size
    linkageType: ''
    returnType: std::string
    signature: std::string JoinPath(absl::string_view path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.h:279,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:279,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:279,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.h:281,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:281,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - first
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: sentencepiece::util::JoinPath
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 90
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string JoinPath(absl::string_view first, const T&... rest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: RET_CHECK_EQ
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_EQ(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: RET_CHECK_NE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_NE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: RET_CHECK_GE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_GE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: RET_CHECK_LE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_LE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: RET_CHECK_GT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_GT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: RET_CHECK_LT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_LT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: RET_QCHECK_EQ
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_EQ(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: RET_QCHECK_NE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_NE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: RET_QCHECK_GE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_GE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: RET_QCHECK_LE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_LE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: RET_QCHECK_GT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_GT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: RET_QCHECK_LT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_LT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/util.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' v'
    argTypes:
    - std::ostream
    - std::vector<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: '& operator<<(std::ostream& out, const std::vector<T>& v)'
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::StrJoin
    linkageType: ''
    returnType: std::ostream
    signature: std::ostream & operator<<(std::ostream& out, const std::vector<T>&
      v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.h:77,1
    - Dst: std::memcpy
      Src: /src/sentencepiece/src/util.h:80,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - result
    argTypes:
    - absl::string_view
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: sentencepiece::string_util::DecodePOD
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - absl::string_view::size
    - std::memcpy
    linkageType: ''
    returnType: bool
    signature: bool DecodePOD(absl::string_view str, T* result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/sentencepiece/src/util.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: sentencepiece::string_util::EncodePOD
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: std::string
    signature: std::string EncodePOD(const T& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/util.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: sentencepiece::string_util::IntToHex
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string IntToHex(T value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/util.h:98,1
    - Dst: absl::numbers_internal::safe_strtoi_base
      Src: /src/sentencepiece/src/util.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: sentencepiece::string_util::HexToInt
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::ConsumePrefix
    - absl::numbers_internal::safe_strtoi_base
    linkageType: ''
    returnType: T
    signature: T HexToInt(absl::string_view value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: sentencepiece::string_util::SimpleItoa
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string SimpleItoa(T val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: sentencepiece::string_util::OneCharLen
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OneCharLen(const char* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<signed char>
      Src: /src/sentencepiece/src/util.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: sentencepiece::string_util::IsTrailByte
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 6
    functionsReached:
    - static_cast<signed char>
    linkageType: ''
    returnType: bool
    signature: bool IsTrailByte(char x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.h:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: sentencepiece::string_util::UTF8Len
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 4
    functionsReached:
    - sentencepiece::string_util::IsTrailByte
    linkageType: ''
    returnType: size_t
    signature: size_t UTF8Len(absl::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/util.h:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: sentencepiece::string_util::IsValidCodepoint
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 8
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: bool
    signature: bool IsValidCodepoint(char32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.h:140,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:140,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:140,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - mblen
    argTypes:
    - absl::string_view
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: sentencepiece::string_util::DecodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 17
    functionsReached:
    - absl::string_view::data
    - sentencepiece::string_util::DecodeUTF8
    - absl::string_view::size
    linkageType: ''
    returnType: char32_t
    signature: char32_t DecodeUTF8(absl::string_view input, size_t* mblen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - input
    - mblen
    argTypes:
    - absl::string_view
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: sentencepiece::string_util::IsValidDecodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 4
    functionsReached:
    - sentencepiece::string_util::DecodeUTF8
    linkageType: ''
    returnType: bool
    signature: bool IsValidDecodeUTF8(absl::string_view input, size_t* mblen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.h:77,1
    - Dst: std::memcpy
      Src: /src/sentencepiece/src/util.h:80,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - result
    argTypes:
    - absl::string_view
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 82
    functionName: sentencepiece::string_util::DecodePOD
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - absl::string_view::size
    - std::memcpy
    linkageType: ''
    returnType: bool
    signature: bool DecodePOD(absl::string_view str, T* result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/sentencepiece/src/util.h:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: sentencepiece::string_util::EncodePOD
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: std::string
    signature: std::string EncodePOD(const T& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/util.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: sentencepiece::string_util::IntToHex
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string IntToHex(T value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/util.h:98,1
    - Dst: absl::numbers_internal::safe_strtoi_base
      Src: /src/sentencepiece/src/util.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: sentencepiece::string_util::HexToInt
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::ConsumePrefix
    - absl::numbers_internal::safe_strtoi_base
    linkageType: ''
    returnType: T
    signature: T HexToInt(absl::string_view value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: sentencepiece::string_util::SimpleItoa
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string SimpleItoa(T val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: sentencepiece::string_util::OneCharLen
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OneCharLen(const char* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<signed char>
      Src: /src/sentencepiece/src/util.h:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: sentencepiece::string_util::IsTrailByte
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 7
    functionsReached:
    - static_cast<signed char>
    linkageType: ''
    returnType: bool
    signature: bool IsTrailByte(char x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::IsTrailByte
      Src: /src/sentencepiece/src/util.h:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: sentencepiece::string_util::UTF8Len
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 4
    functionsReached:
    - sentencepiece::string_util::IsTrailByte
    linkageType: ''
    returnType: size_t
    signature: size_t UTF8Len(absl::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/util.h:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: sentencepiece::string_util::IsValidCodepoint
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 8
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: bool
    signature: bool IsValidCodepoint(char32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.h:140,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:140,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:140,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - mblen
    argTypes:
    - absl::string_view
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: sentencepiece::string_util::DecodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 19
    functionsReached:
    - absl::string_view::data
    - sentencepiece::string_util::DecodeUTF8
    - absl::string_view::size
    linkageType: ''
    returnType: char32_t
    signature: char32_t DecodeUTF8(absl::string_view input, size_t* mblen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - input
    - mblen
    argTypes:
    - absl::string_view
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: sentencepiece::string_util::IsValidDecodeUTF8
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 4
    functionsReached:
    - sentencepiece::string_util::DecodeUTF8
    linkageType: ''
    returnType: bool
    signature: bool IsValidDecodeUTF8(absl::string_view input, size_t* mblen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/util.h:174,1
    - Dst: end
      Src: /src/sentencepiece/src/util.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' collection'
    - ' key'
    argTypes:
    - Collection
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: sentencepiece::port::ContainsKey
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 8
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: bool ContainsKey(const Collection& collection, const Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/util.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' collection'
    - ' key'
    argTypes:
    - Collection
    - typename Collection::value_type::first_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: sentencepiece::port::FindOrDie
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: typename Collection::value_type::second_type
    signature: "typename Collection::value_type::second_type & FindOrDie(\n    const
      Collection& collection,\n    const typename Collection::value_type::first_type&
      key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/util.h:193,1
    - Dst: end
      Src: /src/sentencepiece/src/util.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' collection'
    - ' key'
    - ' value'
    argTypes:
    - Collection
    - typename Collection::value_type::first_type
    - typename Collection::value_type::second_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: sentencepiece::port::FindWithDefault
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 12
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: typename Collection::value_type::second_type
    signature: "typename Collection::value_type::second_type & FindWithDefault(\n
      \   const Collection& collection,\n    const typename Collection::value_type::first_type&
      key,\n    const typename Collection::value_type::second_type& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Collection*::insert
      Src: /src/sentencepiece/src/util.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - collection
    - ' vt'
    argTypes:
    - Collection*
    - typename Collection::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: sentencepiece::port::InsertIfNotPresent
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 4
    functionsReached:
    - Collection*::insert
    linkageType: ''
    returnType: bool
    signature: "bool InsertIfNotPresent(Collection* const collection,\n                        const
      typename Collection::value_type& vt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::InsertIfNotPresent
      Src: /src/sentencepiece/src/util.h:210,1
    - Dst: Collection::value_type
      Src: /src/sentencepiece/src/util.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - collection
    - ' key'
    - ' value'
    argTypes:
    - Collection*
    - typename Collection::value_type::first_type
    - typename Collection::value_type::second_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: sentencepiece::port::InsertIfNotPresent
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 5
    functionsReached:
    - Collection::value_type
    - sentencepiece::port::InsertIfNotPresent
    linkageType: ''
    returnType: bool
    signature: "bool InsertIfNotPresent(\n    Collection* const collection,\n    const
      typename Collection::value_type::first_type& key,\n    const typename Collection::value_type::second_type&
      value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/sentencepiece/src/util.h:218,1
    - Dst: sentencepiece::port::InsertIfNotPresent
      Src: /src/sentencepiece/src/util.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - collection
    - ' key'
    - ' data'
    argTypes:
    - Collection*
    - typename Collection::value_type::first_type
    - typename Collection::value_type::second_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: sentencepiece::port::InsertOrDie
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - CHECK
    - sentencepiece::port::InsertIfNotPresent
    linkageType: ''
    returnType: void
    signature: "void InsertOrDie(Collection* const collection,\n                 const
      typename Collection::value_type::first_type& key,\n                 const typename
      Collection::value_type::second_type& data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/util.h:174,1
    - Dst: end
      Src: /src/sentencepiece/src/util.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' collection'
    - ' key'
    argTypes:
    - Collection
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 175
    functionName: sentencepiece::port::ContainsKey
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 8
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: bool ContainsKey(const Collection& collection, const Key& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/util.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' collection'
    - ' key'
    argTypes:
    - Collection
    - typename Collection::value_type::first_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: sentencepiece::port::FindOrDie
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - find
    linkageType: ''
    returnType: typename Collection::value_type::second_type
    signature: "typename Collection::value_type::second_type & FindOrDie(\n    const
      Collection& collection,\n    const typename Collection::value_type::first_type&
      key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/util.h:193,1
    - Dst: end
      Src: /src/sentencepiece/src/util.h:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' collection'
    - ' key'
    - ' value'
    argTypes:
    - Collection
    - typename Collection::value_type::first_type
    - typename Collection::value_type::second_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 197
    functionName: sentencepiece::port::FindWithDefault
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 12
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: typename Collection::value_type::second_type
    signature: "typename Collection::value_type::second_type & FindWithDefault(\n
      \   const Collection& collection,\n    const typename Collection::value_type::first_type&
      key,\n    const typename Collection::value_type::second_type& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Collection*::insert
      Src: /src/sentencepiece/src/util.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - collection
    - ' vt'
    argTypes:
    - Collection*
    - typename Collection::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: sentencepiece::port::InsertIfNotPresent
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 6
    functionsReached:
    - Collection*::insert
    linkageType: ''
    returnType: bool
    signature: "bool InsertIfNotPresent(Collection* const collection,\n                        const
      typename Collection::value_type& vt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::InsertIfNotPresent
      Src: /src/sentencepiece/src/util.h:210,1
    - Dst: Collection::value_type
      Src: /src/sentencepiece/src/util.h:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - collection
    - ' key'
    - ' value'
    argTypes:
    - Collection*
    - typename Collection::value_type::first_type
    - typename Collection::value_type::second_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: sentencepiece::port::InsertIfNotPresent
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 7
    functionsReached:
    - Collection::value_type
    - sentencepiece::port::InsertIfNotPresent
    linkageType: ''
    returnType: bool
    signature: "bool InsertIfNotPresent(\n    Collection* const collection,\n    const
      typename Collection::value_type::first_type& key,\n    const typename Collection::value_type::second_type&
      value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/sentencepiece/src/util.h:218,1
    - Dst: sentencepiece::port::InsertIfNotPresent
      Src: /src/sentencepiece/src/util.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - collection
    - ' key'
    - ' data'
    argTypes:
    - Collection*
    - typename Collection::value_type::first_type
    - typename Collection::value_type::second_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: sentencepiece::port::InsertOrDie
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - CHECK
    - sentencepiece::port::InsertIfNotPresent
    linkageType: ''
    returnType: void
    signature: "void InsertOrDie(Collection* const collection,\n                 const
      typename Collection::value_type::first_type& key,\n                 const typename
      Collection::value_type::second_type& data)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - sampled
    - size
    argTypes:
    - std::vector<T>*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: sentencepiece::random::ReservoirSampler::ReservoirSampler
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReservoirSampler(std::vector<T>* sampled, uint64_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - sampled
    - size
    - seed
    argTypes:
    - std::vector<T>*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: sentencepiece::random::ReservoirSampler::ReservoirSampler
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ReservoirSampler(std::vector<T>* sampled, uint64_t size,\n                            uint64_t
      seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: ~ReservoirSampler()
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ReservoirSampler()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/util.h:243,1
    - Dst: push_back
      Src: /src/sentencepiece/src/util.h:244,1
    - Dst: absl::Uniform<uint64_t>
      Src: /src/sentencepiece/src/util.h:246,1
    - Dst: size
      Src: /src/sentencepiece/src/util.h:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 251
    functionName: sentencepiece::random::ReservoirSampler::Add
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - push_back
    - absl::Uniform<uint64_t>
    - size
    linkageType: ''
    returnType: void
    signature: void Add(const T& item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: sentencepiece::random::ReservoirSampler::total_size
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t total_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - sampled
    - size
    argTypes:
    - std::vector<T>*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 231
    functionName: sentencepiece::random::ReservoirSampler::ReservoirSampler
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ReservoirSampler(std::vector<T>* sampled, uint64_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - sampled
    - size
    - seed
    argTypes:
    - std::vector<T>*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: sentencepiece::random::ReservoirSampler::ReservoirSampler
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ReservoirSampler(std::vector<T>* sampled, uint64_t size,\n                            uint64_t
      seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    functionName: ~ReservoirSampler()
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ReservoirSampler()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/util.h:243,1
    - Dst: push_back
      Src: /src/sentencepiece/src/util.h:244,1
    - Dst: absl::Uniform<uint64_t>
      Src: /src/sentencepiece/src/util.h:246,1
    - Dst: size
      Src: /src/sentencepiece/src/util.h:247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' item'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 251
    functionName: sentencepiece::random::ReservoirSampler::Add
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - push_back
    - absl::Uniform<uint64_t>
    - size
    linkageType: ''
    returnType: void
    signature: void Add(const T& item)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: sentencepiece::random::ReservoirSampler::total_size
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t total_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: sentencepiece::util::is_bigendian
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_bigendian()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::gbswap_32
      Src: /src/sentencepiece/src/util.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: sentencepiece::util::Swap32
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::gbswap_32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Swap32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:273,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.h:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: sentencepiece::util::JoinPath
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 90
    functionsReached:
    - absl::string_view::data
    - absl::string_view::size
    linkageType: ''
    returnType: std::string
    signature: std::string JoinPath(absl::string_view path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.h:279,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:279,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:279,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.h:281,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:281,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - first
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: sentencepiece::util::JoinPath
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 91
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string JoinPath(absl::string_view first, const T&... rest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: RET_CHECK_EQ
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_EQ(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: RET_CHECK_NE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_NE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: RET_CHECK_GE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_GE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: RET_CHECK_LE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_LE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: RET_CHECK_GT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_GT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: RET_CHECK_LT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_LT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: RET_QCHECK_EQ
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_EQ(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: RET_QCHECK_NE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_NE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: RET_QCHECK_GE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_GE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: RET_QCHECK_LE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_LE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: RET_QCHECK_GT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_GT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: RET_QCHECK_LT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_LT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: sentencepiece::util::is_bigendian
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_bigendian()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::gbswap_32
      Src: /src/sentencepiece/src/util.h:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: sentencepiece::util::Swap32
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached:
    - absl::gbswap_32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Swap32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/util.h:273,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/util.h:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    functionName: sentencepiece::util::JoinPath
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 91
    functionsReached:
    - absl::string_view::data
    - absl::string_view::size
    linkageType: ''
    returnType: std::string
    signature: std::string JoinPath(absl::string_view path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.h:279,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:279,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:279,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/util.h:281,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:281,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util.h:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - first
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 283
    functionName: sentencepiece::util::JoinPath
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 92
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrCat
    linkageType: ''
    returnType: std::string
    signature: std::string JoinPath(absl::string_view first, const T&... rest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 300
    functionName: RET_CHECK_EQ
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 14
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_EQ(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: RET_CHECK_NE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_NE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: RET_CHECK_GE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_GE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 303
    functionName: RET_CHECK_LE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_LE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 304
    functionName: RET_CHECK_GT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_GT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 305
    functionName: RET_CHECK_LT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_CHECK_LT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 307
    functionName: RET_QCHECK_EQ
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_EQ(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 308
    functionName: RET_QCHECK_NE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_NE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 309
    functionName: RET_QCHECK_GE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_GE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 310
    functionName: RET_QCHECK_LE
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_LE(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 311
    functionName: RET_QCHECK_GT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_GT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: RET_QCHECK_LT
    functionSourceFile: /src/sentencepiece/src/util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RET_QCHECK_LT(a, b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/model_factory.cc:27,1
    - Dst: model_type
      Src: /src/sentencepiece/src/model_factory.cc:29,1
    - Dst: std::make_unique<unigram::Model>
      Src: /src/sentencepiece/src/model_factory.cc:31,1
    - Dst: std::make_unique<bpe::Model>
      Src: /src/sentencepiece/src/model_factory.cc:34,1
    - Dst: std::make_unique<word::Model>
      Src: /src/sentencepiece/src/model_factory.cc:37,1
    - Dst: std::make_unique<character::Model>
      Src: /src/sentencepiece/src/model_factory.cc:40,1
    - Dst: LOG
      Src: /src/sentencepiece/src/model_factory.cc:43,1
    - Dst: model_type
      Src: /src/sentencepiece/src/model_factory.cc:43,1
    - Dst: std::make_unique<unigram::Model>
      Src: /src/sentencepiece/src/model_factory.cc:48,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 49
    functionName: sentencepiece::ModelFactory::Create
    functionSourceFile: /src/sentencepiece/src/model_factory.cc
    functionUses: 4
    functionsReached:
    - std::make_unique<bpe::Model>
    - std::make_unique<character::Model>
    - LOG
    - trainer_spec
    - std::make_unique<unigram::Model>
    - model_type
    - std::make_unique<word::Model>
    linkageType: ''
    returnType: std::unique_ptr<ModelInterface>
    signature: "std::unique_ptr<ModelInterface> ModelFactory::Create(\n    const ModelProto&
      model_proto)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/model_factory.cc:27,1
    - Dst: model_type
      Src: /src/sentencepiece/src/model_factory.cc:29,1
    - Dst: std::make_unique<unigram::Model>
      Src: /src/sentencepiece/src/model_factory.cc:31,1
    - Dst: std::make_unique<bpe::Model>
      Src: /src/sentencepiece/src/model_factory.cc:34,1
    - Dst: std::make_unique<word::Model>
      Src: /src/sentencepiece/src/model_factory.cc:37,1
    - Dst: std::make_unique<character::Model>
      Src: /src/sentencepiece/src/model_factory.cc:40,1
    - Dst: LOG
      Src: /src/sentencepiece/src/model_factory.cc:43,1
    - Dst: model_type
      Src: /src/sentencepiece/src/model_factory.cc:43,1
    - Dst: std::make_unique<unigram::Model>
      Src: /src/sentencepiece/src/model_factory.cc:48,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 49
    functionName: sentencepiece::ModelFactory::Create
    functionSourceFile: /src/sentencepiece/src/model_factory.cc
    functionUses: 4
    functionsReached:
    - std::make_unique<bpe::Model>
    - std::make_unique<character::Model>
    - LOG
    - trainer_spec
    - std::make_unique<unigram::Model>
    - model_type
    - std::make_unique<word::Model>
    linkageType: ''
    returnType: std::unique_ptr<ModelInterface>
    signature: "std::unique_ptr<ModelInterface> ModelFactory::Create(\n    const ModelProto&
      model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:34,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:35,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:36,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:37,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:38,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:40,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:41,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:42,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:43,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:44,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - TrainerSpec::ModelType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: sentencepiece::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - auto*::set_type
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: "ModelProto MakeBaseModelProto(TrainerSpec::ModelType type,\n                              bool
      byte_fallback = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:52,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:53,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/model_interface_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: sentencepiece::AddPiece
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 12
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:58,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:59,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:59,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - byte
    argTypes:
    - ModelProto*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: sentencepiece::AddBytePiece
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto*::add_pieces
    - sentencepiece::ByteToPiece
    - auto*::set_piece
    - auto*::set_type
    linkageType: ''
    returnType: void
    signature: void AddBytePiece(ModelProto *model_proto, unsigned char byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:66,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:67,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:68,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:69,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:69,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:73,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:74,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:76,1
    - Dst: auto::unk_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:77,1
    - Dst: auto::bos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:78,1
    - Dst: auto::eos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:79,1
    - Dst: auto::pad_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:79,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:83,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:84,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:85,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:86,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:87,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:88,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:90,1
    - Dst: auto::unk_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:91,1
    - Dst: auto::bos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:92,1
    - Dst: auto::eos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:93,1
    - Dst: auto::pad_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:93,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:97,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:98,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:99,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:100,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:101,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:102,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:104,1
    - Dst: auto::unk_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:105,1
    - Dst: auto::bos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:106,1
    - Dst: auto::eos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:107,1
    - Dst: auto::pad_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 109
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - auto::pad_piece
    - auto::bos_piece
    - sentencepiece::MakeBaseModelProto
    - EXPECT_EQ
    - ModelProto::trainer_spec
    - auto::eos_piece
    - ModelProto::mutable_trainer_spec
    - auto::unk_piece
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, GetDefaultPieceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:113,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:114,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:115,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:116,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:117,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:120,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/model_interface_test.cc:120,1
    - Dst: auto::model_proto
      Src: /src/sentencepiece/src/model_interface_test.cc:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - auto::model_proto
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - sentencepiece::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SetModelInterfaceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:127,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:129,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:130,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:131,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:132,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:133,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:134,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:135,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:140,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/model_interface_test.cc:140,1
    - Dst: auto::model_proto
      Src: /src/sentencepiece/src/model_interface_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:143,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:144,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:145,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:146,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:147,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:148,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:149,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:150,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:151,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:152,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:154,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:155,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:156,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:157,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:158,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:159,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:160,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:161,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:163,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:163,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:164,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:164,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:165,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:165,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:166,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:166,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:167,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:167,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:168,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:168,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:169,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:169,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:170,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:170,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:172,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:172,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:173,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:173,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:174,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:174,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:175,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:176,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:176,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:177,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:177,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:178,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:178,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:179,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:179,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:181,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:181,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:182,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:182,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:183,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:183,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:184,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:184,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:185,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:185,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:186,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:186,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:187,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:187,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:188,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:188,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:190,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:190,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:191,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:191,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:192,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:192,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:193,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:193,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:194,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:194,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:195,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:195,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:196,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:196,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:197,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:197,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:199,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:199,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:200,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:200,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:201,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:201,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:202,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:202,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:203,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:203,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:204,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:204,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:205,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:205,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:206,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 208
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - auto::GetScore
    - ModelProto::mutable_pieces
    - sentencepiece::AddPiece
    - auto::model_proto
    - auto::IdToPiece
    - EXPECT_TRUE
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - sentencepiece::MakeBaseModelProto
    - auto::IsUnknown
    - auto::IsUnused
    - EXPECT_FALSE
    - auto::IsControl
    - auto::IsUserDefined
    - auto::PieceToId
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, PieceToIdTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:213,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:214,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:215,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:216,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:216,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:221,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:222,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:223,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:224,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:225,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:225,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:230,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:231,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:232,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:233,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:233,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:238,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:239,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:240,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:241,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 243
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - ModelProto::mutable_pieces
    - sentencepiece::AddPiece
    - auto::status
    - sentencepiece::MakeBaseModelProto
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, InvalidModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:247,1
    - Dst: sentencepiece::AddBytePiece
      Src: /src/sentencepiece/src/model_interface_test.cc:249,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:251,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:252,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:253,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:253,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:258,1
    - Dst: sentencepiece::AddBytePiece
      Src: /src/sentencepiece/src/model_interface_test.cc:260,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:262,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:263,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:264,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:264,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:269,1
    - Dst: sentencepiece::AddBytePiece
      Src: /src/sentencepiece/src/model_interface_test.cc:271,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:273,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:275,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 277
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - auto::status
    - sentencepiece::AddBytePiece
    - EXPECT_TRUE
    - sentencepiece::MakeBaseModelProto
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, ByteFallbackModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/sentencepiece/src/model_interface_test.cc:286,1
    - Dst: rand
      Src: /src/sentencepiece/src/model_interface_test.cc:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - length
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 292
    functionName: sentencepiece::RandomString
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - rand
    linkageType: ''
    returnType: std::string
    signature: std::string RandomString(int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:299,1
    - Dst: sentencepiece::RandomString
      Src: /src/sentencepiece/src/model_interface_test.cc:301,1
    - Dst: absl::flat_hash_map::find
      Src: /src/sentencepiece/src/model_interface_test.cc:302,1
    - Dst: absl::flat_hash_map::end
      Src: /src/sentencepiece/src/model_interface_test.cc:302,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/model_interface_test.cc:305,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/model_interface_test.cc:306,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:307,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:312,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:312,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:315,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 319
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - ModelProto::pieces_size
    - absl::flat_hash_map::end
    - sentencepiece::AddPiece
    - absl::flat_hash_map::find
    - auto::IdToPiece
    - sentencepiece::MakeBaseModelProto
    - EXPECT_EQ
    - auto::PieceToId
    - sentencepiece::RandomString
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, PieceToIdStressTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:323,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:324,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:324,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:325,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:326,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:327,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:328,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:332,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:333,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:333,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:337,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:341,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:342,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:342,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:343,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:344,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:345,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:349,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:350,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/model_interface_test.cc:350,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:354,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:355,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:355,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 358
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SplitIntoWords
    - auto::size
    - auto::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SplitIntoWordsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:362,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:363,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:366,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:367,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:372,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:373,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:375,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:376,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:381,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:382,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:383,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:385,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:389,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:390,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/model_interface_test.cc:390,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:394,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:395,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:395,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:396,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:401,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:401,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:402,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:403,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:408,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:408,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:409,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:410,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:411,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 414
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SplitIntoWords
    - auto::size
    - auto::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SplitIntoWordsSuffixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:419,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:420,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:420,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:421,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:422,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:423,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:424,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:428,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:429,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:429,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:434,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:435,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:435,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:436,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:440,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:441,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:441,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:446,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:447,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:447,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:449,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:453,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:454,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:454,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 458
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::SplitIntoWords
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SplitIntoWordsWhiteSpaceOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:461,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:461,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:462,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:462,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:463,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:463,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:464,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:464,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:465,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 466
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::ByteToPiece
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, ByteToPieceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:470,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:470,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:471,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:471,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:472,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:472,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:473,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:473,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:474,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:477,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:477,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:478,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:478,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:479,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:479,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:480,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:481,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:481,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:482,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 483
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::PieceToByte
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, PieceToByteTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:487,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:488,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:489,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:490,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:493,1
    - Dst: auto::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/model_interface_test.cc:493,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:494,1
    - Dst: auto::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/model_interface_test.cc:494,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:497,1
    - Dst: auto::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/model_interface_test.cc:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 499
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - EXPECT_TRUE
    - sentencepiece::MakeBaseModelProto
    - EXPECT_FALSE
    - auto::VerifyOutputsEquivalent
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, VerifyOutputsEquivalent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:503,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:505,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:506,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:507,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - auto::status
    - ModelProto::add_pieces
    - EXPECT_FALSE
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, TooLongPieceModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:34,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:35,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:36,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:37,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:38,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:40,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:41,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:42,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:43,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:44,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - TrainerSpec::ModelType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: sentencepiece::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 7
    functionsReached:
    - auto*::set_type
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: "ModelProto MakeBaseModelProto(TrainerSpec::ModelType type,\n                              bool
      byte_fallback = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:52,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:53,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/model_interface_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: sentencepiece::AddPiece
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 19
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:58,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:59,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:59,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - byte
    argTypes:
    - ModelProto*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: sentencepiece::AddBytePiece
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 1
    functionsReached:
    - ModelProto*::add_pieces
    - sentencepiece::ByteToPiece
    - auto*::set_piece
    - auto*::set_type
    linkageType: ''
    returnType: void
    signature: void AddBytePiece(ModelProto *model_proto, unsigned char byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:66,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:67,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:68,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:69,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:69,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:73,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:74,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:76,1
    - Dst: auto::unk_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:77,1
    - Dst: auto::bos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:78,1
    - Dst: auto::eos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:79,1
    - Dst: auto::pad_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:79,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:83,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:84,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:85,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:86,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:87,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:88,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:90,1
    - Dst: auto::unk_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:91,1
    - Dst: auto::bos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:92,1
    - Dst: auto::eos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:93,1
    - Dst: auto::pad_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:93,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:97,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:98,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:99,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:100,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:101,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:102,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:104,1
    - Dst: auto::unk_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:105,1
    - Dst: auto::bos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:106,1
    - Dst: auto::eos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:107,1
    - Dst: auto::pad_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 109
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - auto::pad_piece
    - auto::bos_piece
    - sentencepiece::MakeBaseModelProto
    - EXPECT_EQ
    - ModelProto::trainer_spec
    - auto::eos_piece
    - ModelProto::mutable_trainer_spec
    - auto::unk_piece
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, GetDefaultPieceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:113,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:114,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:115,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:116,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:117,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:120,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/model_interface_test.cc:120,1
    - Dst: auto::model_proto
      Src: /src/sentencepiece/src/model_interface_test.cc:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - auto::model_proto
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - sentencepiece::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SetModelInterfaceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:127,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:129,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:130,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:131,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:132,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:133,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:134,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:135,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:140,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/model_interface_test.cc:140,1
    - Dst: auto::model_proto
      Src: /src/sentencepiece/src/model_interface_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:143,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:144,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:145,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:146,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:147,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:148,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:149,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:150,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:151,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:152,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:154,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:155,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:156,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:157,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:158,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:159,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:160,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:161,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:163,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:163,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:164,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:164,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:165,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:165,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:166,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:166,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:167,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:167,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:168,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:168,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:169,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:169,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:170,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:170,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:172,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:172,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:173,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:173,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:174,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:174,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:175,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:176,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:176,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:177,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:177,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:178,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:178,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:179,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:179,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:181,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:181,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:182,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:182,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:183,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:183,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:184,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:184,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:185,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:185,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:186,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:186,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:187,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:187,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:188,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:188,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:190,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:190,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:191,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:191,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:192,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:192,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:193,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:193,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:194,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:194,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:195,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:195,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:196,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:196,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:197,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:197,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:199,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:199,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:200,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:200,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:201,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:201,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:202,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:202,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:203,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:203,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:204,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:204,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:205,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:205,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:206,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 208
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - auto::GetScore
    - ModelProto::mutable_pieces
    - sentencepiece::AddPiece
    - auto::model_proto
    - auto::IdToPiece
    - EXPECT_TRUE
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - sentencepiece::MakeBaseModelProto
    - auto::IsUnknown
    - auto::IsUnused
    - EXPECT_FALSE
    - auto::IsControl
    - auto::IsUserDefined
    - auto::PieceToId
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, PieceToIdTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:213,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:214,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:215,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:216,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:216,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:221,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:222,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:223,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:224,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:225,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:225,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:230,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:231,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:232,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:233,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:233,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:238,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:239,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:240,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:241,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 243
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - ModelProto::mutable_pieces
    - sentencepiece::AddPiece
    - auto::status
    - sentencepiece::MakeBaseModelProto
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, InvalidModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:247,1
    - Dst: sentencepiece::AddBytePiece
      Src: /src/sentencepiece/src/model_interface_test.cc:249,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:251,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:252,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:253,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:253,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:258,1
    - Dst: sentencepiece::AddBytePiece
      Src: /src/sentencepiece/src/model_interface_test.cc:260,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:262,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:263,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:264,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:264,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:269,1
    - Dst: sentencepiece::AddBytePiece
      Src: /src/sentencepiece/src/model_interface_test.cc:271,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:273,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:275,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 277
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - auto::status
    - sentencepiece::AddBytePiece
    - EXPECT_TRUE
    - sentencepiece::MakeBaseModelProto
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, ByteFallbackModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/sentencepiece/src/model_interface_test.cc:286,1
    - Dst: rand
      Src: /src/sentencepiece/src/model_interface_test.cc:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - length
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 292
    functionName: sentencepiece::RandomString
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 1
    functionsReached:
    - rand
    linkageType: ''
    returnType: std::string
    signature: std::string RandomString(int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:299,1
    - Dst: sentencepiece::RandomString
      Src: /src/sentencepiece/src/model_interface_test.cc:301,1
    - Dst: absl::flat_hash_map::find
      Src: /src/sentencepiece/src/model_interface_test.cc:302,1
    - Dst: absl::flat_hash_map::end
      Src: /src/sentencepiece/src/model_interface_test.cc:302,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/model_interface_test.cc:305,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/model_interface_test.cc:306,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:307,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:312,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:312,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:315,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 319
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - ModelProto::pieces_size
    - absl::flat_hash_map::end
    - sentencepiece::AddPiece
    - absl::flat_hash_map::find
    - auto::IdToPiece
    - sentencepiece::MakeBaseModelProto
    - EXPECT_EQ
    - auto::PieceToId
    - sentencepiece::RandomString
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, PieceToIdStressTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:323,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:324,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:324,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:325,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:326,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:327,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:328,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:332,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:333,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:333,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:337,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:341,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:342,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:342,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:343,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:344,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:345,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:349,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:350,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/model_interface_test.cc:350,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:354,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:355,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:355,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 358
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SplitIntoWords
    - auto::size
    - auto::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SplitIntoWordsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:362,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:363,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:366,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:367,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:372,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:373,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:375,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:376,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:381,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:382,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:383,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:385,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:389,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:390,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/model_interface_test.cc:390,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:394,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:395,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:395,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:396,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:401,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:401,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:402,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:403,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:408,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:408,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:409,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:410,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:411,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 414
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SplitIntoWords
    - auto::size
    - auto::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SplitIntoWordsSuffixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:419,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:420,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:420,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:421,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:422,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:423,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:424,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:428,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:429,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:429,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:434,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:435,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:435,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:436,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:440,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:441,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:441,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:446,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:447,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:447,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:449,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:453,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:454,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:454,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 458
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::SplitIntoWords
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SplitIntoWordsWhiteSpaceOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:461,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:461,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:462,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:462,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:463,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:463,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:464,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:464,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:465,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 466
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::ByteToPiece
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, ByteToPieceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:470,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:470,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:471,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:471,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:472,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:472,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:473,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:473,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:474,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:477,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:477,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:478,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:478,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:479,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:479,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:480,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:481,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:481,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:482,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 483
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::PieceToByte
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, PieceToByteTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:487,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:488,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:489,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:490,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:493,1
    - Dst: auto::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/model_interface_test.cc:493,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:494,1
    - Dst: auto::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/model_interface_test.cc:494,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:497,1
    - Dst: auto::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/model_interface_test.cc:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 499
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - EXPECT_TRUE
    - sentencepiece::MakeBaseModelProto
    - EXPECT_FALSE
    - auto::VerifyOutputsEquivalent
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, VerifyOutputsEquivalent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:503,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:505,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:506,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:507,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - auto::status
    - ModelProto::add_pieces
    - EXPECT_FALSE
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, TooLongPieceModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:34,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:35,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:36,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:37,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:38,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:40,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:41,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:42,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:43,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:44,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - TrainerSpec::ModelType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: sentencepiece::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 14
    functionsReached:
    - auto*::set_type
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: "ModelProto MakeBaseModelProto(TrainerSpec::ModelType type,\n                              bool
      byte_fallback = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:52,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:53,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/model_interface_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: sentencepiece::AddPiece
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 26
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:58,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:59,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:59,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - byte
    argTypes:
    - ModelProto*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: sentencepiece::AddBytePiece
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 2
    functionsReached:
    - ModelProto*::add_pieces
    - sentencepiece::ByteToPiece
    - auto*::set_piece
    - auto*::set_type
    linkageType: ''
    returnType: void
    signature: void AddBytePiece(ModelProto *model_proto, unsigned char byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:66,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:67,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:68,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:69,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:69,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:73,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:74,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:76,1
    - Dst: auto::unk_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:77,1
    - Dst: auto::bos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:78,1
    - Dst: auto::eos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:79,1
    - Dst: auto::pad_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:79,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:83,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:84,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:85,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:86,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:87,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:88,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:90,1
    - Dst: auto::unk_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:91,1
    - Dst: auto::bos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:92,1
    - Dst: auto::eos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:93,1
    - Dst: auto::pad_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:93,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:97,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:98,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:99,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:100,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:101,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:102,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:104,1
    - Dst: auto::unk_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:105,1
    - Dst: auto::bos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:106,1
    - Dst: auto::eos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:107,1
    - Dst: auto::pad_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 109
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - auto::pad_piece
    - auto::bos_piece
    - sentencepiece::MakeBaseModelProto
    - EXPECT_EQ
    - ModelProto::trainer_spec
    - auto::eos_piece
    - ModelProto::mutable_trainer_spec
    - auto::unk_piece
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, GetDefaultPieceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:113,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:114,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:115,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:116,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:117,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:120,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/model_interface_test.cc:120,1
    - Dst: auto::model_proto
      Src: /src/sentencepiece/src/model_interface_test.cc:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - auto::model_proto
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - sentencepiece::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SetModelInterfaceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:127,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:129,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:130,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:131,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:132,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:133,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:134,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:135,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:140,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/model_interface_test.cc:140,1
    - Dst: auto::model_proto
      Src: /src/sentencepiece/src/model_interface_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:143,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:144,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:145,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:146,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:147,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:148,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:149,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:150,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:151,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:152,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:154,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:155,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:156,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:157,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:158,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:159,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:160,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:161,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:163,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:163,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:164,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:164,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:165,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:165,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:166,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:166,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:167,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:167,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:168,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:168,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:169,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:169,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:170,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:170,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:172,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:172,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:173,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:173,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:174,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:174,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:175,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:176,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:176,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:177,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:177,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:178,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:178,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:179,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:179,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:181,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:181,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:182,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:182,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:183,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:183,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:184,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:184,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:185,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:185,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:186,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:186,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:187,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:187,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:188,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:188,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:190,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:190,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:191,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:191,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:192,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:192,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:193,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:193,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:194,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:194,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:195,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:195,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:196,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:196,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:197,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:197,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:199,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:199,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:200,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:200,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:201,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:201,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:202,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:202,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:203,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:203,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:204,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:204,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:205,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:205,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:206,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 208
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - auto::GetScore
    - ModelProto::mutable_pieces
    - sentencepiece::AddPiece
    - auto::model_proto
    - auto::IdToPiece
    - EXPECT_TRUE
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - sentencepiece::MakeBaseModelProto
    - auto::IsUnknown
    - auto::IsUnused
    - EXPECT_FALSE
    - auto::IsControl
    - auto::IsUserDefined
    - auto::PieceToId
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, PieceToIdTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:213,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:214,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:215,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:216,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:216,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:221,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:222,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:223,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:224,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:225,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:225,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:230,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:231,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:232,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:233,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:233,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:238,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:239,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:240,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:241,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 243
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - ModelProto::mutable_pieces
    - sentencepiece::AddPiece
    - auto::status
    - sentencepiece::MakeBaseModelProto
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, InvalidModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:247,1
    - Dst: sentencepiece::AddBytePiece
      Src: /src/sentencepiece/src/model_interface_test.cc:249,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:251,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:252,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:253,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:253,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:258,1
    - Dst: sentencepiece::AddBytePiece
      Src: /src/sentencepiece/src/model_interface_test.cc:260,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:262,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:263,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:264,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:264,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:269,1
    - Dst: sentencepiece::AddBytePiece
      Src: /src/sentencepiece/src/model_interface_test.cc:271,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:273,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:275,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 277
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - auto::status
    - sentencepiece::AddBytePiece
    - EXPECT_TRUE
    - sentencepiece::MakeBaseModelProto
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, ByteFallbackModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/sentencepiece/src/model_interface_test.cc:286,1
    - Dst: rand
      Src: /src/sentencepiece/src/model_interface_test.cc:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - length
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 292
    functionName: sentencepiece::RandomString
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 2
    functionsReached:
    - rand
    linkageType: ''
    returnType: std::string
    signature: std::string RandomString(int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:299,1
    - Dst: sentencepiece::RandomString
      Src: /src/sentencepiece/src/model_interface_test.cc:301,1
    - Dst: absl::flat_hash_map::find
      Src: /src/sentencepiece/src/model_interface_test.cc:302,1
    - Dst: absl::flat_hash_map::end
      Src: /src/sentencepiece/src/model_interface_test.cc:302,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/model_interface_test.cc:305,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/model_interface_test.cc:306,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:307,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:312,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:312,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:315,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 319
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - ModelProto::pieces_size
    - absl::flat_hash_map::end
    - sentencepiece::AddPiece
    - absl::flat_hash_map::find
    - auto::IdToPiece
    - sentencepiece::MakeBaseModelProto
    - EXPECT_EQ
    - auto::PieceToId
    - sentencepiece::RandomString
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, PieceToIdStressTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:323,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:324,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:324,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:325,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:326,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:327,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:328,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:332,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:333,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:333,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:337,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:341,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:342,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:342,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:343,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:344,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:345,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:349,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:350,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/model_interface_test.cc:350,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:354,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:355,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:355,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 358
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SplitIntoWords
    - auto::size
    - auto::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SplitIntoWordsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:362,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:363,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:366,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:367,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:372,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:373,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:375,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:376,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:381,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:382,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:383,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:385,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:389,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:390,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/model_interface_test.cc:390,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:394,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:395,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:395,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:396,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:401,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:401,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:402,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:403,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:408,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:408,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:409,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:410,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:411,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 414
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SplitIntoWords
    - auto::size
    - auto::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SplitIntoWordsSuffixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:419,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:420,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:420,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:421,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:422,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:423,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:424,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:428,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:429,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:429,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:434,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:435,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:435,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:436,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:440,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:441,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:441,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:446,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:447,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:447,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:449,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:453,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:454,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:454,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 458
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::SplitIntoWords
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SplitIntoWordsWhiteSpaceOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:461,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:461,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:462,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:462,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:463,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:463,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:464,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:464,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:465,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 466
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::ByteToPiece
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, ByteToPieceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:470,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:470,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:471,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:471,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:472,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:472,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:473,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:473,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:474,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:477,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:477,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:478,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:478,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:479,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:479,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:480,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:481,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:481,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:482,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 483
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::PieceToByte
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, PieceToByteTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:487,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:488,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:489,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:490,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:493,1
    - Dst: auto::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/model_interface_test.cc:493,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:494,1
    - Dst: auto::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/model_interface_test.cc:494,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:497,1
    - Dst: auto::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/model_interface_test.cc:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 499
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - EXPECT_TRUE
    - sentencepiece::MakeBaseModelProto
    - EXPECT_FALSE
    - auto::VerifyOutputsEquivalent
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, VerifyOutputsEquivalent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:503,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:505,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:506,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:507,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - auto::status
    - ModelProto::add_pieces
    - EXPECT_FALSE
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, TooLongPieceModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:34,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:35,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:36,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:37,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:38,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:40,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:41,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:42,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:43,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:44,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - type
    argTypes:
    - TrainerSpec::ModelType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 48
    functionName: sentencepiece::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 21
    functionsReached:
    - auto*::set_type
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: "ModelProto MakeBaseModelProto(TrainerSpec::ModelType type,\n                              bool
      byte_fallback = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:52,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:53,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/model_interface_test.cc:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: sentencepiece::AddPiece
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 33
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:58,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:59,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:59,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/model_interface_test.cc:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - byte
    argTypes:
    - ModelProto*
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: sentencepiece::AddBytePiece
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 3
    functionsReached:
    - ModelProto*::add_pieces
    - sentencepiece::ByteToPiece
    - auto*::set_piece
    - auto*::set_type
    linkageType: ''
    returnType: void
    signature: void AddBytePiece(ModelProto *model_proto, unsigned char byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:66,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:66,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:67,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:68,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:69,1
    - Dst: ModelProto::trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:69,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:73,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:74,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:76,1
    - Dst: auto::unk_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:77,1
    - Dst: auto::bos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:78,1
    - Dst: auto::eos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:79,1
    - Dst: auto::pad_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:79,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:83,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:84,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:85,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:86,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:87,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:88,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:90,1
    - Dst: auto::unk_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:91,1
    - Dst: auto::bos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:92,1
    - Dst: auto::eos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:93,1
    - Dst: auto::pad_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:93,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:97,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:98,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:99,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:100,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:101,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/model_interface_test.cc:102,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:104,1
    - Dst: auto::unk_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:105,1
    - Dst: auto::bos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:106,1
    - Dst: auto::eos_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:107,1
    - Dst: auto::pad_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 109
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - auto::pad_piece
    - auto::bos_piece
    - sentencepiece::MakeBaseModelProto
    - EXPECT_EQ
    - ModelProto::trainer_spec
    - auto::eos_piece
    - ModelProto::mutable_trainer_spec
    - auto::unk_piece
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, GetDefaultPieceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:113,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:114,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:115,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:116,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:117,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:120,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/model_interface_test.cc:120,1
    - Dst: auto::model_proto
      Src: /src/sentencepiece/src/model_interface_test.cc:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 123
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - auto::model_proto
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - sentencepiece::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SetModelInterfaceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:127,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:129,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:130,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:131,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:132,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:133,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:134,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:135,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:140,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/model_interface_test.cc:140,1
    - Dst: auto::model_proto
      Src: /src/sentencepiece/src/model_interface_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:143,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:144,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:145,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:146,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:147,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:148,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:149,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:150,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:151,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:152,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:154,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:155,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:156,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:157,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:158,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:159,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:160,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:161,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:163,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:163,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:164,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:164,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:165,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:165,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:166,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:166,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:167,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:167,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:168,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:168,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:169,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:169,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:170,1
    - Dst: auto::IsUnknown
      Src: /src/sentencepiece/src/model_interface_test.cc:170,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:172,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:172,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:173,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:173,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:174,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:174,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:175,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:176,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:176,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:177,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:177,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:178,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:178,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:179,1
    - Dst: auto::IsControl
      Src: /src/sentencepiece/src/model_interface_test.cc:179,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:181,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:181,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:182,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:182,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:183,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:183,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:184,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:184,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:185,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:185,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:186,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:186,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:187,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:187,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:188,1
    - Dst: auto::IsUnused
      Src: /src/sentencepiece/src/model_interface_test.cc:188,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:190,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:190,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:191,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:191,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:192,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:192,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:193,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:193,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:194,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:194,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:195,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:195,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:196,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:196,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:197,1
    - Dst: auto::IsUserDefined
      Src: /src/sentencepiece/src/model_interface_test.cc:197,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:199,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:199,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:200,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:200,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:201,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:201,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:202,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:202,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:203,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:203,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:204,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:204,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:205,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:205,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/model_interface_test.cc:206,1
    - Dst: auto::GetScore
      Src: /src/sentencepiece/src/model_interface_test.cc:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 208
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - auto::GetScore
    - ModelProto::mutable_pieces
    - sentencepiece::AddPiece
    - auto::model_proto
    - auto::IdToPiece
    - EXPECT_TRUE
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - sentencepiece::MakeBaseModelProto
    - auto::IsUnknown
    - auto::IsUnused
    - EXPECT_FALSE
    - auto::IsControl
    - auto::IsUserDefined
    - auto::PieceToId
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, PieceToIdTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:213,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:214,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:215,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:216,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:216,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:221,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:222,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:223,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:224,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:225,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:225,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:230,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:231,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:232,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:233,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:233,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:238,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:239,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:240,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:241,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 243
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - ModelProto::mutable_pieces
    - sentencepiece::AddPiece
    - auto::status
    - sentencepiece::MakeBaseModelProto
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, InvalidModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:247,1
    - Dst: sentencepiece::AddBytePiece
      Src: /src/sentencepiece/src/model_interface_test.cc:249,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:251,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:252,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:253,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:253,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:258,1
    - Dst: sentencepiece::AddBytePiece
      Src: /src/sentencepiece/src/model_interface_test.cc:260,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:262,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:263,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:264,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:264,1
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:269,1
    - Dst: sentencepiece::AddBytePiece
      Src: /src/sentencepiece/src/model_interface_test.cc:271,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:273,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:275,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:275,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 277
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - auto::status
    - sentencepiece::AddBytePiece
    - EXPECT_TRUE
    - sentencepiece::MakeBaseModelProto
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, ByteFallbackModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rand
      Src: /src/sentencepiece/src/model_interface_test.cc:286,1
    - Dst: rand
      Src: /src/sentencepiece/src/model_interface_test.cc:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - length
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 292
    functionName: sentencepiece::RandomString
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 3
    functionsReached:
    - rand
    linkageType: ''
    returnType: std::string
    signature: std::string RandomString(int length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:299,1
    - Dst: sentencepiece::RandomString
      Src: /src/sentencepiece/src/model_interface_test.cc:301,1
    - Dst: absl::flat_hash_map::find
      Src: /src/sentencepiece/src/model_interface_test.cc:302,1
    - Dst: absl::flat_hash_map::end
      Src: /src/sentencepiece/src/model_interface_test.cc:302,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/model_interface_test.cc:305,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/model_interface_test.cc:306,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:307,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:312,1
    - Dst: auto::PieceToId
      Src: /src/sentencepiece/src/model_interface_test.cc:312,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:315,1
    - Dst: auto::IdToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:315,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 319
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - ModelProto::pieces_size
    - absl::flat_hash_map::end
    - sentencepiece::AddPiece
    - absl::flat_hash_map::find
    - auto::IdToPiece
    - sentencepiece::MakeBaseModelProto
    - EXPECT_EQ
    - auto::PieceToId
    - sentencepiece::RandomString
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, PieceToIdStressTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:323,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:324,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:324,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:325,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:326,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:327,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:328,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:332,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:333,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:333,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:337,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:341,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:342,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:342,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:343,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:344,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:345,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:349,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:350,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/model_interface_test.cc:350,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:354,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:355,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:355,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 358
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SplitIntoWords
    - auto::size
    - auto::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SplitIntoWordsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:362,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:363,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:363,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:364,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:365,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:366,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:367,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:371,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:372,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:372,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:373,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:374,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:375,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:376,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:380,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:381,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:381,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:382,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:383,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:385,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:389,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:390,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/model_interface_test.cc:390,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:394,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:395,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:395,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:396,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:401,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:401,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:402,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:403,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:407,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:408,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:408,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:409,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:410,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:411,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 414
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SplitIntoWords
    - auto::size
    - auto::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SplitIntoWordsSuffixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:419,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:420,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:420,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:421,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:422,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:423,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:424,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:428,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:429,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:429,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:434,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:435,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:435,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:436,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:440,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:441,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:441,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:446,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:447,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:447,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:449,1
    - Dst: sentencepiece::SplitIntoWords
      Src: /src/sentencepiece/src/model_interface_test.cc:453,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:454,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/model_interface_test.cc:454,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 458
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::SplitIntoWords
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, SplitIntoWordsWhiteSpaceOnly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:461,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:461,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:462,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:462,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:463,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:463,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:464,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:464,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:465,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 466
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::ByteToPiece
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, ByteToPieceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:470,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:470,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:471,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:471,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:472,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:472,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:473,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:473,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:474,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:474,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:477,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:477,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:478,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:478,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:479,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:479,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:480,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:480,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:481,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:481,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/model_interface_test.cc:482,1
    - Dst: sentencepiece::PieceToByte
      Src: /src/sentencepiece/src/model_interface_test.cc:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 483
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::PieceToByte
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, PieceToByteTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MakeBaseModelProto
      Src: /src/sentencepiece/src/model_interface_test.cc:487,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:488,1
    - Dst: sentencepiece::AddPiece
      Src: /src/sentencepiece/src/model_interface_test.cc:489,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:490,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:493,1
    - Dst: auto::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/model_interface_test.cc:493,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/model_interface_test.cc:494,1
    - Dst: auto::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/model_interface_test.cc:494,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:497,1
    - Dst: auto::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/model_interface_test.cc:497,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 499
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - sentencepiece::AddPiece
    - EXPECT_TRUE
    - sentencepiece::MakeBaseModelProto
    - EXPECT_FALSE
    - auto::VerifyOutputsEquivalent
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, VerifyOutputsEquivalent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/model_interface_test.cc:503,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/model_interface_test.cc:505,1
    - Dst: sentencepiece::ModelFactory::Create
      Src: /src/sentencepiece/src/model_interface_test.cc:506,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/model_interface_test.cc:507,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/model_interface_test.cc:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 508
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/model_interface_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ModelFactory::Create
    - auto::status
    - ModelProto::add_pieces
    - EXPECT_FALSE
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(ModelInterfaceTest, TooLongPieceModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unicode_script_test.cc:25,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:26,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unicode_script_test.cc:26,1
    - Dst: sentencepiece::unicode_script::GetScript
      Src: /src/sentencepiece/src/unicode_script_test.cc:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: sentencepiece::unicode_script::GetScriptType
    functionSourceFile: /src/sentencepiece/src/unicode_script_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - CHECK_EQ
    - auto::size
    - sentencepiece::unicode_script::GetScript
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScriptType(absl::string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:31,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:32,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:33,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:34,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:35,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:36,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:37,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:38,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:39,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:40,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:41,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: sentencepiece::unicode_script::TEST
    functionSourceFile: /src/sentencepiece/src/unicode_script_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unicode_script::GetScriptType
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnicodeScript, GetScriptTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unicode_script_test.cc:25,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:26,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unicode_script_test.cc:26,1
    - Dst: sentencepiece::unicode_script::GetScript
      Src: /src/sentencepiece/src/unicode_script_test.cc:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: sentencepiece::unicode_script::GetScriptType
    functionSourceFile: /src/sentencepiece/src/unicode_script_test.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - CHECK_EQ
    - auto::size
    - sentencepiece::unicode_script::GetScript
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScriptType(absl::string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:31,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:32,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:33,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:34,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:35,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:36,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:37,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:38,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:39,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:40,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:41,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: sentencepiece::unicode_script::TEST
    functionSourceFile: /src/sentencepiece/src/unicode_script_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unicode_script::GetScriptType
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnicodeScript, GetScriptTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unicode_script_test.cc:25,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:26,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unicode_script_test.cc:26,1
    - Dst: sentencepiece::unicode_script::GetScript
      Src: /src/sentencepiece/src/unicode_script_test.cc:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: sentencepiece::unicode_script::GetScriptType
    functionSourceFile: /src/sentencepiece/src/unicode_script_test.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - CHECK_EQ
    - auto::size
    - sentencepiece::unicode_script::GetScript
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScriptType(absl::string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:31,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:32,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:33,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:34,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:35,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:36,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:37,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:38,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:39,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:40,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:41,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: sentencepiece::unicode_script::TEST
    functionSourceFile: /src/sentencepiece/src/unicode_script_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unicode_script::GetScriptType
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnicodeScript, GetScriptTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/unicode_script_test.cc:25,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:26,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unicode_script_test.cc:26,1
    - Dst: sentencepiece::unicode_script::GetScript
      Src: /src/sentencepiece/src/unicode_script_test.cc:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 28
    functionName: sentencepiece::unicode_script::GetScriptType
    functionSourceFile: /src/sentencepiece/src/unicode_script_test.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - CHECK_EQ
    - auto::size
    - sentencepiece::unicode_script::GetScript
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScriptType(absl::string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:31,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:31,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:32,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:32,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:33,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:33,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:34,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:34,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:35,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:35,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:36,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:36,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:37,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:38,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:38,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:39,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:39,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:40,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unicode_script_test.cc:41,1
    - Dst: sentencepiece::unicode_script::GetScriptType
      Src: /src/sentencepiece/src/unicode_script_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 42
    functionName: sentencepiece::unicode_script::TEST
    functionSourceFile: /src/sentencepiece/src/unicode_script_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unicode_script::GetScriptType
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnicodeScript, GetScriptTypeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1225
    EdgeCount: 1225
    ICount: 3148
    argCount: 1
    argNames:
    - smap
    argTypes:
    - absl::flat_hash_map<char32_t, ScriptType>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 1960
    functionName: sentencepiece::unicode_script::InitTable
    functionSourceFile: /src/sentencepiece/src/unicode_script_map.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitTable(absl::flat_hash_map<char32_t, ScriptType> *smap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1225
    EdgeCount: 1225
    ICount: 3148
    argCount: 1
    argNames:
    - smap
    argTypes:
    - absl::flat_hash_map<char32_t, ScriptType>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 1960
    functionName: sentencepiece::unicode_script::InitTable
    functionSourceFile: /src/sentencepiece/src/unicode_script_map.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitTable(absl::flat_hash_map<char32_t, ScriptType> *smap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1225
    EdgeCount: 1225
    ICount: 3148
    argCount: 1
    argNames:
    - smap
    argTypes:
    - absl::flat_hash_map<char32_t, ScriptType>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 1960
    functionName: sentencepiece::unicode_script::InitTable
    functionSourceFile: /src/sentencepiece/src/unicode_script_map.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitTable(absl::flat_hash_map<char32_t, ScriptType> *smap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1225
    EdgeCount: 1225
    ICount: 3148
    argCount: 1
    argNames:
    - smap
    argTypes:
    - absl::flat_hash_map<char32_t, ScriptType>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 1960
    functionName: sentencepiece::unicode_script::InitTable
    functionSourceFile: /src/sentencepiece/src/unicode_script_map.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitTable(absl::flat_hash_map<char32_t, ScriptType> *smap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1225
    EdgeCount: 1225
    ICount: 3148
    argCount: 1
    argNames:
    - smap
    argTypes:
    - absl::flat_hash_map<char32_t, ScriptType>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 1960
    functionName: sentencepiece::unicode_script::InitTable
    functionSourceFile: /src/sentencepiece/src/unicode_script_map.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitTable(absl::flat_hash_map<char32_t, ScriptType> *smap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1225
    EdgeCount: 1225
    ICount: 3148
    argCount: 1
    argNames:
    - smap
    argTypes:
    - absl::flat_hash_map<char32_t, ScriptType>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 1960
    functionName: sentencepiece::unicode_script::InitTable
    functionSourceFile: /src/sentencepiece/src/unicode_script_map.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitTable(absl::flat_hash_map<char32_t, ScriptType> *smap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1225
    EdgeCount: 1225
    ICount: 3148
    argCount: 1
    argNames:
    - smap
    argTypes:
    - absl::flat_hash_map<char32_t, ScriptType>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 1960
    functionName: sentencepiece::unicode_script::InitTable
    functionSourceFile: /src/sentencepiece/src/unicode_script_map.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitTable(absl::flat_hash_map<char32_t, ScriptType> *smap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1225
    EdgeCount: 1225
    ICount: 3148
    argCount: 1
    argNames:
    - smap
    argTypes:
    - absl::flat_hash_map<char32_t, ScriptType>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1960
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 1960
    functionName: sentencepiece::unicode_script::InitTable
    functionSourceFile: /src/sentencepiece/src/unicode_script_map.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void InitTable(absl::flat_hash_map<char32_t, ScriptType> *smap)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sentencepiece/src/spm_encode_main.cc:56,1
    - Dst: std::string
      Src: /src/sentencepiece/src/spm_encode_main.cc:56,1
    - Dst: push_back
      Src: /src/sentencepiece/src/spm_encode_main.cc:59,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:59,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:62,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/sentencepiece/src/spm_encode_main.cc:63,1
    - Dst: sentencepiece::SetRandomGeneratorSeed
      Src: /src/sentencepiece/src/spm_encode_main.cc:64,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:64,1
    - Dst: empty
      Src: /src/sentencepiece/src/spm_encode_main.cc:67,1
    - Dst: push_back
      Src: /src/sentencepiece/src/spm_encode_main.cc:68,1
    - Dst: QCHECK
      Src: /src/sentencepiece/src/spm_encode_main.cc:70,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:70,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_encode_main.cc:73,1
    - Dst: Load
      Src: /src/sentencepiece/src/spm_encode_main.cc:73,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:73,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_encode_main.cc:74,1
    - Dst: SetEncodeExtraOptions
      Src: /src/sentencepiece/src/spm_encode_main.cc:74,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:74,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/spm_encode_main.cc:77,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:77,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_encode_main.cc:78,1
    - Dst: status
      Src: /src/sentencepiece/src/spm_encode_main.cc:78,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:90,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:91,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:93,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_encode_main.cc:95,1
    - Dst: Encode
      Src: /src/sentencepiece/src/spm_encode_main.cc:95,1
    - Dst: pieces
      Src: /src/sentencepiece/src/spm_encode_main.cc:96,1
    - Dst: IsUnknown
      Src: /src/sentencepiece/src/spm_encode_main.cc:97,1
    - Dst: id
      Src: /src/sentencepiece/src/spm_encode_main.cc:97,1
    - Dst: IsControl
      Src: /src/sentencepiece/src/spm_encode_main.cc:97,1
    - Dst: id
      Src: /src/sentencepiece/src/spm_encode_main.cc:97,1
    - Dst: piece
      Src: /src/sentencepiece/src/spm_encode_main.cc:98,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:101,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_encode_main.cc:103,1
    - Dst: Encode
      Src: /src/sentencepiece/src/spm_encode_main.cc:103,1
    - Dst: WriteLine
      Src: /src/sentencepiece/src/spm_encode_main.cc:104,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/spm_encode_main.cc:104,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:106,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_encode_main.cc:108,1
    - Dst: Encode
      Src: /src/sentencepiece/src/spm_encode_main.cc:108,1
    - Dst: WriteLine
      Src: /src/sentencepiece/src/spm_encode_main.cc:109,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/spm_encode_main.cc:109,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:111,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_encode_main.cc:112,1
    - Dst: Encode
      Src: /src/sentencepiece/src/spm_encode_main.cc:112,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:113,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_encode_main.cc:115,1
    - Dst: SampleEncode
      Src: /src/sentencepiece/src/spm_encode_main.cc:115,1
    - Dst: WriteLine
      Src: /src/sentencepiece/src/spm_encode_main.cc:116,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/spm_encode_main.cc:116,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:118,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_encode_main.cc:120,1
    - Dst: SampleEncode
      Src: /src/sentencepiece/src/spm_encode_main.cc:120,1
    - Dst: WriteLine
      Src: /src/sentencepiece/src/spm_encode_main.cc:121,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/spm_encode_main.cc:121,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:123,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_encode_main.cc:125,1
    - Dst: SampleEncode
      Src: /src/sentencepiece/src/spm_encode_main.cc:125,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:127,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_encode_main.cc:129,1
    - Dst: NBestEncode
      Src: /src/sentencepiece/src/spm_encode_main.cc:129,1
    - Dst: WriteLine
      Src: /src/sentencepiece/src/spm_encode_main.cc:131,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/spm_encode_main.cc:131,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:134,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_encode_main.cc:136,1
    - Dst: NBestEncode
      Src: /src/sentencepiece/src/spm_encode_main.cc:136,1
    - Dst: WriteLine
      Src: /src/sentencepiece/src/spm_encode_main.cc:138,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/spm_encode_main.cc:138,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_encode_main.cc:141,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_encode_main.cc:143,1
    - Dst: NBestEncode
      Src: /src/sentencepiece/src/spm_encode_main.cc:143,1
    - Dst: process
      Src: /src/sentencepiece/src/spm_encode_main.cc:154,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 155
    functionName: ABSL_FLAG
    functionSourceFile: /src/sentencepiece/src/spm_encode_main.cc
    functionUses: 0
    functionsReached:
    - IsControl
    - absl::StrJoin
    - empty
    - id
    - sentencepiece::filesystem::NewWritableFile
    - std::numeric_limits<uint32_t>::max
    - status
    - piece
    - SetEncodeExtraOptions
    - SampleEncode
    - NBestEncode
    - std::string
    - WriteLine
    - Encode
    - QCHECK
    - sentencepiece::SetRandomGeneratorSeed
    - push_back
    - process
    - QCHECK_OK
    - pieces
    - absl::GetFlag
    - IsUnknown
    - Load
    linkageType: ''
    returnType: void
    signature: "void ABSL_FLAG(int32_t, nbest_size, 10, \"NBest size\");\nABSL_FLAG(double,
      alpha, 0.5, \"Smoothing parameter for sampling mode.\");\nABSL_FLAG(uint32_t,
      random_seed, std::numeric_limits<uint32_t>::max(),\n          \"Seed value for
      random generator.\");\n\nABSL_FLAG(bool, generate_vocabulary, false,\n          \"Generates
      vocabulary file instead of segmentation\");\n\nint main(int argc, char* argv[])
      {\n  sentencepiece::ScopedResourceDestructor cleaner;\n  sentencepiece::ParseCommandLineFlags(argv[0],
      &argc, &argv, true);\n  std::vector<std::string> rest_args;\n\n  if (absl::GetFlag(FLAGS_input).empty())
      {\n    for (int i = 1; i < argc; ++i) {\n      rest_args.push_back(std::string(argv[i]));\n
      \   }\n  } else {\n    rest_args.push_back(absl::GetFlag(FLAGS_input));\n  }\n\n
      \ if (absl::GetFlag(FLAGS_random_seed) !=\n      std::numeric_limits<uint32_t>::max())
      {\n    sentencepiece::SetRandomGeneratorSeed(absl::GetFlag(FLAGS_random_seed));\n
      \ }\n\n  if (rest_args.empty())\n    rest_args.push_back(\"\");  // empty means
      that reading from stdin.\n\n  QCHECK(!absl::GetFlag(FLAGS_model).empty());\n\n
      \ sentencepiece::SentencePieceProcessor sp;\n  QCHECK_OK(sp.Load(absl::GetFlag(FLAGS_model)));\n
      \ QCHECK_OK(sp.SetEncodeExtraOptions(absl::GetFlag(FLAGS_extra_options)));\n\n
      \ auto output =\n      sentencepiece::filesystem::NewWritableFile(absl::GetFlag(FLAGS_output));\n
      \ QCHECK_OK(output->status());\n\n  std::string line;\n  std::vector<std::string>
      sps;\n  std::vector<int> ids;\n  std::vector<std::vector<std::string>> nbest_sps;\n
      \ std::vector<std::vector<int>> nbest_ids;\n  absl::flat_hash_map<std::string,
      int> vocab;\n  sentencepiece::SentencePieceText spt;\n  sentencepiece::NBestSentencePieceText
      nbest_spt;\n  std::function<void(absl::string_view line)> process;\n\n  const
      int nbest_size = absl::GetFlag(FLAGS_nbest_size);\n  const float alpha = absl::GetFlag(FLAGS_alpha);\n\n
      \ if (absl::GetFlag(FLAGS_generate_vocabulary)) {\n    process = [&](absl::string_view
      line) {\n      QCHECK_OK(sp.Encode(line, &spt));\n      for (const auto& piece
      : spt.pieces()) {\n        if (!sp.IsUnknown(piece.id()) && !sp.IsControl(piece.id()))\n
      \         vocab[piece.piece()]++;\n      }\n    };\n  } else if (absl::GetFlag(FLAGS_output_format)
      == \"piece\") {\n    process = [&](absl::string_view line) {\n      QCHECK_OK(sp.Encode(line,
      &sps));\n      output->WriteLine(absl::StrJoin(sps, \" \"));\n    };\n  } else
      if (absl::GetFlag(FLAGS_output_format) == \"id\") {\n    process = [&](absl::string_view
      line) {\n      QCHECK_OK(sp.Encode(line, &ids));\n      output->WriteLine(absl::StrJoin(ids,
      \" \"));\n    };\n  } else if (absl::GetFlag(FLAGS_output_format) == \"proto\")
      {\n    process = [&](absl::string_view line) { QCHECK_OK(sp.Encode(line, &spt));
      };\n  } else if (absl::GetFlag(FLAGS_output_format) == \"sample_piece\") {\n
      \   process = [&](absl::string_view line) {\n      QCHECK_OK(sp.SampleEncode(line,
      nbest_size, alpha, &sps));\n      output->WriteLine(absl::StrJoin(sps, \" \"));\n
      \   };\n  } else if (absl::GetFlag(FLAGS_output_format) == \"sample_id\") {\n
      \   process = [&](absl::string_view line) {\n      QCHECK_OK(sp.SampleEncode(line,
      nbest_size, alpha, &ids));\n      output->WriteLine(absl::StrJoin(ids, \" \"));\n
      \   };\n  } else if (absl::GetFlag(FLAGS_output_format) == \"sample_proto\")
      {\n    process = [&](absl::string_view line) {\n      QCHECK_OK(sp.SampleEncode(line,
      nbest_size, alpha, &spt));\n    };\n  } else if (absl::GetFlag(FLAGS_output_format)
      == \"nbest_piece\") {\n    process = [&](absl::string_view line) {\n      QCHECK_OK(sp.NBestEncode(line,
      nbest_size, &nbest_sps));\n      for (const auto& result : nbest_sps) {\n        output->WriteLine(absl::StrJoin(result,
      \" \"));\n      }\n    };\n  } else if (absl::GetFlag(FLAGS_output_format) ==
      \"nbest_id\") {\n    process = [&](absl::string_view line) {\n      QCHECK_OK(sp.NBestEncode(line,
      nbest_size, &nbest_ids));\n      for (const auto& result : nbest_ids) {\n        output->WriteLine(absl::StrJoin(result,
      \" \"));\n      }\n    };\n  } else if (absl::GetFlag(FLAGS_output_format) ==
      \"nbest_proto\") {\n    process = [&](absl::string_view line) {\n      QCHECK_OK(sp.NBestEncode(line,
      nbest_size, &nbest_spt));\n    };\n  } else {\n    LOG(FATAL) << \"Unknown output
      format: \"\n               << absl::GetFlag(FLAGS_output_format);\n  }\n\n  for
      (const auto& filename : rest_args) {\n    auto input = sentencepiece::filesystem::NewReadableFile(filename);\n
      \   QCHECK_OK(input->status());\n    while (input->ReadLine(&line)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:39,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:39,1
    - Dst: TrainerModel::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerModel::Encode
    - EXPECT_EQ
    - EncodeResult
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, TrainerModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:55,1
    - Dst: TrainerModel::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:55,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:55,1
    - Dst: Trainer::PruneUnreachableSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:58,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 67
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerModel::SetSentencePieces
    - Trainer::PruneUnreachableSentencePieces
    - std::vector::push_back
    - std::move
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, PruneUnreachableSentencePiecesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:75,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:75,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:77,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:77,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:79,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:81,1
    - Dst: TrainerSpec::set_input_format
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:86,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:87,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:88,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:89,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:90,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:93,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:94,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:102,1
    - Dst: Trainer::LoadSentences
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:102,1
    - Dst: Trainer::MakeSeedSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:103,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:106,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:114,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:114,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:119,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:122,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:123,1
    - Dst: pieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:123,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:129,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:129,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:129,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - ' input'
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 132
    functionName: sentencepiece::unigram::RunTrainer
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrJoin
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - TrainerSpec::set_model_type
    - EXPECT_TRUE
    - Trainer::LoadSentences
    - SentencePieceProcessor::Load
    - TrainerSpec::set_model_prefix
    - TrainerSpec::set_input_format
    - pieces_size
    - TrainerSpec::add_input
    - auto::WriteLine
    - std::sort
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - NormalizerSpec::set_name
    - std::vector::begin
    - std::vector::end
    - Trainer::MakeSeedSentencePieces
    - pieces
    - sentencepiece::filesystem::NewWritableFile
    - EXPECT_OK
    linkageType: ''
    returnType: TrainerResult
    signature: TrainerResult RunTrainer(const std::vector<std::string>& input, int
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::RunTrainer
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:141,1
    - Dst: seed_pieces_and_probs::size
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::RunTrainer
    - EXPECT_EQ
    - seed_pieces_and_probs::size
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:158,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:159,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:160,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:169,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:173,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:174,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:193,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 200
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - SentencePieceProcessor::IsUnknown
    - LOG
    - EXPECT_FALSE
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:158,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:159,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:160,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:169,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:173,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:174,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:193,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 200
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - SentencePieceProcessor::IsUnknown
    - LOG
    - EXPECT_FALSE
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:39,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:39,1
    - Dst: TrainerModel::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerModel::Encode
    - EXPECT_EQ
    - EncodeResult
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, TrainerModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:55,1
    - Dst: TrainerModel::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:55,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:55,1
    - Dst: Trainer::PruneUnreachableSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:58,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 67
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerModel::SetSentencePieces
    - Trainer::PruneUnreachableSentencePieces
    - std::vector::push_back
    - std::move
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, PruneUnreachableSentencePiecesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:75,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:75,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:77,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:77,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:79,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:81,1
    - Dst: TrainerSpec::set_input_format
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:86,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:87,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:88,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:89,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:90,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:93,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:94,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:102,1
    - Dst: Trainer::LoadSentences
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:102,1
    - Dst: Trainer::MakeSeedSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:103,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:106,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:114,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:114,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:119,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:122,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:123,1
    - Dst: pieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:123,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:129,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:129,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:129,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - ' input'
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 132
    functionName: sentencepiece::unigram::RunTrainer
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrJoin
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - TrainerSpec::set_model_type
    - EXPECT_TRUE
    - Trainer::LoadSentences
    - SentencePieceProcessor::Load
    - TrainerSpec::set_model_prefix
    - TrainerSpec::set_input_format
    - pieces_size
    - TrainerSpec::add_input
    - auto::WriteLine
    - std::sort
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - NormalizerSpec::set_name
    - std::vector::begin
    - std::vector::end
    - Trainer::MakeSeedSentencePieces
    - pieces
    - sentencepiece::filesystem::NewWritableFile
    - EXPECT_OK
    linkageType: ''
    returnType: TrainerResult
    signature: TrainerResult RunTrainer(const std::vector<std::string>& input, int
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::RunTrainer
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:141,1
    - Dst: seed_pieces_and_probs::size
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::RunTrainer
    - EXPECT_EQ
    - seed_pieces_and_probs::size
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:158,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:159,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:160,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:169,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:173,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:174,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:193,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 200
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - SentencePieceProcessor::IsUnknown
    - LOG
    - EXPECT_FALSE
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:158,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:159,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:160,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:169,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:173,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:174,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:193,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 200
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - SentencePieceProcessor::IsUnknown
    - LOG
    - EXPECT_FALSE
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:39,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:39,1
    - Dst: TrainerModel::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerModel::Encode
    - EXPECT_EQ
    - EncodeResult
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, TrainerModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:55,1
    - Dst: TrainerModel::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:55,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:55,1
    - Dst: Trainer::PruneUnreachableSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:58,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 67
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerModel::SetSentencePieces
    - Trainer::PruneUnreachableSentencePieces
    - std::vector::push_back
    - std::move
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, PruneUnreachableSentencePiecesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:75,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:75,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:77,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:77,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:79,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:81,1
    - Dst: TrainerSpec::set_input_format
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:86,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:87,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:88,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:89,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:90,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:93,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:94,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:102,1
    - Dst: Trainer::LoadSentences
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:102,1
    - Dst: Trainer::MakeSeedSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:103,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:106,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:114,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:114,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:119,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:122,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:123,1
    - Dst: pieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:123,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:129,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:129,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:129,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - ' input'
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 132
    functionName: sentencepiece::unigram::RunTrainer
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrJoin
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - TrainerSpec::set_model_type
    - EXPECT_TRUE
    - Trainer::LoadSentences
    - SentencePieceProcessor::Load
    - TrainerSpec::set_model_prefix
    - TrainerSpec::set_input_format
    - pieces_size
    - TrainerSpec::add_input
    - auto::WriteLine
    - std::sort
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - NormalizerSpec::set_name
    - std::vector::begin
    - std::vector::end
    - Trainer::MakeSeedSentencePieces
    - pieces
    - sentencepiece::filesystem::NewWritableFile
    - EXPECT_OK
    linkageType: ''
    returnType: TrainerResult
    signature: TrainerResult RunTrainer(const std::vector<std::string>& input, int
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::RunTrainer
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:141,1
    - Dst: seed_pieces_and_probs::size
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::RunTrainer
    - EXPECT_EQ
    - seed_pieces_and_probs::size
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:158,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:159,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:160,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:169,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:173,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:174,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:193,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 200
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - SentencePieceProcessor::IsUnknown
    - LOG
    - EXPECT_FALSE
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:158,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:159,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:160,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:169,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:173,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:174,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:193,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 200
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - SentencePieceProcessor::IsUnknown
    - LOG
    - EXPECT_FALSE
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:39,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:39,1
    - Dst: TrainerModel::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerModel::Encode
    - EXPECT_EQ
    - EncodeResult
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, TrainerModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:55,1
    - Dst: TrainerModel::SetSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:55,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:55,1
    - Dst: Trainer::PruneUnreachableSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:58,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 67
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerModel::SetSentencePieces
    - Trainer::PruneUnreachableSentencePieces
    - std::vector::push_back
    - std::move
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, PruneUnreachableSentencePiecesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:75,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:75,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:77,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:77,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:79,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:81,1
    - Dst: TrainerSpec::set_input_format
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:86,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:87,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:88,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:89,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:90,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:93,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:94,1
    - Dst: EXPECT_OK
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:102,1
    - Dst: Trainer::LoadSentences
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:102,1
    - Dst: Trainer::MakeSeedSentencePieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:103,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:106,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:114,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:114,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:119,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:122,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:123,1
    - Dst: pieces
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:123,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:129,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:129,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:129,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - ' input'
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 132
    functionName: sentencepiece::unigram::RunTrainer
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrJoin
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - TrainerSpec::set_model_type
    - EXPECT_TRUE
    - Trainer::LoadSentences
    - SentencePieceProcessor::Load
    - TrainerSpec::set_model_prefix
    - TrainerSpec::set_input_format
    - pieces_size
    - TrainerSpec::add_input
    - auto::WriteLine
    - std::sort
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - NormalizerSpec::set_name
    - std::vector::begin
    - std::vector::end
    - Trainer::MakeSeedSentencePieces
    - pieces
    - sentencepiece::filesystem::NewWritableFile
    - EXPECT_OK
    linkageType: ''
    returnType: TrainerResult
    signature: TrainerResult RunTrainer(const std::vector<std::string>& input, int
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::RunTrainer
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:141,1
    - Dst: seed_pieces_and_probs::size
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 149
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::RunTrainer
    - EXPECT_EQ
    - seed_pieces_and_probs::size
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:158,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:159,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:160,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:169,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:173,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:174,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:193,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 200
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - SentencePieceProcessor::IsUnknown
    - LOG
    - EXPECT_FALSE
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:156,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:158,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:159,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:160,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:161,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:169,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:170,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:171,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:173,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:174,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:175,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:176,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:180,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:181,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:183,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:192,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:193,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_trainer_test.cc:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 200
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - SentencePieceProcessor::IsUnknown
    - LOG
    - EXPECT_FALSE
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramTrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:37,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:38,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:38,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:41,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:42,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:42,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:43,1
    - Dst: Lattice::sentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:43,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:44,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:44,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:47,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:48,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:48,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:49,1
    - Dst: Lattice::sentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:49,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:50,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:50,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:51,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:51,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:52,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:52,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:53,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:53,1
    - Dst: Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:55,1
    - Dst: Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:60,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:61,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:61,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:64,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:65,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:65,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:66,1
    - Dst: Lattice::sentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:66,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:67,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:67,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:68,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:68,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:69,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:69,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:70,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:70,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:71,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:71,1
    - Dst: Lattice::Clear
      Src: /src/sentencepiece/src/unigram_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:74,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:75,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 76
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::utf8_size
    - Lattice::bos_node
    - Lattice::end_nodes
    - Lattice::begin_nodes
    - Lattice::size
    - Lattice::surface
    - Lattice::eos_node
    - Lattice::Clear
    - EXPECT_EQ
    - Lattice::sentence
    - Lattice::SetSentence
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, SetSentenceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:80,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:83,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:84,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:85,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:86,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:87,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:88,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:123,1
    - Dst: Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:124,1
    - Dst: Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:133,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:134,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:135,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:136,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:137,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:139,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:140,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:141,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:142,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:143,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:145,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:146,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:147,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:148,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:149,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:150,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:151,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:152,1
    - Dst: Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:152,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:154,1
    - Dst: Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:154,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:155,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:156,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:157,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:158,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:159,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:160,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:161,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 162
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::bos_node
    - Lattice::end_nodes
    - Lattice::begin_nodes
    - Lattice::eos_node
    - EXPECT_EQ
    - Lattice::Insert
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, InsertTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:166,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:167,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:167,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:167,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:170,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:171,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:171,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:171,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:173,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:174,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 176
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::Viterbi
    - empty
    - EXPECT_TRUE
    - Lattice::Insert
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, ViterbiFromIncompleteLatticeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_test.cc:181,1
    - Dst: std::string
      Src: /src/sentencepiece/src/unigram_model_test.cc:181,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_test.cc:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<Lattice::Node*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: sentencepiece::unigram::GetTokenized
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - std::string
    - std::vector::push_back
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string GetTokenized(const std::vector<Lattice::Node*>& nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - lattice
    - pos
    - length
    - score
    argTypes:
    - Lattice*
    - int
    - int
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: sentencepiece::unigram::InsertWithScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice*::Insert
    linkageType: ''
    returnType: void
    signature: void InsertWithScore(Lattice* lattice, int pos, int length, float score)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - lattice
    - pos
    - length
    - score
    - id
    argTypes:
    - Lattice*
    - int
    - int
    - float
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: sentencepiece::unigram::InsertWithScoreAndId
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice*::Insert
    linkageType: ''
    returnType: void
    signature: "void InsertWithScoreAndId(Lattice* lattice, int pos, int length, float
      score,\n                          int id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:199,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:201,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:202,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:203,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:204,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:204,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:204,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:206,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:207,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:207,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:207,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:210,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:210,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:210,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:213,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:213,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::Viterbi
    - sentencepiece::unigram::GetTokenized
    - EXPECT_EQ
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, ViterbiTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:218,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:220,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:221,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:222,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:223,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:224,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:225,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:228,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:230,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:231,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:232,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:233,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:233,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:235,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:236,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:236,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:239,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 240
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto::empty
    - sentencepiece::unigram::GetTokenized
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    - Lattice::NBest
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, NBestTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:244,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:246,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:247,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:248,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:249,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:250,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:251,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:259,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:260,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:261,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:262,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:265,1
    - Dst: std::map::count
      Src: /src/sentencepiece/src/unigram_model_test.cc:265,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:276,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:280,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:289,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:292,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:304,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:306,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:310,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:310,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:310,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:316,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 321
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - std::map::size
    - sentencepiece::unigram::GetTokenized
    - std::make_pair
    - EXPECT_EQ
    - std::exp
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    - std::map::count
    - Lattice::NBest
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, NBestSampleTest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:325,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:327,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:328,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:329,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:330,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:331,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:332,1
    - Dst: Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:337,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:337,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:340,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:342,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_test.cc:344,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:344,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:346,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_test.cc:349,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:349,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:350,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:351,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:352,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 358
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::begin_nodes
    - std::vector::size
    - std::log
    - EXPECT_EQ
    - std::exp
    - Lattice::ForwardAlgorithm
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, ForwardAlgorithmTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:362,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:364,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:365,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:366,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:367,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:368,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:369,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:378,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:379,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:380,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:381,1
    - Dst: Lattice::PopulateMarginal
      Src: /src/sentencepiece/src/unigram_model_test.cc:384,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:386,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:387,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:388,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:389,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:390,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:391,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:392,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_test.cc:392,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_test.cc:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 393
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - exp
    - sentencepiece::unigram::InsertWithScoreAndId
    - std::log
    - static_cast<double>
    - Lattice::PopulateMarginal
    - Lattice::SetSentence
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, PopulateMarginalTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:397,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:399,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:400,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:401,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:402,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:403,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:404,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:407,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:410,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:411,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:412,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:413,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:424,1
    - Dst: Lattice::Sample
      Src: /src/sentencepiece/src/unigram_model_test.cc:424,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:427,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:427,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:427,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 432
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - exp
    - std::map::size
    - sentencepiece::unigram::InsertWithScoreAndId
    - sentencepiece::unigram::GetTokenized
    - std::vector::size
    - EXPECT_EQ
    - Lattice::Sample
    - Lattice::SetSentence
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, SampleTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:436,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:437,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:438,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:440,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:441,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:442,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:443,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:444,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 448
    functionName: sentencepiece::unigram::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:452,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:453,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/unigram_model_test.cc:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - ' piece'
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 455
    functionName: sentencepiece::unigram::AddPiece
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto* model_proto, const std::string& piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:458,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:460,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:461,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:462,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:463,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:466,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/unigram_model_test.cc:466,1
    - Dst: Model::model_proto
      Src: /src/sentencepiece/src/unigram_model_test.cc:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 468
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::model_proto
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, SetUnigramModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:471,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:473,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:474,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:475,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:480,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/unigram_model_test.cc:480,1
    - Dst: Model::model_proto
      Src: /src/sentencepiece/src/unigram_model_test.cc:481,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:483,1
    - Dst: Model::min_score
      Src: /src/sentencepiece/src/unigram_model_test.cc:483,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:485,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:486,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:486,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:487,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:487,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:488,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:488,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:489,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:489,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/unigram_model_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:490,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:490,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:491,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:492,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:492,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:493,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:494,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:494,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:496,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:496,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:497,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:498,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:498,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:499,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:499,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:500,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:500,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:501,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:501,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:502,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:502,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:504,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:504,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:505,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:505,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:506,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:506,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:507,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:507,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:508,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:508,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:509,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:509,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:510,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:510,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:512,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:512,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:513,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:513,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:514,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:514,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:515,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:515,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:516,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:516,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:517,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:517,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:518,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:518,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:520,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:520,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:521,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:521,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:522,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:522,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:523,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:523,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:524,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:524,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:525,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:525,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:526,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:526,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:528,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 529
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - Model::IdToPiece
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - absl::string_view
    - Model::model_proto
    - Model::IsControl
    - EXPECT_TRUE
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - Model::PieceToId
    - Model::IsUnknown
    - Model::GetScore
    - EXPECT_FALSE
    - EXPECT_NEAR
    - Model::min_score
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PieceToIdTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:532,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:533,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:537,1
    - Dst: Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:538,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:540,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:540,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:541,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:541,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:542,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:542,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:544,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:544,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:545,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:545,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:546,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 547
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Lattice::begin_nodes
    - EXPECT_EQ
    - Model::PopulateNodes
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PopulateNodesAllUnknownsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:550,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:552,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:553,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:554,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:555,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:560,1
    - Dst: Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:562,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:564,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:564,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:565,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:565,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:566,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:566,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:568,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:568,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:569,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:569,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:570,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:570,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:571,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:571,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:572,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:572,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:574,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:574,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:575,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:575,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:576,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:576,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:577,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 578
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Lattice::begin_nodes
    - EXPECT_EQ
    - Model::PopulateNodes
    - Lattice::SetSentence
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PopulateNodesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:581,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:583,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:584,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:585,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:586,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:588,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:589,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:594,1
    - Dst: Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:596,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:598,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:598,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:599,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:599,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:600,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:600,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:601,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:601,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:602,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:602,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:603,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 604
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Lattice::begin_nodes
    - EXPECT_EQ
    - Model::PopulateNodes
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PopulateNodesWithUnusedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:607,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:608,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:609,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:610,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:611,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:612,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:613,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:617,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:618,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:618,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:619,1
    - Dst: first::empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:619,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:620,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:622,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:623,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:623,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:625,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:626,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:626,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:627,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:628,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 629
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - auto::size
    - first::empty
    - sentencepiece::unigram::AddPiece
    - auto::empty
    - Model::SampleEncode
    - EXPECT_TRUE
    - EXPECT_EQ
    - EXPECT_FALSE
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ModelNBestTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:632,1
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:633,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:634,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:635,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:636,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:637,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:638,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:639,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:644,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:645,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:645,1
    - Dst: sentencepiece::SetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:648,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:649,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:650,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:650,1
    - Dst: sentencepiece::SetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:659,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:660,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:661,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:661,1
    - Dst: sentencepiece::SetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 663
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - auto::size
    - sentencepiece::unigram::AddPiece
    - EXPECT_EQ
    - sentencepiece::SetNBestTimeout
    - sentencepiece::GetNBestTimeout
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ModelNBestTimeoutTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:666,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:667,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:668,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:669,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:670,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:671,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:672,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:673,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:674,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:675,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:676,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:677,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:678,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:680,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:682,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:684,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:691,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:692,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:692,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:693,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:695,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:696,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:696,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:697,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:698,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:700,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:701,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:701,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:702,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:703,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:705,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:706,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:706,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:707,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:708,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:710,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:711,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:711,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:712,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:713,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:714,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:715,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:716,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:717,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:718,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:721,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:722,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:722,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:723,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:724,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:725,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:726,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:727,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:730,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:731,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:731,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:732,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:734,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:735,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:735,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:736,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:737,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:738,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:741,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:742,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:742,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:743,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:744,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:745,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:747,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:748,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:748,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:749,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:750,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:751,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 753
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:756,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:758,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:759,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:760,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:761,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:762,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:763,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:764,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:765,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:770,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:771,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:771,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:772,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:776,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:778,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:779,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:779,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:780,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:781,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:785,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:786,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:788,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:789,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:789,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:790,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:791,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:797,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:798,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:799,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:801,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:802,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:802,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:803,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 806
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - auto::size
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, EncodeWithUnusedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:809,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:812,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:813,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:814,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:815,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:818,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:819,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:820,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:821,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:822,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:827,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:828,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:828,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:829,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:830,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:834,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:835,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:835,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:836,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 839
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ControlSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:842,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:844,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:845,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:846,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:847,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:848,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:849,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:850,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:851,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:855,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:855,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:856,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:856,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:857,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:857,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:860,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:860,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:861,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 862
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - EXPECT_TRUE
    - EXPECT_FALSE
    - Model::VerifyOutputsEquivalent
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, VerifyOutputsEquivalent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:869,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:870,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/unigram_model_test.cc:871,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:872,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:875,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:877,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:879,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:881,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:882,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:883,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:884,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:887,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:891,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:891,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:892,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:893,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:894,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 896
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto*::set_piece
    - auto*::set_type
    - Model::Encode
    - add_pieces
    - AddPieceWithType
    - EXPECT_EQ
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ControlTokenMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:899,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/unigram_model_test.cc:900,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:904,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:905,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:905,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:906,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:912,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:913,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:914,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:915,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:916,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:916,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:920,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:921,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:922,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:923,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:924,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:925,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:928,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:929,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:930,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:935,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:936,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:937,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:938,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:939,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:940,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:947,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:948,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:948,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:949,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:950,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:956,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/unigram_model_test.cc:957,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:957,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/unigram_model_test.cc:959,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:966,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:967,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:967,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:968,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:969,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:970,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:976,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:977,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/unigram_model_test.cc:978,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:978,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/unigram_model_test.cc:980,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 983
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - ModelProto::pieces_size
    - auto::size
    - auto*::set_type
    - sentencepiece::unigram::AddPiece
    - EXPECT_GT
    - Model::Encode
    - EXPECT_NE
    - ByteToPiece
    - ASSERT_EQ
    - EXPECT_EQ
    - ModelProto::add_pieces
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, SpecialSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<float>::quiet_NaN
      Src: /src/sentencepiece/src/unigram_model_test.cc:986,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/sentencepiece/src/unigram_model_test.cc:987,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/sentencepiece/src/unigram_model_test.cc:988,1
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:989,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:990,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:992,1
    - Dst: Model::status
      Src: /src/sentencepiece/src/unigram_model_test.cc:992,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 994
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::status
    - std::numeric_limits<float>::quiet_NaN
    - EXPECT_FALSE
    - std::numeric_limits<float>::infinity
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, RejectNaNAndInfScoresTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:997,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:998,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:999,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:1001,1
    - Dst: Model::status
      Src: /src/sentencepiece/src/unigram_model_test.cc:1001,1
    - Dst: std::string::reserve
      Src: /src/sentencepiece/src/unigram_model_test.cc:1007,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:1011,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:1012,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:1012,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:1014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1016
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - ASSERT_TRUE
    - Model::Encode
    - std::string::reserve
    - EncodeResult::size
    - Model::status
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, LongTextScoreRecenteringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:37,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:38,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:38,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:41,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:42,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:42,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:43,1
    - Dst: Lattice::sentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:43,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:44,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:44,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:47,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:48,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:48,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:49,1
    - Dst: Lattice::sentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:49,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:50,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:50,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:51,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:51,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:52,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:52,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:53,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:53,1
    - Dst: Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:55,1
    - Dst: Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:60,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:61,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:61,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:64,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:65,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:65,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:66,1
    - Dst: Lattice::sentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:66,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:67,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:67,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:68,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:68,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:69,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:69,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:70,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:70,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:71,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:71,1
    - Dst: Lattice::Clear
      Src: /src/sentencepiece/src/unigram_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:74,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:75,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 76
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::utf8_size
    - Lattice::bos_node
    - Lattice::end_nodes
    - Lattice::begin_nodes
    - Lattice::size
    - Lattice::surface
    - Lattice::eos_node
    - Lattice::Clear
    - EXPECT_EQ
    - Lattice::sentence
    - Lattice::SetSentence
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, SetSentenceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:80,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:83,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:84,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:85,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:86,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:87,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:88,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:123,1
    - Dst: Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:124,1
    - Dst: Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:133,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:134,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:135,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:136,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:137,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:139,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:140,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:141,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:142,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:143,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:145,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:146,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:147,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:148,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:149,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:150,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:151,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:152,1
    - Dst: Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:152,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:154,1
    - Dst: Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:154,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:155,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:156,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:157,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:158,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:159,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:160,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:161,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 162
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::bos_node
    - Lattice::end_nodes
    - Lattice::begin_nodes
    - Lattice::eos_node
    - EXPECT_EQ
    - Lattice::Insert
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, InsertTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:166,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:167,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:167,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:167,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:170,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:171,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:171,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:171,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:173,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:174,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 176
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::Viterbi
    - empty
    - EXPECT_TRUE
    - Lattice::Insert
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, ViterbiFromIncompleteLatticeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_test.cc:181,1
    - Dst: std::string
      Src: /src/sentencepiece/src/unigram_model_test.cc:181,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_test.cc:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<Lattice::Node*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: sentencepiece::unigram::GetTokenized
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 4
    functionsReached:
    - std::string
    - std::vector::push_back
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string GetTokenized(const std::vector<Lattice::Node*>& nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - lattice
    - pos
    - length
    - score
    argTypes:
    - Lattice*
    - int
    - int
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: sentencepiece::unigram::InsertWithScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 4
    functionsReached:
    - Lattice*::Insert
    linkageType: ''
    returnType: void
    signature: void InsertWithScore(Lattice* lattice, int pos, int length, float score)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - lattice
    - pos
    - length
    - score
    - id
    argTypes:
    - Lattice*
    - int
    - int
    - float
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: sentencepiece::unigram::InsertWithScoreAndId
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 2
    functionsReached:
    - Lattice*::Insert
    linkageType: ''
    returnType: void
    signature: "void InsertWithScoreAndId(Lattice* lattice, int pos, int length, float
      score,\n                          int id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:199,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:201,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:202,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:203,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:204,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:204,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:204,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:206,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:207,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:207,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:207,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:210,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:210,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:210,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:213,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:213,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::Viterbi
    - sentencepiece::unigram::GetTokenized
    - EXPECT_EQ
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, ViterbiTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:218,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:220,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:221,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:222,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:223,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:224,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:225,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:228,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:230,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:231,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:232,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:233,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:233,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:235,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:236,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:236,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:239,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 240
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto::empty
    - sentencepiece::unigram::GetTokenized
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    - Lattice::NBest
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, NBestTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:244,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:246,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:247,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:248,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:249,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:250,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:251,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:259,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:260,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:261,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:262,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:265,1
    - Dst: std::map::count
      Src: /src/sentencepiece/src/unigram_model_test.cc:265,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:276,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:280,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:289,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:292,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:304,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:306,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:310,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:310,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:310,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:316,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 321
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - std::map::size
    - sentencepiece::unigram::GetTokenized
    - std::make_pair
    - EXPECT_EQ
    - std::exp
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    - std::map::count
    - Lattice::NBest
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, NBestSampleTest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:325,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:327,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:328,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:329,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:330,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:331,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:332,1
    - Dst: Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:337,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:337,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:340,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:342,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_test.cc:344,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:344,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:346,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_test.cc:349,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:349,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:350,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:351,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:352,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 358
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::begin_nodes
    - std::vector::size
    - std::log
    - EXPECT_EQ
    - std::exp
    - Lattice::ForwardAlgorithm
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, ForwardAlgorithmTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:362,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:364,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:365,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:366,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:367,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:368,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:369,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:378,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:379,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:380,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:381,1
    - Dst: Lattice::PopulateMarginal
      Src: /src/sentencepiece/src/unigram_model_test.cc:384,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:386,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:387,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:388,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:389,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:390,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:391,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:392,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_test.cc:392,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_test.cc:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 393
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - exp
    - sentencepiece::unigram::InsertWithScoreAndId
    - std::log
    - static_cast<double>
    - Lattice::PopulateMarginal
    - Lattice::SetSentence
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, PopulateMarginalTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:397,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:399,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:400,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:401,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:402,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:403,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:404,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:407,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:410,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:411,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:412,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:413,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:424,1
    - Dst: Lattice::Sample
      Src: /src/sentencepiece/src/unigram_model_test.cc:424,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:427,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:427,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:427,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 432
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - exp
    - std::map::size
    - sentencepiece::unigram::InsertWithScoreAndId
    - sentencepiece::unigram::GetTokenized
    - std::vector::size
    - EXPECT_EQ
    - Lattice::Sample
    - Lattice::SetSentence
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, SampleTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:436,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:437,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:438,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:440,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:441,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:442,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:443,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:444,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 448
    functionName: sentencepiece::unigram::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 14
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:452,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:453,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/unigram_model_test.cc:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - ' piece'
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 455
    functionName: sentencepiece::unigram::AddPiece
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 14
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto* model_proto, const std::string& piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:458,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:460,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:461,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:462,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:463,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:466,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/unigram_model_test.cc:466,1
    - Dst: Model::model_proto
      Src: /src/sentencepiece/src/unigram_model_test.cc:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 468
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::model_proto
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, SetUnigramModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:471,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:473,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:474,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:475,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:480,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/unigram_model_test.cc:480,1
    - Dst: Model::model_proto
      Src: /src/sentencepiece/src/unigram_model_test.cc:481,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:483,1
    - Dst: Model::min_score
      Src: /src/sentencepiece/src/unigram_model_test.cc:483,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:485,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:486,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:486,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:487,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:487,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:488,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:488,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:489,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:489,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/unigram_model_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:490,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:490,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:491,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:492,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:492,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:493,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:494,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:494,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:496,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:496,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:497,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:498,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:498,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:499,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:499,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:500,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:500,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:501,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:501,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:502,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:502,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:504,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:504,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:505,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:505,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:506,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:506,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:507,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:507,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:508,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:508,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:509,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:509,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:510,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:510,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:512,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:512,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:513,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:513,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:514,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:514,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:515,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:515,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:516,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:516,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:517,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:517,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:518,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:518,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:520,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:520,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:521,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:521,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:522,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:522,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:523,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:523,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:524,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:524,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:525,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:525,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:526,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:526,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:528,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 529
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - Model::IdToPiece
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - absl::string_view
    - Model::model_proto
    - Model::IsControl
    - EXPECT_TRUE
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - Model::PieceToId
    - Model::IsUnknown
    - Model::GetScore
    - EXPECT_FALSE
    - EXPECT_NEAR
    - Model::min_score
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PieceToIdTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:532,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:533,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:537,1
    - Dst: Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:538,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:540,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:540,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:541,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:541,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:542,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:542,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:544,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:544,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:545,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:545,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:546,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 547
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Lattice::begin_nodes
    - EXPECT_EQ
    - Model::PopulateNodes
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PopulateNodesAllUnknownsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:550,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:552,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:553,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:554,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:555,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:560,1
    - Dst: Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:562,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:564,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:564,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:565,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:565,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:566,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:566,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:568,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:568,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:569,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:569,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:570,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:570,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:571,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:571,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:572,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:572,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:574,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:574,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:575,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:575,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:576,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:576,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:577,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 578
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Lattice::begin_nodes
    - EXPECT_EQ
    - Model::PopulateNodes
    - Lattice::SetSentence
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PopulateNodesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:581,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:583,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:584,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:585,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:586,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:588,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:589,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:594,1
    - Dst: Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:596,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:598,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:598,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:599,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:599,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:600,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:600,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:601,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:601,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:602,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:602,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:603,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 604
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Lattice::begin_nodes
    - EXPECT_EQ
    - Model::PopulateNodes
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PopulateNodesWithUnusedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:607,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:608,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:609,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:610,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:611,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:612,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:613,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:617,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:618,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:618,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:619,1
    - Dst: first::empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:619,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:620,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:622,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:623,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:623,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:625,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:626,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:626,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:627,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:628,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 629
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - auto::size
    - first::empty
    - sentencepiece::unigram::AddPiece
    - auto::empty
    - Model::SampleEncode
    - EXPECT_TRUE
    - EXPECT_EQ
    - EXPECT_FALSE
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ModelNBestTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:632,1
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:633,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:634,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:635,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:636,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:637,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:638,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:639,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:644,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:645,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:645,1
    - Dst: sentencepiece::SetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:648,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:649,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:650,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:650,1
    - Dst: sentencepiece::SetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:659,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:660,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:661,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:661,1
    - Dst: sentencepiece::SetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 663
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - auto::size
    - sentencepiece::unigram::AddPiece
    - EXPECT_EQ
    - sentencepiece::SetNBestTimeout
    - sentencepiece::GetNBestTimeout
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ModelNBestTimeoutTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:666,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:667,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:668,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:669,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:670,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:671,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:672,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:673,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:674,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:675,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:676,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:677,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:678,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:680,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:682,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:684,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:691,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:692,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:692,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:693,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:695,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:696,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:696,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:697,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:698,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:700,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:701,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:701,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:702,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:703,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:705,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:706,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:706,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:707,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:708,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:710,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:711,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:711,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:712,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:713,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:714,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:715,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:716,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:717,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:718,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:721,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:722,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:722,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:723,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:724,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:725,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:726,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:727,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:730,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:731,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:731,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:732,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:734,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:735,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:735,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:736,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:737,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:738,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:741,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:742,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:742,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:743,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:744,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:745,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:747,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:748,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:748,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:749,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:750,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:751,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 753
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:756,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:758,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:759,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:760,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:761,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:762,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:763,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:764,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:765,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:770,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:771,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:771,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:772,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:776,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:778,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:779,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:779,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:780,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:781,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:785,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:786,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:788,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:789,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:789,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:790,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:791,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:797,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:798,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:799,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:801,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:802,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:802,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:803,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 806
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - auto::size
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, EncodeWithUnusedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:809,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:812,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:813,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:814,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:815,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:818,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:819,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:820,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:821,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:822,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:827,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:828,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:828,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:829,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:830,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:834,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:835,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:835,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:836,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 839
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ControlSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:842,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:844,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:845,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:846,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:847,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:848,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:849,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:850,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:851,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:855,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:855,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:856,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:856,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:857,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:857,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:860,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:860,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:861,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 862
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - EXPECT_TRUE
    - EXPECT_FALSE
    - Model::VerifyOutputsEquivalent
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, VerifyOutputsEquivalent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:869,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:870,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/unigram_model_test.cc:871,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:872,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:875,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:877,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:879,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:881,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:882,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:883,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:884,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:887,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:891,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:891,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:892,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:893,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:894,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 896
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto*::set_piece
    - auto*::set_type
    - Model::Encode
    - add_pieces
    - AddPieceWithType
    - EXPECT_EQ
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ControlTokenMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:899,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/unigram_model_test.cc:900,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:904,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:905,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:905,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:906,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:912,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:913,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:914,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:915,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:916,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:916,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:920,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:921,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:922,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:923,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:924,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:925,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:928,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:929,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:930,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:935,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:936,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:937,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:938,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:939,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:940,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:947,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:948,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:948,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:949,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:950,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:956,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/unigram_model_test.cc:957,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:957,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/unigram_model_test.cc:959,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:966,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:967,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:967,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:968,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:969,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:970,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:976,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:977,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/unigram_model_test.cc:978,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:978,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/unigram_model_test.cc:980,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 983
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - ModelProto::pieces_size
    - auto::size
    - auto*::set_type
    - sentencepiece::unigram::AddPiece
    - EXPECT_GT
    - Model::Encode
    - EXPECT_NE
    - ByteToPiece
    - ASSERT_EQ
    - EXPECT_EQ
    - ModelProto::add_pieces
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, SpecialSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<float>::quiet_NaN
      Src: /src/sentencepiece/src/unigram_model_test.cc:986,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/sentencepiece/src/unigram_model_test.cc:987,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/sentencepiece/src/unigram_model_test.cc:988,1
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:989,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:990,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:992,1
    - Dst: Model::status
      Src: /src/sentencepiece/src/unigram_model_test.cc:992,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 994
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::status
    - std::numeric_limits<float>::quiet_NaN
    - EXPECT_FALSE
    - std::numeric_limits<float>::infinity
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, RejectNaNAndInfScoresTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:997,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:998,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:999,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:1001,1
    - Dst: Model::status
      Src: /src/sentencepiece/src/unigram_model_test.cc:1001,1
    - Dst: std::string::reserve
      Src: /src/sentencepiece/src/unigram_model_test.cc:1007,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:1011,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:1012,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:1012,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:1014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1016
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - ASSERT_TRUE
    - Model::Encode
    - std::string::reserve
    - EncodeResult::size
    - Model::status
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, LongTextScoreRecenteringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:37,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:38,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:38,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:41,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:42,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:42,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:43,1
    - Dst: Lattice::sentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:43,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:44,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:44,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:47,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:48,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:48,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:49,1
    - Dst: Lattice::sentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:49,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:50,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:50,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:51,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:51,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:52,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:52,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:53,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:53,1
    - Dst: Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:55,1
    - Dst: Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:60,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:61,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:61,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:64,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:65,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:65,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:66,1
    - Dst: Lattice::sentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:66,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:67,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:67,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:68,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:68,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:69,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:69,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:70,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:70,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:71,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:71,1
    - Dst: Lattice::Clear
      Src: /src/sentencepiece/src/unigram_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:74,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:75,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 76
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::utf8_size
    - Lattice::bos_node
    - Lattice::end_nodes
    - Lattice::begin_nodes
    - Lattice::size
    - Lattice::surface
    - Lattice::eos_node
    - Lattice::Clear
    - EXPECT_EQ
    - Lattice::sentence
    - Lattice::SetSentence
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, SetSentenceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:80,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:83,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:84,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:85,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:86,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:87,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:88,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:123,1
    - Dst: Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:124,1
    - Dst: Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:133,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:134,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:135,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:136,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:137,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:139,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:140,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:141,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:142,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:143,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:145,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:146,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:147,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:148,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:149,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:150,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:151,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:152,1
    - Dst: Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:152,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:154,1
    - Dst: Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:154,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:155,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:156,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:157,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:158,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:159,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:160,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:161,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 162
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::bos_node
    - Lattice::end_nodes
    - Lattice::begin_nodes
    - Lattice::eos_node
    - EXPECT_EQ
    - Lattice::Insert
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, InsertTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:166,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:167,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:167,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:167,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:170,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:171,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:171,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:171,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:173,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:174,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 176
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::Viterbi
    - empty
    - EXPECT_TRUE
    - Lattice::Insert
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, ViterbiFromIncompleteLatticeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_test.cc:181,1
    - Dst: std::string
      Src: /src/sentencepiece/src/unigram_model_test.cc:181,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_test.cc:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<Lattice::Node*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: sentencepiece::unigram::GetTokenized
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 8
    functionsReached:
    - std::string
    - std::vector::push_back
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string GetTokenized(const std::vector<Lattice::Node*>& nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - lattice
    - pos
    - length
    - score
    argTypes:
    - Lattice*
    - int
    - int
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: sentencepiece::unigram::InsertWithScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 8
    functionsReached:
    - Lattice*::Insert
    linkageType: ''
    returnType: void
    signature: void InsertWithScore(Lattice* lattice, int pos, int length, float score)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - lattice
    - pos
    - length
    - score
    - id
    argTypes:
    - Lattice*
    - int
    - int
    - float
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: sentencepiece::unigram::InsertWithScoreAndId
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 4
    functionsReached:
    - Lattice*::Insert
    linkageType: ''
    returnType: void
    signature: "void InsertWithScoreAndId(Lattice* lattice, int pos, int length, float
      score,\n                          int id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:199,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:201,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:202,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:203,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:204,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:204,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:204,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:206,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:207,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:207,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:207,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:210,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:210,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:210,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:213,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:213,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::Viterbi
    - sentencepiece::unigram::GetTokenized
    - EXPECT_EQ
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, ViterbiTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:218,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:220,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:221,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:222,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:223,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:224,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:225,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:228,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:230,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:231,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:232,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:233,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:233,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:235,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:236,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:236,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:239,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 240
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto::empty
    - sentencepiece::unigram::GetTokenized
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    - Lattice::NBest
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, NBestTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:244,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:246,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:247,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:248,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:249,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:250,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:251,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:259,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:260,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:261,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:262,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:265,1
    - Dst: std::map::count
      Src: /src/sentencepiece/src/unigram_model_test.cc:265,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:276,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:280,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:289,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:292,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:304,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:306,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:310,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:310,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:310,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:316,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 321
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - std::map::size
    - sentencepiece::unigram::GetTokenized
    - std::make_pair
    - EXPECT_EQ
    - std::exp
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    - std::map::count
    - Lattice::NBest
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, NBestSampleTest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:325,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:327,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:328,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:329,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:330,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:331,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:332,1
    - Dst: Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:337,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:337,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:340,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:342,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_test.cc:344,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:344,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:346,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_test.cc:349,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:349,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:350,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:351,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:352,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 358
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::begin_nodes
    - std::vector::size
    - std::log
    - EXPECT_EQ
    - std::exp
    - Lattice::ForwardAlgorithm
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, ForwardAlgorithmTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:362,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:364,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:365,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:366,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:367,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:368,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:369,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:378,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:379,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:380,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:381,1
    - Dst: Lattice::PopulateMarginal
      Src: /src/sentencepiece/src/unigram_model_test.cc:384,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:386,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:387,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:388,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:389,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:390,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:391,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:392,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_test.cc:392,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_test.cc:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 393
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - exp
    - sentencepiece::unigram::InsertWithScoreAndId
    - std::log
    - static_cast<double>
    - Lattice::PopulateMarginal
    - Lattice::SetSentence
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, PopulateMarginalTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:397,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:399,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:400,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:401,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:402,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:403,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:404,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:407,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:410,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:411,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:412,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:413,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:424,1
    - Dst: Lattice::Sample
      Src: /src/sentencepiece/src/unigram_model_test.cc:424,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:427,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:427,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:427,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 432
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - exp
    - std::map::size
    - sentencepiece::unigram::InsertWithScoreAndId
    - sentencepiece::unigram::GetTokenized
    - std::vector::size
    - EXPECT_EQ
    - Lattice::Sample
    - Lattice::SetSentence
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, SampleTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:436,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:437,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:438,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:440,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:441,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:442,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:443,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:444,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 448
    functionName: sentencepiece::unigram::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 28
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:452,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:453,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/unigram_model_test.cc:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - ' piece'
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 455
    functionName: sentencepiece::unigram::AddPiece
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 28
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto* model_proto, const std::string& piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:458,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:460,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:461,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:462,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:463,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:466,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/unigram_model_test.cc:466,1
    - Dst: Model::model_proto
      Src: /src/sentencepiece/src/unigram_model_test.cc:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 468
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::model_proto
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, SetUnigramModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:471,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:473,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:474,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:475,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:480,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/unigram_model_test.cc:480,1
    - Dst: Model::model_proto
      Src: /src/sentencepiece/src/unigram_model_test.cc:481,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:483,1
    - Dst: Model::min_score
      Src: /src/sentencepiece/src/unigram_model_test.cc:483,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:485,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:486,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:486,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:487,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:487,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:488,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:488,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:489,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:489,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/unigram_model_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:490,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:490,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:491,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:492,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:492,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:493,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:494,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:494,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:496,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:496,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:497,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:498,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:498,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:499,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:499,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:500,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:500,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:501,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:501,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:502,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:502,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:504,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:504,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:505,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:505,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:506,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:506,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:507,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:507,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:508,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:508,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:509,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:509,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:510,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:510,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:512,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:512,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:513,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:513,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:514,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:514,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:515,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:515,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:516,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:516,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:517,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:517,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:518,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:518,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:520,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:520,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:521,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:521,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:522,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:522,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:523,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:523,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:524,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:524,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:525,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:525,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:526,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:526,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:528,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 529
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - Model::IdToPiece
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - absl::string_view
    - Model::model_proto
    - Model::IsControl
    - EXPECT_TRUE
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - Model::PieceToId
    - Model::IsUnknown
    - Model::GetScore
    - EXPECT_FALSE
    - EXPECT_NEAR
    - Model::min_score
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PieceToIdTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:532,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:533,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:537,1
    - Dst: Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:538,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:540,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:540,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:541,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:541,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:542,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:542,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:544,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:544,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:545,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:545,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:546,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 547
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Lattice::begin_nodes
    - EXPECT_EQ
    - Model::PopulateNodes
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PopulateNodesAllUnknownsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:550,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:552,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:553,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:554,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:555,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:560,1
    - Dst: Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:562,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:564,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:564,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:565,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:565,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:566,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:566,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:568,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:568,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:569,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:569,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:570,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:570,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:571,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:571,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:572,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:572,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:574,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:574,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:575,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:575,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:576,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:576,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:577,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 578
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Lattice::begin_nodes
    - EXPECT_EQ
    - Model::PopulateNodes
    - Lattice::SetSentence
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PopulateNodesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:581,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:583,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:584,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:585,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:586,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:588,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:589,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:594,1
    - Dst: Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:596,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:598,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:598,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:599,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:599,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:600,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:600,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:601,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:601,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:602,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:602,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:603,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 604
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Lattice::begin_nodes
    - EXPECT_EQ
    - Model::PopulateNodes
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PopulateNodesWithUnusedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:607,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:608,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:609,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:610,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:611,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:612,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:613,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:617,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:618,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:618,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:619,1
    - Dst: first::empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:619,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:620,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:622,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:623,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:623,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:625,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:626,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:626,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:627,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:628,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 629
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - auto::size
    - first::empty
    - sentencepiece::unigram::AddPiece
    - auto::empty
    - Model::SampleEncode
    - EXPECT_TRUE
    - EXPECT_EQ
    - EXPECT_FALSE
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ModelNBestTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:632,1
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:633,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:634,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:635,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:636,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:637,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:638,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:639,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:644,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:645,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:645,1
    - Dst: sentencepiece::SetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:648,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:649,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:650,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:650,1
    - Dst: sentencepiece::SetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:659,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:660,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:661,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:661,1
    - Dst: sentencepiece::SetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 663
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - auto::size
    - sentencepiece::unigram::AddPiece
    - EXPECT_EQ
    - sentencepiece::SetNBestTimeout
    - sentencepiece::GetNBestTimeout
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ModelNBestTimeoutTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:666,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:667,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:668,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:669,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:670,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:671,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:672,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:673,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:674,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:675,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:676,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:677,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:678,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:680,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:682,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:684,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:691,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:692,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:692,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:693,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:695,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:696,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:696,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:697,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:698,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:700,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:701,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:701,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:702,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:703,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:705,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:706,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:706,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:707,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:708,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:710,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:711,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:711,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:712,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:713,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:714,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:715,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:716,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:717,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:718,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:721,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:722,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:722,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:723,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:724,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:725,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:726,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:727,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:730,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:731,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:731,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:732,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:734,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:735,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:735,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:736,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:737,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:738,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:741,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:742,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:742,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:743,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:744,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:745,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:747,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:748,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:748,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:749,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:750,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:751,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 753
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:756,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:758,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:759,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:760,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:761,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:762,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:763,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:764,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:765,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:770,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:771,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:771,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:772,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:776,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:778,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:779,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:779,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:780,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:781,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:785,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:786,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:788,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:789,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:789,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:790,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:791,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:797,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:798,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:799,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:801,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:802,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:802,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:803,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 806
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - auto::size
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, EncodeWithUnusedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:809,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:812,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:813,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:814,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:815,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:818,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:819,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:820,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:821,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:822,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:827,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:828,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:828,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:829,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:830,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:834,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:835,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:835,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:836,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 839
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ControlSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:842,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:844,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:845,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:846,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:847,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:848,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:849,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:850,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:851,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:855,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:855,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:856,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:856,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:857,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:857,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:860,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:860,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:861,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 862
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - EXPECT_TRUE
    - EXPECT_FALSE
    - Model::VerifyOutputsEquivalent
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, VerifyOutputsEquivalent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:869,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:870,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/unigram_model_test.cc:871,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:872,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:875,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:877,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:879,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:881,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:882,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:883,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:884,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:887,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:891,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:891,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:892,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:893,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:894,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 896
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto*::set_piece
    - auto*::set_type
    - Model::Encode
    - add_pieces
    - AddPieceWithType
    - EXPECT_EQ
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ControlTokenMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:899,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/unigram_model_test.cc:900,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:904,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:905,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:905,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:906,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:912,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:913,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:914,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:915,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:916,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:916,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:920,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:921,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:922,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:923,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:924,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:925,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:928,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:929,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:930,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:935,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:936,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:937,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:938,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:939,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:940,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:947,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:948,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:948,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:949,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:950,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:956,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/unigram_model_test.cc:957,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:957,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/unigram_model_test.cc:959,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:966,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:967,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:967,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:968,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:969,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:970,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:976,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:977,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/unigram_model_test.cc:978,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:978,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/unigram_model_test.cc:980,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 983
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - ModelProto::pieces_size
    - auto::size
    - auto*::set_type
    - sentencepiece::unigram::AddPiece
    - EXPECT_GT
    - Model::Encode
    - EXPECT_NE
    - ByteToPiece
    - ASSERT_EQ
    - EXPECT_EQ
    - ModelProto::add_pieces
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, SpecialSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<float>::quiet_NaN
      Src: /src/sentencepiece/src/unigram_model_test.cc:986,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/sentencepiece/src/unigram_model_test.cc:987,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/sentencepiece/src/unigram_model_test.cc:988,1
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:989,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:990,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:992,1
    - Dst: Model::status
      Src: /src/sentencepiece/src/unigram_model_test.cc:992,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 994
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::status
    - std::numeric_limits<float>::quiet_NaN
    - EXPECT_FALSE
    - std::numeric_limits<float>::infinity
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, RejectNaNAndInfScoresTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:997,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:998,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:999,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:1001,1
    - Dst: Model::status
      Src: /src/sentencepiece/src/unigram_model_test.cc:1001,1
    - Dst: std::string::reserve
      Src: /src/sentencepiece/src/unigram_model_test.cc:1007,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:1011,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:1012,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:1012,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:1014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1016
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - ASSERT_TRUE
    - Model::Encode
    - std::string::reserve
    - EncodeResult::size
    - Model::status
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, LongTextScoreRecenteringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:37,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:37,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:38,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:38,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:40,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:41,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:42,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:42,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:43,1
    - Dst: Lattice::sentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:43,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:44,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:44,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:46,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:47,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:47,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:48,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:48,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:49,1
    - Dst: Lattice::sentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:49,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:50,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:50,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:51,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:51,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:52,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:52,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:53,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:53,1
    - Dst: Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:55,1
    - Dst: Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:60,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:61,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:61,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:63,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:64,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:64,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:65,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:65,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:66,1
    - Dst: Lattice::sentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:66,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:67,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:67,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:68,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:68,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:69,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:69,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:70,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:70,1
    - Dst: EXPECT_STREQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:71,1
    - Dst: Lattice::surface
      Src: /src/sentencepiece/src/unigram_model_test.cc:71,1
    - Dst: Lattice::Clear
      Src: /src/sentencepiece/src/unigram_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:74,1
    - Dst: Lattice::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:75,1
    - Dst: Lattice::utf8_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 76
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::utf8_size
    - Lattice::bos_node
    - Lattice::end_nodes
    - Lattice::begin_nodes
    - Lattice::size
    - Lattice::surface
    - Lattice::eos_node
    - Lattice::Clear
    - EXPECT_EQ
    - Lattice::sentence
    - Lattice::SetSentence
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, SetSentenceTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:80,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:83,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:84,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:85,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:86,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:87,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:88,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:92,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:93,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:107,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:118,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:119,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:123,1
    - Dst: Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:123,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:124,1
    - Dst: Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:124,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:128,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:129,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:133,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:134,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:135,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:136,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:137,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:139,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:140,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:141,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:142,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:143,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:143,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:145,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:146,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:147,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:147,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:148,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:149,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:150,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:151,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:152,1
    - Dst: Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:152,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:152,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:154,1
    - Dst: Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model_test.cc:154,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:155,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:156,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:156,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:157,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:157,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:158,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:158,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:159,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:159,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:160,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:161,1
    - Dst: Lattice::end_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 162
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::bos_node
    - Lattice::end_nodes
    - Lattice::begin_nodes
    - Lattice::eos_node
    - EXPECT_EQ
    - Lattice::Insert
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, InsertTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:166,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:167,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:167,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:167,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:170,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:171,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:171,1
    - Dst: empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:171,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:173,1
    - Dst: Lattice::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:174,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 176
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::Viterbi
    - empty
    - EXPECT_TRUE
    - Lattice::Insert
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, ViterbiFromIncompleteLatticeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model_test.cc:181,1
    - Dst: std::string
      Src: /src/sentencepiece/src/unigram_model_test.cc:181,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/unigram_model_test.cc:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' nodes'
    argTypes:
    - std::vector<Lattice::Node*>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: sentencepiece::unigram::GetTokenized
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 12
    functionsReached:
    - std::string
    - std::vector::push_back
    - absl::StrJoin
    linkageType: ''
    returnType: std::string
    signature: std::string GetTokenized(const std::vector<Lattice::Node*>& nodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - lattice
    - pos
    - length
    - score
    argTypes:
    - Lattice*
    - int
    - int
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: sentencepiece::unigram::InsertWithScore
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 12
    functionsReached:
    - Lattice*::Insert
    linkageType: ''
    returnType: void
    signature: void InsertWithScore(Lattice* lattice, int pos, int length, float score)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model_test.cc:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - lattice
    - pos
    - length
    - score
    - id
    argTypes:
    - Lattice*
    - int
    - int
    - float
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: sentencepiece::unigram::InsertWithScoreAndId
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 6
    functionsReached:
    - Lattice*::Insert
    linkageType: ''
    returnType: void
    signature: "void InsertWithScoreAndId(Lattice* lattice, int pos, int length, float
      score,\n                          int id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:199,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:201,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:202,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:203,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:204,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:204,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:204,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:206,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:207,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:207,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:207,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:210,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:210,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:210,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:213,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:213,1
    - Dst: Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model_test.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::Viterbi
    - sentencepiece::unigram::GetTokenized
    - EXPECT_EQ
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, ViterbiTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:218,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:220,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:221,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:222,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:223,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:224,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:225,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:228,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:228,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:230,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:231,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:232,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:233,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:233,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:235,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:236,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:236,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:239,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 240
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto::empty
    - sentencepiece::unigram::GetTokenized
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    - Lattice::NBest
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, NBestTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:244,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:246,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:247,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:248,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:249,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:250,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:251,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:259,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:260,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:261,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:262,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:265,1
    - Dst: std::map::count
      Src: /src/sentencepiece/src/unigram_model_test.cc:265,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:276,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:280,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:289,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/unigram_model_test.cc:292,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model_test.cc:304,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:306,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:310,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:310,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:310,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:316,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 321
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NEAR
    - std::map::size
    - sentencepiece::unigram::GetTokenized
    - std::make_pair
    - EXPECT_EQ
    - std::exp
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    - std::map::count
    - Lattice::NBest
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, NBestSampleTest)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:325,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:327,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:328,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:329,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:330,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:331,1
    - Dst: sentencepiece::unigram::InsertWithScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:332,1
    - Dst: Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:337,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:337,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:340,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:342,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_test.cc:344,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:344,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:345,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:346,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_test.cc:349,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:349,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:350,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:351,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:352,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:353,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 358
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - Lattice::begin_nodes
    - std::vector::size
    - std::log
    - EXPECT_EQ
    - std::exp
    - Lattice::ForwardAlgorithm
    - sentencepiece::unigram::InsertWithScore
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, ForwardAlgorithmTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:362,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:364,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:365,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:366,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:367,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:368,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:369,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:378,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:379,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:380,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:381,1
    - Dst: Lattice::PopulateMarginal
      Src: /src/sentencepiece/src/unigram_model_test.cc:384,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:386,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:387,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:388,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:389,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:390,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:391,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:392,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model_test.cc:392,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model_test.cc:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 393
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - exp
    - sentencepiece::unigram::InsertWithScoreAndId
    - std::log
    - static_cast<double>
    - Lattice::PopulateMarginal
    - Lattice::SetSentence
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, PopulateMarginalTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:397,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:399,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:400,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:401,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:402,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:403,1
    - Dst: sentencepiece::unigram::InsertWithScoreAndId
      Src: /src/sentencepiece/src/unigram_model_test.cc:404,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:407,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:410,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:411,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:412,1
    - Dst: exp
      Src: /src/sentencepiece/src/unigram_model_test.cc:413,1
    - Dst: sentencepiece::unigram::GetTokenized
      Src: /src/sentencepiece/src/unigram_model_test.cc:424,1
    - Dst: Lattice::Sample
      Src: /src/sentencepiece/src/unigram_model_test.cc:424,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:427,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:427,1
    - Dst: std::map::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:427,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:429,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 432
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - exp
    - std::map::size
    - sentencepiece::unigram::InsertWithScoreAndId
    - sentencepiece::unigram::GetTokenized
    - std::vector::size
    - EXPECT_EQ
    - Lattice::Sample
    - Lattice::SetSentence
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(LatticeTest, SampleTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:436,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:437,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:438,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:440,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:441,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:442,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:443,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:444,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 448
    functionName: sentencepiece::unigram::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 42
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:452,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:453,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/unigram_model_test.cc:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - ' piece'
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 455
    functionName: sentencepiece::unigram::AddPiece
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 42
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto* model_proto, const std::string& piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:458,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:460,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:461,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:462,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:463,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:466,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/unigram_model_test.cc:466,1
    - Dst: Model::model_proto
      Src: /src/sentencepiece/src/unigram_model_test.cc:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 468
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::model_proto
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, SetUnigramModelTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:471,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:473,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:474,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:475,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:476,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:480,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/unigram_model_test.cc:480,1
    - Dst: Model::model_proto
      Src: /src/sentencepiece/src/unigram_model_test.cc:481,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:483,1
    - Dst: Model::min_score
      Src: /src/sentencepiece/src/unigram_model_test.cc:483,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:485,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:485,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:486,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:486,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:487,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:487,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:488,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:488,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:489,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:489,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/unigram_model_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:490,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:490,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:491,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:492,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:492,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:493,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:494,1
    - Dst: Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model_test.cc:494,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:496,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:496,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:497,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:498,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:498,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:499,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:499,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:500,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:500,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:501,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:501,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:502,1
    - Dst: Model::IdToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:502,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:504,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:504,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:505,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:505,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:506,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:506,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:507,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:507,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:508,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:508,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:509,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:509,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:510,1
    - Dst: Model::IsUnknown
      Src: /src/sentencepiece/src/unigram_model_test.cc:510,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:512,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:512,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:513,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:513,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:514,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:514,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:515,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:515,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:516,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:516,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:517,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:517,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:518,1
    - Dst: Model::IsControl
      Src: /src/sentencepiece/src/unigram_model_test.cc:518,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:520,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:520,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:521,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:521,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:522,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:522,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:523,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:523,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:524,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:524,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:525,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:525,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:526,1
    - Dst: Model::GetScore
      Src: /src/sentencepiece/src/unigram_model_test.cc:526,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:528,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 529
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - Model::IdToPiece
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - absl::string_view
    - Model::model_proto
    - Model::IsControl
    - EXPECT_TRUE
    - ModelProto::SerializeAsString
    - EXPECT_EQ
    - Model::PieceToId
    - Model::IsUnknown
    - Model::GetScore
    - EXPECT_FALSE
    - EXPECT_NEAR
    - Model::min_score
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PieceToIdTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:532,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:533,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:537,1
    - Dst: Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:538,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:540,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:540,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:541,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:541,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:542,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:542,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:544,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:544,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:545,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:545,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:546,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 547
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Lattice::begin_nodes
    - EXPECT_EQ
    - Model::PopulateNodes
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PopulateNodesAllUnknownsTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:550,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:552,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:553,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:554,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:555,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:560,1
    - Dst: Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:562,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:564,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:564,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:565,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:565,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:566,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:566,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:568,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:568,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:569,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:569,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:570,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:570,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:571,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:571,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:572,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:572,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:574,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:574,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:575,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:575,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:576,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:576,1
    - Dst: EXPECT_NEAR
      Src: /src/sentencepiece/src/unigram_model_test.cc:577,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 578
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Lattice::begin_nodes
    - EXPECT_EQ
    - Model::PopulateNodes
    - Lattice::SetSentence
    - EXPECT_NEAR
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PopulateNodesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:581,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:583,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:584,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:585,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:586,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:588,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:589,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model_test.cc:594,1
    - Dst: Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:596,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:598,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:598,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:599,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:599,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:600,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:600,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:601,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:601,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:602,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:602,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:603,1
    - Dst: Lattice::begin_nodes
      Src: /src/sentencepiece/src/unigram_model_test.cc:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 604
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Lattice::begin_nodes
    - EXPECT_EQ
    - Model::PopulateNodes
    - Lattice::SetSentence
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, PopulateNodesWithUnusedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:607,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:608,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:609,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:610,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:611,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:612,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:613,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:617,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:618,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:618,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:619,1
    - Dst: first::empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:619,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:620,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:622,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:623,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:623,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:625,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:626,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:626,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:627,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:628,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/unigram_model_test.cc:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 629
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 629
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - auto::size
    - first::empty
    - sentencepiece::unigram::AddPiece
    - auto::empty
    - Model::SampleEncode
    - EXPECT_TRUE
    - EXPECT_EQ
    - EXPECT_FALSE
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ModelNBestTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::GetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:632,1
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:633,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:634,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:635,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:636,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:637,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:638,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:639,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:644,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:645,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:645,1
    - Dst: sentencepiece::SetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:648,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:649,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:650,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:650,1
    - Dst: sentencepiece::SetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:659,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/unigram_model_test.cc:660,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:661,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:661,1
    - Dst: sentencepiece::SetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model_test.cc:662,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 663
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - auto::size
    - sentencepiece::unigram::AddPiece
    - EXPECT_EQ
    - sentencepiece::SetNBestTimeout
    - sentencepiece::GetNBestTimeout
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ModelNBestTimeoutTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:666,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:667,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:668,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:669,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:670,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:671,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:672,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:673,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:674,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:675,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:676,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:677,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:678,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:680,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:682,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:684,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:691,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:692,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:692,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:693,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:695,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:696,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:696,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:697,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:698,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:700,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:701,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:701,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:702,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:703,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:705,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:706,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:706,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:707,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:708,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:710,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:711,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:711,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:712,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:713,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:714,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:715,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:716,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:717,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:718,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:721,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:722,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:722,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:723,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:724,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:725,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:726,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:727,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:730,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:731,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:731,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:732,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:734,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:735,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:735,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:736,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:737,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:738,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:741,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:742,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:742,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:743,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:744,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:745,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:747,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:748,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:748,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:749,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:750,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:751,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:752,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 753
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:756,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:758,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:759,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:760,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:761,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:762,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:763,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:764,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:765,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:770,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:771,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:771,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:772,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:776,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:778,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:779,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:779,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:780,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:781,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:785,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:786,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:788,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:789,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:789,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:790,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:791,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:797,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:798,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:799,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:801,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:802,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:802,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:803,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 806
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - auto::size
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, EncodeWithUnusedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:809,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:812,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:813,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:814,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:815,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:818,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:819,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:820,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:821,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:822,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:827,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:828,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:828,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:829,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:830,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:834,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:835,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:835,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:836,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 839
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::Encode
    - EncodeResult::size
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ControlSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:842,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:844,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:845,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:846,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:847,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:848,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:849,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:850,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:851,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:855,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:855,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:856,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:856,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:857,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:857,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:860,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:860,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:861,1
    - Dst: Model::VerifyOutputsEquivalent
      Src: /src/sentencepiece/src/unigram_model_test.cc:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 862
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - EXPECT_TRUE
    - EXPECT_FALSE
    - Model::VerifyOutputsEquivalent
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, VerifyOutputsEquivalent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:869,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:870,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/unigram_model_test.cc:871,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:872,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:875,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:877,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:879,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:881,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:882,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:883,1
    - Dst: AddPieceWithType
      Src: /src/sentencepiece/src/unigram_model_test.cc:884,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:887,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:891,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:891,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:892,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:893,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:894,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:895,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 896
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - auto::size
    - auto*::set_piece
    - auto*::set_type
    - Model::Encode
    - add_pieces
    - AddPieceWithType
    - EXPECT_EQ
    - auto*::set_score
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, ControlTokenMergeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:899,1
    - Dst: ModelProto::mutable_trainer_spec
      Src: /src/sentencepiece/src/unigram_model_test.cc:900,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:904,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/unigram_model_test.cc:905,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:905,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/unigram_model_test.cc:906,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:912,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:913,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:914,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:915,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/unigram_model_test.cc:916,1
    - Dst: ModelProto::pieces_size
      Src: /src/sentencepiece/src/unigram_model_test.cc:916,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:920,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:921,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:922,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:923,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:924,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:925,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:928,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:929,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:930,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:935,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:936,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:937,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:938,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:939,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:940,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:947,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:948,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:948,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:949,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:950,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:956,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/unigram_model_test.cc:957,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:957,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/unigram_model_test.cc:959,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:966,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:967,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:967,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:968,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:969,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:970,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:976,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:977,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/unigram_model_test.cc:978,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:978,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/unigram_model_test.cc:980,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 898
    functionDepth: 1
    functionLinenumber: 898
    functionLinenumberEnd: 983
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::unigram::MakeBaseModelProto
    - ModelProto::pieces_size
    - auto::size
    - auto*::set_type
    - sentencepiece::unigram::AddPiece
    - EXPECT_GT
    - Model::Encode
    - EXPECT_NE
    - ByteToPiece
    - ASSERT_EQ
    - EXPECT_EQ
    - ModelProto::add_pieces
    - ModelProto::mutable_trainer_spec
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, SpecialSymbolsNoSegmentTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<float>::quiet_NaN
      Src: /src/sentencepiece/src/unigram_model_test.cc:986,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/sentencepiece/src/unigram_model_test.cc:987,1
    - Dst: std::numeric_limits<float>::infinity
      Src: /src/sentencepiece/src/unigram_model_test.cc:988,1
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:989,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:990,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/unigram_model_test.cc:992,1
    - Dst: Model::status
      Src: /src/sentencepiece/src/unigram_model_test.cc:992,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 994
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 994
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - Model::status
    - std::numeric_limits<float>::quiet_NaN
    - EXPECT_FALSE
    - std::numeric_limits<float>::infinity
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, RejectNaNAndInfScoresTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::MakeBaseModelProto
      Src: /src/sentencepiece/src/unigram_model_test.cc:997,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:998,1
    - Dst: sentencepiece::unigram::AddPiece
      Src: /src/sentencepiece/src/unigram_model_test.cc:999,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/unigram_model_test.cc:1001,1
    - Dst: Model::status
      Src: /src/sentencepiece/src/unigram_model_test.cc:1001,1
    - Dst: std::string::reserve
      Src: /src/sentencepiece/src/unigram_model_test.cc:1007,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/unigram_model_test.cc:1011,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:1012,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/unigram_model_test.cc:1012,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/unigram_model_test.cc:1014,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 996
    functionDepth: 1
    functionLinenumber: 996
    functionLinenumberEnd: 1016
    functionName: sentencepiece::unigram::TEST
    functionSourceFile: /src/sentencepiece/src/unigram_model_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::MakeBaseModelProto
    - sentencepiece::unigram::AddPiece
    - ASSERT_TRUE
    - Model::Encode
    - std::string::reserve
    - EncodeResult::size
    - Model::status
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UnigramModelTest, LongTextScoreRecenteringTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - chunk_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList(size_t chunk_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~FreeList()
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~FreeList()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList(const FreeList&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& operator=(const FreeList&)'
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FreeList
    signature: FreeList & operator=(const FreeList&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FreeList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList(FreeList&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FreeList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& operator=(FreeList&& other) noexcept'
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FreeList
    signature: FreeList & operator=(FreeList&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sentencepiece/src/freelist.h:47,1
    - Dst: static_cast<void*>
      Src: /src/sentencepiece/src/freelist.h:47,1
    - Dst: get
      Src: /src/sentencepiece/src/freelist.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: sentencepiece::model::FreeList::Free
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - memset
    - get
    linkageType: ''
    returnType: void
    signature: void Free()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: sentencepiece::model::FreeList::size
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::model::FreeList::size
      Src: /src/sentencepiece/src/freelist.h:63,1
    - Dst: std::make_unique<T[]>
      Src: /src/sentencepiece/src/freelist.h:64,1
    - Dst: memset
      Src: /src/sentencepiece/src/freelist.h:65,1
    - Dst: static_cast<void*>
      Src: /src/sentencepiece/src/freelist.h:65,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/freelist.h:65,1
    - Dst: push_back
      Src: /src/sentencepiece/src/freelist.h:66,1
    - Dst: std::move
      Src: /src/sentencepiece/src/freelist.h:66,1
    - Dst: get
      Src: /src/sentencepiece/src/freelist.h:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: sentencepiece::model::FreeList::Allocate
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached:
    - sentencepiece::model::FreeList::size
    - memset
    - get
    - auto::get
    - std::move
    - static_cast<void*>
    - push_back
    - std::make_unique<T[]>
    linkageType: ''
    returnType: T
    signature: T * Allocate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - chunk_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList(size_t chunk_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~FreeList()
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~FreeList()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList(const FreeList&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& operator=(const FreeList&)'
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FreeList
    signature: FreeList & operator=(const FreeList&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FreeList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList(FreeList&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FreeList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& operator=(FreeList&& other) noexcept'
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FreeList
    signature: FreeList & operator=(FreeList&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sentencepiece/src/freelist.h:47,1
    - Dst: static_cast<void*>
      Src: /src/sentencepiece/src/freelist.h:47,1
    - Dst: get
      Src: /src/sentencepiece/src/freelist.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: sentencepiece::model::FreeList::Free
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - memset
    - get
    linkageType: ''
    returnType: void
    signature: void Free()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: sentencepiece::model::FreeList::size
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::model::FreeList::size
      Src: /src/sentencepiece/src/freelist.h:63,1
    - Dst: std::make_unique<T[]>
      Src: /src/sentencepiece/src/freelist.h:64,1
    - Dst: memset
      Src: /src/sentencepiece/src/freelist.h:65,1
    - Dst: static_cast<void*>
      Src: /src/sentencepiece/src/freelist.h:65,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/freelist.h:65,1
    - Dst: push_back
      Src: /src/sentencepiece/src/freelist.h:66,1
    - Dst: std::move
      Src: /src/sentencepiece/src/freelist.h:66,1
    - Dst: get
      Src: /src/sentencepiece/src/freelist.h:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: sentencepiece::model::FreeList::Allocate
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached:
    - sentencepiece::model::FreeList::size
    - memset
    - get
    - auto::get
    - std::move
    - static_cast<void*>
    - push_back
    - std::make_unique<T[]>
    linkageType: ''
    returnType: T
    signature: T * Allocate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - chunk_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList(size_t chunk_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~FreeList()
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~FreeList()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList(const FreeList&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& operator=(const FreeList&)'
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FreeList
    signature: FreeList & operator=(const FreeList&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FreeList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList(FreeList&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FreeList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& operator=(FreeList&& other) noexcept'
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FreeList
    signature: FreeList & operator=(FreeList&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sentencepiece/src/freelist.h:47,1
    - Dst: static_cast<void*>
      Src: /src/sentencepiece/src/freelist.h:47,1
    - Dst: get
      Src: /src/sentencepiece/src/freelist.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: sentencepiece::model::FreeList::Free
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - memset
    - get
    linkageType: ''
    returnType: void
    signature: void Free()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: sentencepiece::model::FreeList::size
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::model::FreeList::size
      Src: /src/sentencepiece/src/freelist.h:63,1
    - Dst: std::make_unique<T[]>
      Src: /src/sentencepiece/src/freelist.h:64,1
    - Dst: memset
      Src: /src/sentencepiece/src/freelist.h:65,1
    - Dst: static_cast<void*>
      Src: /src/sentencepiece/src/freelist.h:65,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/freelist.h:65,1
    - Dst: push_back
      Src: /src/sentencepiece/src/freelist.h:66,1
    - Dst: std::move
      Src: /src/sentencepiece/src/freelist.h:66,1
    - Dst: get
      Src: /src/sentencepiece/src/freelist.h:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: sentencepiece::model::FreeList::Allocate
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached:
    - sentencepiece::model::FreeList::size
    - memset
    - get
    - auto::get
    - std::move
    - static_cast<void*>
    - push_back
    - std::make_unique<T[]>
    linkageType: ''
    returnType: T
    signature: T * Allocate()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - chunk_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList(size_t chunk_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: ~FreeList()
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~FreeList()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList(const FreeList&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& operator=(const FreeList&)'
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FreeList
    signature: FreeList & operator=(const FreeList&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FreeList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sentencepiece::model::FreeList::FreeList
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FreeList(FreeList&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FreeList
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& operator=(FreeList&& other) noexcept'
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FreeList
    signature: FreeList & operator=(FreeList&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sentencepiece/src/freelist.h:47,1
    - Dst: static_cast<void*>
      Src: /src/sentencepiece/src/freelist.h:47,1
    - Dst: get
      Src: /src/sentencepiece/src/freelist.h:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: sentencepiece::model::FreeList::Free
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached:
    - static_cast<void*>
    - memset
    - get
    linkageType: ''
    returnType: void
    signature: void Free()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: sentencepiece::model::FreeList::size
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::model::FreeList::size
      Src: /src/sentencepiece/src/freelist.h:63,1
    - Dst: std::make_unique<T[]>
      Src: /src/sentencepiece/src/freelist.h:64,1
    - Dst: memset
      Src: /src/sentencepiece/src/freelist.h:65,1
    - Dst: static_cast<void*>
      Src: /src/sentencepiece/src/freelist.h:65,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/freelist.h:65,1
    - Dst: push_back
      Src: /src/sentencepiece/src/freelist.h:66,1
    - Dst: std::move
      Src: /src/sentencepiece/src/freelist.h:66,1
    - Dst: get
      Src: /src/sentencepiece/src/freelist.h:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 73
    functionName: sentencepiece::model::FreeList::Allocate
    functionSourceFile: /src/sentencepiece/src/freelist.h
    functionUses: 0
    functionsReached:
    - sentencepiece::model::FreeList::size
    - memset
    - get
    - auto::get
    - std::move
    - static_cast<void*>
    - push_back
    - std::make_unique<T[]>
    linkageType: ''
    returnType: T
    signature: T * Allocate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:42,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:44,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:49,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:50,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:51,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:55,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:56,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:70,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:74,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 79
    functionName: sentencepiece::bpe::RunTrainer
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrJoin
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - TrainerSpec::set_model_type
    - EXPECT_TRUE
    - SentencePieceProcessor::Load
    - TrainerSpec::add_user_defined_symbols
    - TrainerSpec::set_model_prefix
    - TrainerSpec::add_input
    - auto::WriteLine
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces_size
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: std::string
    signature: "std::string RunTrainer(\n    const std::vector<std::string> &input,
      int size,\n    const std::vector<std::string> &user_defined_symbols = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:82,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:84,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:86,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:88,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::bpe::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:97,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:98,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:99,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:127,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 133
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:42,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:44,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:49,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:50,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:51,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:55,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:56,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:70,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:74,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 79
    functionName: sentencepiece::bpe::RunTrainer
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrJoin
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - TrainerSpec::set_model_type
    - EXPECT_TRUE
    - SentencePieceProcessor::Load
    - TrainerSpec::add_user_defined_symbols
    - TrainerSpec::set_model_prefix
    - TrainerSpec::add_input
    - auto::WriteLine
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces_size
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: std::string
    signature: "std::string RunTrainer(\n    const std::vector<std::string> &input,
      int size,\n    const std::vector<std::string> &user_defined_symbols = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:82,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:84,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:86,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:88,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::bpe::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:97,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:98,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:99,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:127,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 133
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:42,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:44,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:49,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:50,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:51,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:55,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:56,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:70,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:74,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 79
    functionName: sentencepiece::bpe::RunTrainer
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrJoin
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - TrainerSpec::set_model_type
    - EXPECT_TRUE
    - SentencePieceProcessor::Load
    - TrainerSpec::add_user_defined_symbols
    - TrainerSpec::set_model_prefix
    - TrainerSpec::add_input
    - auto::WriteLine
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces_size
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: std::string
    signature: "std::string RunTrainer(\n    const std::vector<std::string> &input,
      int size,\n    const std::vector<std::string> &user_defined_symbols = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:82,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:84,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:86,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:88,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::bpe::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:97,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:98,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:99,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:127,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 133
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:42,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:44,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:49,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:50,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:51,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:55,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:56,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:70,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:74,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 79
    functionName: sentencepiece::bpe::RunTrainer
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrJoin
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - TrainerSpec::set_model_type
    - EXPECT_TRUE
    - SentencePieceProcessor::Load
    - TrainerSpec::add_user_defined_symbols
    - TrainerSpec::set_model_prefix
    - TrainerSpec::add_input
    - auto::WriteLine
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces_size
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: std::string
    signature: "std::string RunTrainer(\n    const std::vector<std::string> &input,
      int size,\n    const std::vector<std::string> &user_defined_symbols = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:82,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:84,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:86,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:88,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::bpe::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:97,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:98,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:99,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:127,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 133
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:42,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:44,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:49,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:50,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:51,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:55,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:56,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:70,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:74,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 79
    functionName: sentencepiece::bpe::RunTrainer
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 4
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrJoin
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - TrainerSpec::set_model_type
    - EXPECT_TRUE
    - SentencePieceProcessor::Load
    - TrainerSpec::add_user_defined_symbols
    - TrainerSpec::set_model_prefix
    - TrainerSpec::add_input
    - auto::WriteLine
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces_size
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: std::string
    signature: "std::string RunTrainer(\n    const std::vector<std::string> &input,
      int size,\n    const std::vector<std::string> &user_defined_symbols = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:82,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:84,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:86,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:88,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::bpe::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:97,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:98,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:99,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:127,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 133
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:42,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:44,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:49,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:50,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:51,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:55,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:56,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:70,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:74,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 79
    functionName: sentencepiece::bpe::RunTrainer
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 5
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrJoin
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - TrainerSpec::set_model_type
    - EXPECT_TRUE
    - SentencePieceProcessor::Load
    - TrainerSpec::add_user_defined_symbols
    - TrainerSpec::set_model_prefix
    - TrainerSpec::add_input
    - auto::WriteLine
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces_size
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: std::string
    signature: "std::string RunTrainer(\n    const std::vector<std::string> &input,
      int size,\n    const std::vector<std::string> &user_defined_symbols = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:82,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:84,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:86,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:88,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::bpe::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:97,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:98,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:99,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:127,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 133
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:42,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:44,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:49,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:50,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:51,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:55,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:56,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:70,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:74,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 79
    functionName: sentencepiece::bpe::RunTrainer
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 6
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrJoin
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - TrainerSpec::set_model_type
    - EXPECT_TRUE
    - SentencePieceProcessor::Load
    - TrainerSpec::add_user_defined_symbols
    - TrainerSpec::set_model_prefix
    - TrainerSpec::add_input
    - auto::WriteLine
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces_size
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: std::string
    signature: "std::string RunTrainer(\n    const std::vector<std::string> &input,
      int size,\n    const std::vector<std::string> &user_defined_symbols = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:82,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:84,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:86,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:88,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::bpe::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:97,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:98,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:99,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:127,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 133
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, EndToEndTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:38,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:40,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:42,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:44,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:49,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:50,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:51,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:55,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:56,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:61,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:65,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:68,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:70,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:74,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:75,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 79
    functionName: sentencepiece::bpe::RunTrainer
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 7
    functionsReached:
    - sentencepiece::util::JoinPath
    - absl::StrJoin
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - TrainerSpec::set_model_type
    - EXPECT_TRUE
    - SentencePieceProcessor::Load
    - TrainerSpec::add_user_defined_symbols
    - TrainerSpec::set_model_prefix
    - TrainerSpec::add_input
    - auto::WriteLine
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces_size
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: std::string
    signature: "std::string RunTrainer(\n    const std::vector<std::string> &input,
      int size,\n    const std::vector<std::string> &user_defined_symbols = {})"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:82,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:84,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:86,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:88,1
    - Dst: sentencepiece::bpe::RunTrainer
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::bpe::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:95,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:97,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:98,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:99,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: std::string
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:108,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::PieceToId
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:113,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:114,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:117,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:118,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:120,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:127,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/bpe_model_trainer_test.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 133
    functionName: sentencepiece::bpe::TEST
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - absl::StrJoin
    - SentencePieceProcessor::IsControl
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - EXPECT_TRUE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::PieceToId
    - SentencePieceProcessor::Load
    - std::string
    linkageType: ''
    returnType: void
    signature: void TEST(BPETrainerTest, EndToEndTest)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
      Src: /src/sentencepiece/src/spm_decode_main.cc:38,1
    - Dst: sentencepiece::ParseCommandLineFlags
      Src: /src/sentencepiece/src/spm_decode_main.cc:39,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:42,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/spm_decode_main.cc:44,1
    - Dst: std::string
      Src: /src/sentencepiece/src/spm_decode_main.cc:44,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/spm_decode_main.cc:47,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:47,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/spm_decode_main.cc:50,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/spm_decode_main.cc:51,1
    - Dst: QCHECK
      Src: /src/sentencepiece/src/spm_decode_main.cc:53,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:53,1
    - Dst: sentencepiece::SentencePieceProcessor::SentencePieceProcessor
      Src: /src/sentencepiece/src/spm_decode_main.cc:55,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_decode_main.cc:56,1
    - Dst: sentencepiece::SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/spm_decode_main.cc:56,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:56,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_decode_main.cc:57,1
    - Dst: sentencepiece::SentencePieceProcessor::SetDecodeExtraOptions
      Src: /src/sentencepiece/src/spm_decode_main.cc:57,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:57,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/spm_decode_main.cc:60,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:60,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_decode_main.cc:61,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/spm_decode_main.cc:61,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/spm_decode_main.cc:69,1
    - Dst: size
      Src: /src/sentencepiece/src/spm_decode_main.cc:69,1
    - Dst: absl::SimpleAtoi
      Src: /src/sentencepiece/src/spm_decode_main.cc:72,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/spm_decode_main.cc:73,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:79,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:80,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_decode_main.cc:82,1
    - Dst: sentencepiece::SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/spm_decode_main.cc:82,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/spm_decode_main.cc:83,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:85,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_decode_main.cc:87,1
    - Dst: sentencepiece::SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/spm_decode_main.cc:87,1
    - Dst: LOG
      Src: /src/sentencepiece/src/spm_decode_main.cc:90,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:91,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:93,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:94,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_decode_main.cc:96,1
    - Dst: sentencepiece::SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/spm_decode_main.cc:96,1
    - Dst: ToIds
      Src: /src/sentencepiece/src/spm_decode_main.cc:96,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/spm_decode_main.cc:97,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:99,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_decode_main.cc:101,1
    - Dst: sentencepiece::SentencePieceProcessor::Decode
      Src: /src/sentencepiece/src/spm_decode_main.cc:101,1
    - Dst: ToIds
      Src: /src/sentencepiece/src/spm_decode_main.cc:101,1
    - Dst: LOG
      Src: /src/sentencepiece/src/spm_decode_main.cc:104,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:105,1
    - Dst: LOG
      Src: /src/sentencepiece/src/spm_decode_main.cc:108,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_decode_main.cc:108,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/spm_decode_main.cc:112,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_decode_main.cc:113,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/spm_decode_main.cc:113,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/spm_decode_main.cc:114,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/spm_decode_main.cc:115,1
    - Dst: process
      Src: /src/sentencepiece/src/spm_decode_main.cc:116,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 60
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 121
    functionName: main
    functionSourceFile: /src/sentencepiece/src/spm_decode_main.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::ParseCommandLineFlags
    - sentencepiece::SentencePieceProcessor::SetDecodeExtraOptions
    - sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
    - size
    - std::vector::push_back
    - std::vector::empty
    - LOG
    - auto::WriteLine
    - absl::StrSplit
    - std::string
    - ToIds
    - sentencepiece::SentencePieceProcessor::Decode
    - QCHECK
    - std::vector::reserve
    - process
    - sentencepiece::SentencePieceProcessor::SentencePieceProcessor
    - QCHECK_OK
    - auto::status
    - absl::SimpleAtoi
    - sentencepiece::SentencePieceProcessor::Load
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - absl::GetFlag
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: sentencepiece::ThreadPool::ThreadPool
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ThreadPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FuncName
    - ','
    - OutType
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: DEFINE_SPP_DIRECT_FUNC_IMPL
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SPP_DIRECT_FUNC_IMPL(FuncName, OutType, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: sentencepiece::SentencePieceProcessor::EncodeAsPieces
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> EncodeAsPieces(\n      absl::string_view
      input) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: sentencepiece::SentencePieceProcessor::EncodeAsIds
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<int>
    signature: "std::vector<int> EncodeAsIds(\n      absl::string_view input) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - nbest_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: sentencepiece::SentencePieceProcessor::NBestEncodeAsPieces
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<std::vector<std::string>>
    signature: std::vector<std::vector<std::string>> NBestEncodeAsPieces(absl::string_view
      input, int nbest_size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - nbest_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: sentencepiece::SentencePieceProcessor::NBestEncodeAsIds
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<std::vector<int>>
    signature: "std::vector<std::vector<int>> NBestEncodeAsIds(\n      absl::string_view
      input, int nbest_size) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - nbest_size
    - alpha
    argTypes:
    - absl::string_view
    - int
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: sentencepiece::SentencePieceProcessor::SampleEncodeAsPieces
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> SampleEncodeAsPieces(\n      absl::string_view
      input, int nbest_size, float alpha) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - nbest_size
    - alpha
    argTypes:
    - absl::string_view
    - int
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: sentencepiece::SentencePieceProcessor::SampleEncodeAsIds
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<int>
    signature: "std::vector<int> SampleEncodeAsIds(\n      absl::string_view input,
      int nbest_size, float alpha) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - chunk_len
    - ' therad_pool'
    argTypes:
    - absl::string_view
    - int
    - ThreadPool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 337
    functionName: sentencepiece::SentencePieceProcessor::ParallelEncodeAsPieces
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> ParallelEncodeAsPieces(\n      absl::string_view
      input, int chunk_len, ThreadPool& therad_pool) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - chunk_len
    - ' therad_pool'
    argTypes:
    - absl::string_view
    - int
    - ThreadPool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: sentencepiece::SentencePieceProcessor::ParallelEncodeAsIds
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<int>
    signature: "std::vector<int> ParallelEncodeAsIds(absl::string_view input,\n                                               int
      chunk_len,\n                                               ThreadPool& therad_pool)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - std::vector<absl::string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: sentencepiece::SentencePieceProcessor::DecodePieces
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::string
    signature: "std::string DecodePieces(\n      const std::vector<absl::string_view>&
      pieces) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ids'
    argTypes:
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: sentencepiece::SentencePieceProcessor::DecodeIds
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::string
    signature: "std::string DecodeIds(\n      const std::vector<int>& ids) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: sentencepiece::ThreadPool::ThreadPool
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ThreadPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - FuncName
    - ','
    - OutType
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: DEFINE_SPP_DIRECT_FUNC_IMPL
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_SPP_DIRECT_FUNC_IMPL(FuncName, OutType, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: sentencepiece::SentencePieceProcessor::EncodeAsPieces
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> EncodeAsPieces(\n      absl::string_view
      input) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 307
    functionName: sentencepiece::SentencePieceProcessor::EncodeAsIds
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<int>
    signature: "std::vector<int> EncodeAsIds(\n      absl::string_view input) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - nbest_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 313
    functionName: sentencepiece::SentencePieceProcessor::NBestEncodeAsPieces
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<std::vector<std::string>>
    signature: std::vector<std::vector<std::string>> NBestEncodeAsPieces(absl::string_view
      input, int nbest_size) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - input
    - nbest_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: sentencepiece::SentencePieceProcessor::NBestEncodeAsIds
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<std::vector<int>>
    signature: "std::vector<std::vector<int>> NBestEncodeAsIds(\n      absl::string_view
      input, int nbest_size) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - nbest_size
    - alpha
    argTypes:
    - absl::string_view
    - int
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: sentencepiece::SentencePieceProcessor::SampleEncodeAsPieces
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> SampleEncodeAsPieces(\n      absl::string_view
      input, int nbest_size, float alpha) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - nbest_size
    - alpha
    argTypes:
    - absl::string_view
    - int
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: sentencepiece::SentencePieceProcessor::SampleEncodeAsIds
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<int>
    signature: "std::vector<int> SampleEncodeAsIds(\n      absl::string_view input,
      int nbest_size, float alpha) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - chunk_len
    - ' therad_pool'
    argTypes:
    - absl::string_view
    - int
    - ThreadPool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 337
    functionName: sentencepiece::SentencePieceProcessor::ParallelEncodeAsPieces
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> ParallelEncodeAsPieces(\n      absl::string_view
      input, int chunk_len, ThreadPool& therad_pool) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - input
    - chunk_len
    - ' therad_pool'
    argTypes:
    - absl::string_view
    - int
    - ThreadPool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 344
    functionName: sentencepiece::SentencePieceProcessor::ParallelEncodeAsIds
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::vector<int>
    signature: "std::vector<int> ParallelEncodeAsIds(absl::string_view input,\n                                               int
      chunk_len,\n                                               ThreadPool& therad_pool)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pieces'
    argTypes:
    - std::vector<absl::string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: sentencepiece::SentencePieceProcessor::DecodePieces
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::string
    signature: "std::string DecodePieces(\n      const std::vector<absl::string_view>&
      pieces) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DEFINE_SPP_DIRECT_FUNC_IMPL
      Src: /src/sentencepiece/src/sentencepiece_processor.h:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ids'
    argTypes:
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 354
    functionName: sentencepiece::SentencePieceProcessor::DecodeIds
    functionSourceFile: /src/sentencepiece/src/sentencepiece_processor.h
    functionUses: 0
    functionsReached:
    - DEFINE_SPP_DIRECT_FUNC_IMPL
    linkageType: ''
    returnType: std::string
    signature: "std::string DecodeIds(\n      const std::vector<int>& ids) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: FRIEND_TEST
    functionSourceFile: /src/sentencepiece/src/common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FRIEND_TEST(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 47
    functionName: RETURN_IF_ERROR
    functionSourceFile: /src/sentencepiece/src/common.h
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_IF_ERROR(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: sentencepiece::unigram::Model::Model
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: sentencepiece::unigram::Model::IsSampleEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSampleEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: sentencepiece::unigram::Model::IsNBestEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNBestEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: sentencepiece::unigram::Model::min_score
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float min_score() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: sentencepiece::unigram::Model::Model
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: sentencepiece::unigram::Model::IsSampleEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSampleEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: sentencepiece::unigram::Model::IsNBestEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNBestEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: sentencepiece::unigram::Model::min_score
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float min_score() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: sentencepiece::unigram::Model::Model
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: sentencepiece::unigram::Model::IsSampleEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSampleEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: sentencepiece::unigram::Model::IsNBestEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNBestEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: sentencepiece::unigram::Model::min_score
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float min_score() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: sentencepiece::unigram::Model::Model
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: sentencepiece::unigram::Model::IsSampleEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsSampleEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: sentencepiece::unigram::Model::IsNBestEncodeAvailable
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IsNBestEncodeAvailable() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: sentencepiece::unigram::Model::min_score
    functionSourceFile: /src/sentencepiece/src/unigram_model.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float min_score() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/word_model_trainer.cc:30,1
    - Dst: status
      Src: /src/sentencepiece/src/word_model_trainer.cc:30,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/word_model_trainer.cc:32,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/word_model_trainer.cc:32,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/word_model_trainer.cc:33,1
    - Dst: model_type
      Src: /src/sentencepiece/src/word_model_trainer.cc:33,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/word_model_trainer.cc:35,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/word_model_trainer.cc:35,1
    - Dst: SplitIntoWords
      Src: /src/sentencepiece/src/word_model_trainer.cc:39,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/word_model_trainer.cc:44,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:44,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/word_model_trainer.cc:45,1
    - Dst: std::log
      Src: /src/sentencepiece/src/word_model_trainer.cc:52,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/word_model_trainer.cc:52,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/word_model_trainer.cc:54,1
    - Dst: empty
      Src: /src/sentencepiece/src/word_model_trainer.cc:54,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/word_model_trainer.cc:55,1
    - Dst: first::find
      Src: /src/sentencepiece/src/word_model_trainer.cc:56,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/word_model_trainer.cc:59,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:60,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/word_model_trainer.cc:60,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/word_model_trainer.cc:63,1
    - Dst: std::log
      Src: /src/sentencepiece/src/word_model_trainer.cc:64,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/word_model_trainer.cc:64,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/word_model_trainer.cc:67,1
    - Dst: set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer.cc:68,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:68,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:68,1
    - Dst: Save
      Src: /src/sentencepiece/src/word_model_trainer.cc:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 72
    functionName: sentencepiece::word::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/word_model_trainer.cc
    functionUses: 0
    functionsReached:
    - RET_CHECK_GE
    - RET_CHECK_EQ
    - std::log
    - empty
    - model_type
    - set_vocab_size
    - SplitIntoWords
    - LoadSentences
    - size
    - status
    - use_all_vocab
    - Save
    - RET_CHECK
    - vocab_size
    - RETURN_IF_ERROR
    - Sorted
    - static_cast<float>
    - static_cast<size_t>
    - first::find
    - escape_whitespaces
    - emplace_back
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/word_model_trainer.cc:30,1
    - Dst: status
      Src: /src/sentencepiece/src/word_model_trainer.cc:30,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/word_model_trainer.cc:32,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/word_model_trainer.cc:32,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/word_model_trainer.cc:33,1
    - Dst: model_type
      Src: /src/sentencepiece/src/word_model_trainer.cc:33,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/word_model_trainer.cc:35,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/word_model_trainer.cc:35,1
    - Dst: SplitIntoWords
      Src: /src/sentencepiece/src/word_model_trainer.cc:39,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/word_model_trainer.cc:44,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:44,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/word_model_trainer.cc:45,1
    - Dst: std::log
      Src: /src/sentencepiece/src/word_model_trainer.cc:52,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/word_model_trainer.cc:52,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/word_model_trainer.cc:54,1
    - Dst: empty
      Src: /src/sentencepiece/src/word_model_trainer.cc:54,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/word_model_trainer.cc:55,1
    - Dst: first::find
      Src: /src/sentencepiece/src/word_model_trainer.cc:56,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/word_model_trainer.cc:59,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:60,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/word_model_trainer.cc:60,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/word_model_trainer.cc:63,1
    - Dst: std::log
      Src: /src/sentencepiece/src/word_model_trainer.cc:64,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/word_model_trainer.cc:64,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/word_model_trainer.cc:67,1
    - Dst: set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer.cc:68,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:68,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:68,1
    - Dst: Save
      Src: /src/sentencepiece/src/word_model_trainer.cc:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 72
    functionName: sentencepiece::word::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/word_model_trainer.cc
    functionUses: 0
    functionsReached:
    - RET_CHECK_GE
    - RET_CHECK_EQ
    - std::log
    - empty
    - model_type
    - set_vocab_size
    - SplitIntoWords
    - LoadSentences
    - size
    - status
    - use_all_vocab
    - Save
    - RET_CHECK
    - vocab_size
    - RETURN_IF_ERROR
    - Sorted
    - static_cast<float>
    - static_cast<size_t>
    - first::find
    - escape_whitespaces
    - emplace_back
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/word_model_trainer.cc:30,1
    - Dst: status
      Src: /src/sentencepiece/src/word_model_trainer.cc:30,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/word_model_trainer.cc:32,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/word_model_trainer.cc:32,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/word_model_trainer.cc:33,1
    - Dst: model_type
      Src: /src/sentencepiece/src/word_model_trainer.cc:33,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/word_model_trainer.cc:35,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/word_model_trainer.cc:35,1
    - Dst: SplitIntoWords
      Src: /src/sentencepiece/src/word_model_trainer.cc:39,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/word_model_trainer.cc:44,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:44,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/word_model_trainer.cc:45,1
    - Dst: std::log
      Src: /src/sentencepiece/src/word_model_trainer.cc:52,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/word_model_trainer.cc:52,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/word_model_trainer.cc:54,1
    - Dst: empty
      Src: /src/sentencepiece/src/word_model_trainer.cc:54,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/word_model_trainer.cc:55,1
    - Dst: first::find
      Src: /src/sentencepiece/src/word_model_trainer.cc:56,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/word_model_trainer.cc:59,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:60,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/word_model_trainer.cc:60,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/word_model_trainer.cc:63,1
    - Dst: std::log
      Src: /src/sentencepiece/src/word_model_trainer.cc:64,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/word_model_trainer.cc:64,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/word_model_trainer.cc:67,1
    - Dst: set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer.cc:68,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:68,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:68,1
    - Dst: Save
      Src: /src/sentencepiece/src/word_model_trainer.cc:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 72
    functionName: sentencepiece::word::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/word_model_trainer.cc
    functionUses: 0
    functionsReached:
    - RET_CHECK_GE
    - RET_CHECK_EQ
    - std::log
    - empty
    - model_type
    - set_vocab_size
    - SplitIntoWords
    - LoadSentences
    - size
    - status
    - use_all_vocab
    - Save
    - RET_CHECK
    - vocab_size
    - RETURN_IF_ERROR
    - Sorted
    - static_cast<float>
    - static_cast<size_t>
    - first::find
    - escape_whitespaces
    - emplace_back
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/word_model_trainer.cc:30,1
    - Dst: status
      Src: /src/sentencepiece/src/word_model_trainer.cc:30,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/word_model_trainer.cc:32,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/word_model_trainer.cc:32,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/word_model_trainer.cc:33,1
    - Dst: model_type
      Src: /src/sentencepiece/src/word_model_trainer.cc:33,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/word_model_trainer.cc:35,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/word_model_trainer.cc:35,1
    - Dst: SplitIntoWords
      Src: /src/sentencepiece/src/word_model_trainer.cc:39,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/word_model_trainer.cc:44,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:44,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/word_model_trainer.cc:45,1
    - Dst: std::log
      Src: /src/sentencepiece/src/word_model_trainer.cc:52,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/word_model_trainer.cc:52,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/word_model_trainer.cc:54,1
    - Dst: empty
      Src: /src/sentencepiece/src/word_model_trainer.cc:54,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/word_model_trainer.cc:55,1
    - Dst: first::find
      Src: /src/sentencepiece/src/word_model_trainer.cc:56,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/word_model_trainer.cc:59,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:60,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/word_model_trainer.cc:60,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/word_model_trainer.cc:63,1
    - Dst: std::log
      Src: /src/sentencepiece/src/word_model_trainer.cc:64,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/word_model_trainer.cc:64,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/word_model_trainer.cc:67,1
    - Dst: set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer.cc:68,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:68,1
    - Dst: size
      Src: /src/sentencepiece/src/word_model_trainer.cc:68,1
    - Dst: Save
      Src: /src/sentencepiece/src/word_model_trainer.cc:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 72
    functionName: sentencepiece::word::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/word_model_trainer.cc
    functionUses: 0
    functionsReached:
    - RET_CHECK_GE
    - RET_CHECK_EQ
    - std::log
    - empty
    - model_type
    - set_vocab_size
    - SplitIntoWords
    - LoadSentences
    - size
    - status
    - use_all_vocab
    - Save
    - RET_CHECK
    - vocab_size
    - RETURN_IF_ERROR
    - Sorted
    - static_cast<float>
    - static_cast<size_t>
    - first::find
    - escape_whitespaces
    - emplace_back
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model.cc:54,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:55,1
    - Dst: log
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - init_mode
    argTypes:
    - float
    - float
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: sentencepiece::unigram::LogSumExp
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - log
    - std::exp
    - static_cast<double>
    - std::max
    - std::min
    linkageType: ''
    returnType: float
    signature: float LogSumExp(float x, float y, bool init_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: sentencepiece::unigram::GetUserDefinedScore
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetUserDefinedScore(int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/unigram_model.cc:82,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: absl::Uniform
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: sentencepiece::unigram::Gumbel
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::random::GetRandomGenerator
    - absl::Uniform
    - std::log
    linkageType: ''
    returnType: float
    signature: float Gumbel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model.cc:54,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:55,1
    - Dst: log
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - init_mode
    argTypes:
    - float
    - float
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: sentencepiece::unigram::LogSumExp
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - log
    - std::exp
    - static_cast<double>
    - std::max
    - std::min
    linkageType: ''
    returnType: float
    signature: float LogSumExp(float x, float y, bool init_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: sentencepiece::unigram::GetUserDefinedScore
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetUserDefinedScore(int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/unigram_model.cc:82,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: absl::Uniform
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: sentencepiece::unigram::Gumbel
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::random::GetRandomGenerator
    - absl::Uniform
    - std::log
    linkageType: ''
    returnType: float
    signature: float Gumbel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: sentencepiece::unigram::Lattice::Lattice
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Lattice::Lattice()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Lattice::~Lattice()
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Lattice::~Lattice()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: '&Lattice::begin_nodes(int pos) const'
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Lattice::Node *>
    signature: std::vector<Lattice::Node *> &Lattice::begin_nodes(int pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: '&Lattice::end_nodes(int pos) const'
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Lattice::Node *>
    signature: std::vector<Lattice::Node *> &Lattice::end_nodes(int pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model.cc:103,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: sentencepiece::unigram::Lattice::size
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 1
    functionsReached:
    - std::max<int>
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: int
    signature: int Lattice::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: sentencepiece::unigram::Lattice::utf8_size
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: int
    signature: int Lattice::utf8_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/sentencepiece/src/unigram_model.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: sentencepiece::unigram::Lattice::sentence
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: char
    signature: char *Lattice::sentence() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: sentencepiece::unigram::Lattice::surface
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *Lattice::surface(int pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: sentencepiece::unigram::Lattice::bos_node
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::bos_node() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: sentencepiece::unigram::Lattice::eos_node
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::eos_node() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:117,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: sentencepiece::unigram::Lattice::NewNode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - Allocate
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::NewNode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:123,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:124,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/unigram_model.cc:125,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:126,1
    - Dst: Free
      Src: /src/sentencepiece/src/unigram_model.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: sentencepiece::unigram::Lattice::Clear
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - clear
    - Free
    - absl::string_view
    linkageType: ''
    returnType: void
    signature: void Lattice::Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::Clear
      Src: /src/sentencepiece/src/unigram_model.cc:131,1
    - Dst: reserve
      Src: /src/sentencepiece/src/unigram_model.cc:134,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:134,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:136,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/unigram_model.cc:137,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/unigram_model.cc:137,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:137,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:138,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:139,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:139,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/unigram_model.cc:140,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:142,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:142,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:144,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model.cc:145,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model.cc:146,1
    - Dst: reserve
      Src: /src/sentencepiece/src/unigram_model.cc:150,1
    - Dst: reserve
      Src: /src/sentencepiece/src/unigram_model.cc:151,1
    - Dst: sentencepiece::unigram::Lattice::NewNode
      Src: /src/sentencepiece/src/unigram_model.cc:154,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:157,1
    - Dst: sentencepiece::unigram::Lattice::NewNode
      Src: /src/sentencepiece/src/unigram_model.cc:159,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - sentence
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 163
    functionName: sentencepiece::unigram::Lattice::SetSentence
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Lattice::Clear
    - resize
    - absl::string_view::empty
    - sentencepiece::unigram::Lattice::size
    - sentencepiece::unigram::Lattice::NewNode
    - push_back
    - absl::string_view::remove_prefix
    - sentencepiece::string_util::OneCharLen
    - absl::string_view::size
    - reserve
    - absl::string_view::data
    - std::min<int>
    linkageType: ''
    returnType: void
    signature: void Lattice::SetSentence(absl::string_view sentence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::NewNode
      Src: /src/sentencepiece/src/unigram_model.cc:166,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model.cc:170,1
    - Dst: sentencepiece::unigram::Lattice::surface
      Src: /src/sentencepiece/src/unigram_model.cc:170,1
    - Dst: sentencepiece::unigram::Lattice::surface
      Src: /src/sentencepiece/src/unigram_model.cc:170,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/unigram_model.cc:171,1
    - Dst: sentencepiece::unigram::Lattice::surface
      Src: /src/sentencepiece/src/unigram_model.cc:171,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:172,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pos
    - length
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: sentencepiece::unigram::Lattice::Insert
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - sentencepiece::unigram::Lattice::NewNode
    - sentencepiece::unigram::Lattice::surface
    - absl::string_view
    - push_back
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::Insert(int pos, int length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:179,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:194,1
    - Dst: begin_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:204,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model.cc:207,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/unigram_model.cc:210,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model.cc:210,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model.cc:210,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 215
    functionName: sentencepiece::unigram::Lattice::Viterbi
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - std::reverse
    - std::vector::end
    - begin_nodes
    - sentencepiece::unigram::Lattice::size
    - std::vector::push_back
    - LOG
    - std::vector::begin
    linkageType: ''
    returnType: Lattice::LatticePathWithScore
    signature: Lattice::LatticePathWithScore Lattice::Viterbi()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:218,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:219,1
    - Dst: LogSumExp
      Src: /src/sentencepiece/src/unigram_model.cc:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - inv_theta
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: sentencepiece::unigram::Lattice::ForwardAlgorithm
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - LogSumExp
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: std::vector<float>
    signature: std::vector<float> Lattice::ForwardAlgorithm(float inv_theta) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:236,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:237,1
    - Dst: LogSumExp
      Src: /src/sentencepiece/src/unigram_model.cc:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - inv_theta
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: sentencepiece::unigram::Lattice::BackwardAlgorithm
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - LogSumExp
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: std::vector<float>
    signature: std::vector<float> Lattice::BackwardAlgorithm(float inv_theta) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:256,1
    - Dst: sentencepiece::unigram::Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:261,1
    - Dst: sentencepiece::unigram::Lattice::BackwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:262,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:271,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - freq
    - expected
    argTypes:
    - float
    - std::vector<float>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 278
    functionName: sentencepiece::unigram::Lattice::PopulateMarginal
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Lattice::size
    - std::exp
    - sentencepiece::unigram::Lattice::BackwardAlgorithm
    - static_cast<double>
    - sentencepiece::unigram::Lattice::ForwardAlgorithm
    linkageType: ''
    returnType: float
    signature: "float Lattice::PopulateMarginal(float freq,\n                                std::vector<float>
      *expected) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
      Src: /src/sentencepiece/src/unigram_model.cc:311,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
      Src: /src/sentencepiece/src/unigram_model.cc:312,1
    - Dst: model::FreeList<Hypothesis>*::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:318,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
      Src: /src/sentencepiece/src/unigram_model.cc:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - to_clone
    - clone_map
    - allocator
    argTypes:
    - Hypothesis*
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*
    - model::FreeList<Hypothesis>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 328
    functionName: sentencepiece::unigram::CloneHypAndDependents
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
    - model::FreeList<Hypothesis>*::Allocate
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
    linkageType: ''
    returnType: Hypothesis
    signature: "Hypothesis *CloneHypAndDependents(\n    const Hypothesis *to_clone,\n
      \   absl::flat_hash_map<const Hypothesis *, Hypothesis *> *clone_map,\n    model::FreeList<Hypothesis>
      *allocator)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
      Src: /src/sentencepiece/src/unigram_model.cc:311,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
      Src: /src/sentencepiece/src/unigram_model.cc:312,1
    - Dst: model::FreeList<Hypothesis>*::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:318,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
      Src: /src/sentencepiece/src/unigram_model.cc:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - to_clone
    - clone_map
    - allocator
    argTypes:
    - Hypothesis*
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*
    - model::FreeList<Hypothesis>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 328
    functionName: sentencepiece::unigram::CloneHypAndDependents
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
    - model::FreeList<Hypothesis>*::Allocate
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
    linkageType: ''
    returnType: Hypothesis
    signature: "Hypothesis *CloneHypAndDependents(\n    const Hypothesis *to_clone,\n
      \   absl::flat_hash_map<const Hypothesis *, Hypothesis *> *clone_map,\n    model::FreeList<Hypothesis>
      *allocator)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:336,1
    - Dst: sentencepiece::unigram::Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model.cc:341,1
    - Dst: sentencepiece::GetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model.cc:344,1
    - Dst: absl::Now
      Src: /src/sentencepiece/src/unigram_model.cc:345,1
    - Dst: model::FreeList::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:374,1
    - Dst: sentencepiece::unigram::Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model.cc:375,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:379,1
    - Dst: sentencepiece::unigram::Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:383,1
    - Dst: Gumbel
      Src: /src/sentencepiece/src/unigram_model.cc:385,1
    - Dst: sentencepiece::unigram::Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model.cc:388,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/unigram_model.cc:391,1
    - Dst: Agenda::empty
      Src: /src/sentencepiece/src/unigram_model.cc:395,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/unigram_model.cc:396,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/unigram_model.cc:397,1
    - Dst: sentencepiece::unigram::Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model.cc:401,1
    - Dst: std::vector::resize
      Src: /src/sentencepiece/src/unigram_model.cc:402,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:402,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model.cc:404,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:404,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model.cc:406,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:407,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:413,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:421,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:422,1
    - Dst: Gumbel
      Src: /src/sentencepiece/src/unigram_model.cc:426,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:432,1
    - Dst: std::log1p
      Src: /src/sentencepiece/src/unigram_model.cc:436,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:436,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:437,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model.cc:437,1
    - Dst: std::log1p
      Src: /src/sentencepiece/src/unigram_model.cc:438,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:438,1
    - Dst: std::abs
      Src: /src/sentencepiece/src/unigram_model.cc:438,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:443,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:444,1
    - Dst: model::FreeList::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:445,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/unigram_model.cc:456,1
    - Dst: model::FreeList::size
      Src: /src/sentencepiece/src/unigram_model.cc:460,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:463,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:464,1
    - Dst: Agenda::size
      Src: /src/sentencepiece/src/unigram_model.cc:473,1
    - Dst: absl::ToInt64Milliseconds
      Src: /src/sentencepiece/src/unigram_model.cc:476,1
    - Dst: absl::Now
      Src: /src/sentencepiece/src/unigram_model.cc:476,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:478,1
    - Dst: sentencepiece::unigram::Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model.cc:480,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/unigram_model.cc:490,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:492,1
    - Dst: Agenda::size
      Src: /src/sentencepiece/src/unigram_model.cc:492,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/unigram_model.cc:496,1
    - Dst: CloneHypAndDependents
      Src: /src/sentencepiece/src/unigram_model.cc:498,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/unigram_model.cc:499,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/unigram_model.cc:500,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model.cc:502,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model.cc:503,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 3
    argNames:
    - nbest_size
    - sample
    - inv_theta
    argTypes:
    - size_t
    - bool
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 508
    functionName: sentencepiece::unigram::Lattice::NBest
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::ToInt64Milliseconds
    - sentencepiece::unigram::Lattice::size
    - model::FreeList::Allocate
    - std::vector::size
    - std::move
    - sentencepiece::unigram::Lattice::Viterbi
    - sentencepiece::unigram::Lattice::bos_node
    - Agenda::push
    - Agenda::empty
    - model::FreeList::size
    - Gumbel
    - LOG
    - sentencepiece::unigram::Lattice::eos_node
    - std::exp
    - std::min<size_t>
    - sentencepiece::unigram::Lattice::ForwardAlgorithm
    - Agenda::pop
    - absl::Now
    - std::log1p
    - push_back
    - std::vector::resize
    - end_nodes
    - sentencepiece::GetNBestTimeout
    - std::abs
    - std::max
    - CloneHypAndDependents
    - Agenda::top
    - static_cast<float>
    - Agenda::size
    - std::vector::back
    linkageType: ''
    returnType: std::vector<Lattice::LatticePathWithScore>
    signature: "std::vector<Lattice::LatticePathWithScore> Lattice::NBest(size_t nbest_size,\n
      \                                                         bool sample,\n                                                          float
      inv_theta)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - Hypothesis*
    - Hypothesis*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: operator()(Hypothesis *h1, Hypothesis *h2)
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(Hypothesis *h1, Hypothesis *h2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:511,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:514,1
    - Dst: sentencepiece::unigram::Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:516,1
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/unigram_model.cc:518,1
    - Dst: sentencepiece::unigram::Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model.cc:523,1
    - Dst: sentencepiece::unigram::Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model.cc:524,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/unigram_model.cc:526,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model.cc:528,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:528,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:528,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model.cc:531,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model.cc:531,1
    - Dst: dist
      Src: /src/sentencepiece/src/unigram_model.cc:532,1
    - Dst: sentencepiece::unigram::Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model.cc:533,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model.cc:536,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/unigram_model.cc:539,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model.cc:539,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model.cc:539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - inv_theta
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 541
    functionName: sentencepiece::unigram::Lattice::Sample
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - dist
    - std::reverse
    - std::vector::end
    - sentencepiece::random::GetRandomGenerator
    - sentencepiece::unigram::Lattice::size
    - std::vector::push_back
    - static_cast<double>
    - sentencepiece::unigram::Lattice::bos_node
    - std::vector::clear
    - sentencepiece::unigram::Lattice::eos_node
    - std::exp
    - sentencepiece::unigram::Lattice::ForwardAlgorithm
    - std::vector::begin
    linkageType: ''
    returnType: std::vector<Lattice::Node *>
    signature: std::vector<Lattice::Node *> Lattice::Sample(float inv_theta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Lattice*::surface
      Src: /src/sentencepiece/src/unigram_model.cc:546,1
    - Dst: sentencepiece::unigram::Model::min_score
      Src: /src/sentencepiece/src/unigram_model.cc:550,1
    - Dst: Lattice*::size
      Src: /src/sentencepiece/src/unigram_model.cc:552,1
    - Dst: Lattice*::sentence
      Src: /src/sentencepiece/src/unigram_model.cc:553,1
    - Dst: Lattice*::utf8_size
      Src: /src/sentencepiece/src/unigram_model.cc:553,1
    - Dst: Lattice*::surface
      Src: /src/sentencepiece/src/unigram_model.cc:560,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/unigram_model.cc:563,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model.cc:563,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:564,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model.cc:565,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:566,1
    - Dst: std::vector::resize
      Src: /src/sentencepiece/src/unigram_model.cc:567,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/unigram_model.cc:568,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model.cc:568,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:569,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model.cc:570,1
    - Dst: get_chars_length
      Src: /src/sentencepiece/src/unigram_model.cc:578,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:580,1
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model.cc:581,1
    - Dst: IsUserDefinedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:584,1
    - Dst: GetUserDefinedScore
      Src: /src/sentencepiece/src/unigram_model.cc:584,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/unigram_model.cc:585,1
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model.cc:592,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - lattice
    argTypes:
    - Lattice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 597
    functionName: sentencepiece::unigram::Model::PopulateNodes
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Model::min_score
    - Lattice*::sentence
    - static_cast<int>
    - Lattice*::size
    - get_chars_length
    - IsUserDefinedInlined
    - Lattice*::Insert
    - GetScoreInlined
    - std::vector::size
    - Lattice*::utf8_size
    - Lattice*::surface
    - commonPrefixSearch
    - std::vector::resize
    - IsUnusedInlined
    - GetUserDefinedScore
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void Model::PopulateNodes(Lattice *lattice) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/unigram_model.cc:600,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model.cc:601,1
    - Dst: exactMatchSearch
      Src: /src/sentencepiece/src/unigram_model.cc:605,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:605,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 607
    functionName: sentencepiece::unigram::Model::PieceToId
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::size
    - end
    - absl::string_view::data
    - exactMatchSearch
    - find
    linkageType: ''
    returnType: int
    signature: int Model::PieceToId(absl::string_view piece) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:610,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::empty
      Src: /src/sentencepiece/src/unigram_model.cc:612,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:613,1
    - Dst: sort
      Src: /src/sentencepiece/src/unigram_model.cc:619,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::begin
      Src: /src/sentencepiece/src/unigram_model.cc:619,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::end
      Src: /src/sentencepiece/src/unigram_model.cc:619,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:622,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:623,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:624,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:625,1
    - Dst: first::data
      Src: /src/sentencepiece/src/unigram_model.cc:626,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model.cc:627,1
    - Dst: std::make_unique<Darts::DoubleArray>
      Src: /src/sentencepiece/src/unigram_model.cc:631,1
    - Dst: build
      Src: /src/sentencepiece/src/unigram_model.cc:632,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:632,1
    - Dst: const_cast<char **>
      Src: /src/sentencepiece/src/unigram_model.cc:632,1
    - Dst: const_cast<size_t *>
      Src: /src/sentencepiece/src/unigram_model.cc:633,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:634,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/unigram_model.cc:644,1
    - Dst: first::data
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:646,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:649,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:652,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pieces
    argTypes:
    - std::vector<std::pair<absl::string_view, int>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 653
    functionName: sentencepiece::unigram::Model::BuildTrie
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - std::vector<std::pair<absl::string_view, int>>*::end
    - std::vector<std::pair<absl::string_view, int>>*::size
    - std::vector<std::pair<absl::string_view, int>>*::begin
    - first::size
    - std::max
    - std::vector<std::pair<absl::string_view, int>>*::empty
    - const_cast<size_t *>
    - status
    - first::data
    - const_cast<char **>
    - clear
    - std::vector::size
    - commonPrefixSearch
    - std::make_unique<Darts::DoubleArray>
    - absl::InternalError
    - build
    - sort
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void Model::BuildTrie(std::vector<std::pair<absl::string_view, int>>
      *pieces)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/unigram_model.cc:658,1
    - Dst: pieces
      Src: /src/sentencepiece/src/unigram_model.cc:661,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: score
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: std::isinf
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: score
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:663,1
    - Dst: type
      Src: /src/sentencepiece/src/unigram_model.cc:666,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model.cc:667,1
    - Dst: score
      Src: /src/sentencepiece/src/unigram_model.cc:667,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:672,1
    - Dst: sentencepiece::unigram::Model::BuildTrie
      Src: /src/sentencepiece/src/unigram_model.cc:674,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - model_proto
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 675
    functionName: sentencepiece::unigram::Model::Model
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - score
    - type
    - std::vector::emplace_back
    - sentencepiece::unigram::Model::BuildTrie
    - pieces
    - absl::InternalError
    - InitializePieces
    - std::isnan
    - std::min
    - std::isinf
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto &model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 677
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Model::EncodeOptimized
      Src: /src/sentencepiece/src/unigram_model.cc:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 679
    functionDepth: 1
    functionLinenumber: 679
    functionLinenumberEnd: 681
    functionName: sentencepiece::unigram::Model::Encode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Model::EncodeOptimized
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::Encode(absl::string_view normalized) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:685,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:685,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model.cc:689,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/unigram_model.cc:689,1
    - Dst: std::pair<EncodeResult, float>
      Src: /src/sentencepiece/src/unigram_model.cc:692,1
    - Dst: sentencepiece::unigram::Model::Encode
      Src: /src/sentencepiece/src/unigram_model.cc:692,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model.cc:696,1
    - Dst: sentencepiece::unigram::Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model.cc:697,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model.cc:700,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:703,1
    - Dst: NBestEncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - normalized
    - nbest_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 709
    functionName: sentencepiece::unigram::Model::NBestEncode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - Lattice::SetSentence
    - NBestEncodeResult::emplace_back
    - absl::string_view::empty
    - status
    - std::max<int>
    - std::pair<EncodeResult, float>
    - EncodeResult::emplace_back
    - sentencepiece::unigram::Model::PopulateNodes
    - sentencepiece::unigram::Model::Encode
    - std::min<int>
    - Lattice::NBest
    linkageType: ''
    returnType: NBestEncodeResult
    signature: "NBestEncodeResult Model::NBestEncode(absl::string_view normalized,\n
      \                                    int nbest_size) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:713,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:713,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model.cc:718,1
    - Dst: sentencepiece::unigram::Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model.cc:719,1
    - Dst: Lattice::Sample
      Src: /src/sentencepiece/src/unigram_model.cc:722,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - normalized
    - inv_theta
    argTypes:
    - absl::string_view
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 727
    functionName: sentencepiece::unigram::Model::SampleEncode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::empty
    - status
    - EncodeResult::emplace_back
    - sentencepiece::unigram::Model::PopulateNodes
    - Lattice::Sample
    - Lattice::SetSentence
    linkageType: ''
    returnType: EncodeResult
    signature: "EncodeResult Model::SampleEncode(absl::string_view normalized,\n                                 float
      inv_theta) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Model::min_score
      Src: /src/sentencepiece/src/unigram_model.cc:734,1
    - Dst: sentencepiece::unigram::Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model.cc:736,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model.cc:740,1
    - Dst: IsUserDefinedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:741,1
    - Dst: GetUserDefinedScore
      Src: /src/sentencepiece/src/unigram_model.cc:742,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/unigram_model.cc:743,1
    - Dst: compute_unigram_model_score
      Src: /src/sentencepiece/src/unigram_model.cc:749,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/unigram_model.cc:749,1
    - Dst: compute_unigram_model_score
      Src: /src/sentencepiece/src/unigram_model.cc:751,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/unigram_model.cc:751,1
    - Dst: std::abs
      Src: /src/sentencepiece/src/unigram_model.cc:752,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 759
    functionName: sentencepiece::unigram::Model::VerifyOutputsEquivalent
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - compute_unigram_model_score
    - sentencepiece::unigram::Model::min_score
    - GetScoreInlined
    - size
    - IsUserDefinedInlined
    - sentencepiece::unigram::Model::PieceToId
    - LOG
    - GetUserDefinedScore
    - absl::StrSplit
    - std::abs
    linkageType: ''
    returnType: bool
    signature: "bool Model::VerifyOutputsEquivalent(absl::string_view expected,\n
      \                                   absl::string_view actual) const"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:814,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:814,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:826,1
    - Dst: sentencepiece::unigram::Model::min_score
      Src: /src/sentencepiece/src/unigram_model.cc:827,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/unigram_model.cc:851,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/unigram_model.cc:851,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:851,1
    - Dst: traverse
      Src: /src/sentencepiece/src/unigram_model.cc:855,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:855,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/src/unigram_model.cc:857,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:858,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:859,1
    - Dst: IsUserDefinedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:864,1
    - Dst: GetUserDefinedScore
      Src: /src/sentencepiece/src/unigram_model.cc:865,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/unigram_model.cc:866,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model.cc:875,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:882,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model.cc:882,1
    - Dst: EncodeResult::reserve
      Src: /src/sentencepiece/src/unigram_model.cc:898,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:902,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/unigram_model.cc:903,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/unigram_model.cc:906,1
    - Dst: EncodeResult::begin
      Src: /src/sentencepiece/src/unigram_model.cc:906,1
    - Dst: EncodeResult::end
      Src: /src/sentencepiece/src/unigram_model.cc:906,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 47
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 908
    functionName: sentencepiece::unigram::Model::EncodeOptimized
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 1
    functionsReached:
    - absl::string_view::empty
    - GetUserDefinedScore
    - sentencepiece::unigram::Model::min_score
    - GetScoreInlined
    - status
    - traverse
    - GetPieceSize
    - std::reverse
    - absl::string_view::substr
    - sentencepiece::string_util::OneCharLen
    - absl::string_view::size
    - absl::string_view::data
    - std::max
    - IsUserDefinedInlined
    - EncodeResult::begin
    - EncodeResult::reserve
    - static_cast<size_t>
    - EncodeResult::emplace_back
    - IsUnusedInlined
    - EncodeResult::end
    - std::min<int>
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::EncodeOptimized(absl::string_view normalized) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model.cc:54,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:55,1
    - Dst: log
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - init_mode
    argTypes:
    - float
    - float
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: sentencepiece::unigram::LogSumExp
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - log
    - std::exp
    - static_cast<double>
    - std::max
    - std::min
    linkageType: ''
    returnType: float
    signature: float LogSumExp(float x, float y, bool init_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: sentencepiece::unigram::GetUserDefinedScore
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetUserDefinedScore(int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/unigram_model.cc:82,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: absl::Uniform
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: sentencepiece::unigram::Gumbel
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::random::GetRandomGenerator
    - absl::Uniform
    - std::log
    linkageType: ''
    returnType: float
    signature: float Gumbel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model.cc:54,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:55,1
    - Dst: log
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - init_mode
    argTypes:
    - float
    - float
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: sentencepiece::unigram::LogSumExp
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - log
    - std::exp
    - static_cast<double>
    - std::max
    - std::min
    linkageType: ''
    returnType: float
    signature: float LogSumExp(float x, float y, bool init_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: sentencepiece::unigram::GetUserDefinedScore
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetUserDefinedScore(int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/unigram_model.cc:82,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: absl::Uniform
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: sentencepiece::unigram::Gumbel
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::random::GetRandomGenerator
    - absl::Uniform
    - std::log
    linkageType: ''
    returnType: float
    signature: float Gumbel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: sentencepiece::unigram::Lattice::Lattice
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Lattice::Lattice()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Lattice::~Lattice()
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Lattice::~Lattice()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: '&Lattice::begin_nodes(int pos) const'
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Lattice::Node *>
    signature: std::vector<Lattice::Node *> &Lattice::begin_nodes(int pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: '&Lattice::end_nodes(int pos) const'
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Lattice::Node *>
    signature: std::vector<Lattice::Node *> &Lattice::end_nodes(int pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model.cc:103,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: sentencepiece::unigram::Lattice::size
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 12
    functionsReached:
    - std::max<int>
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: int
    signature: int Lattice::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: sentencepiece::unigram::Lattice::utf8_size
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: int
    signature: int Lattice::utf8_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/sentencepiece/src/unigram_model.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: sentencepiece::unigram::Lattice::sentence
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: char
    signature: char *Lattice::sentence() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: sentencepiece::unigram::Lattice::surface
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *Lattice::surface(int pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: sentencepiece::unigram::Lattice::bos_node
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::bos_node() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: sentencepiece::unigram::Lattice::eos_node
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::eos_node() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:117,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: sentencepiece::unigram::Lattice::NewNode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 2
    functionsReached:
    - Allocate
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::NewNode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:123,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:124,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/unigram_model.cc:125,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:126,1
    - Dst: Free
      Src: /src/sentencepiece/src/unigram_model.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: sentencepiece::unigram::Lattice::Clear
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 1
    functionsReached:
    - clear
    - Free
    - absl::string_view
    linkageType: ''
    returnType: void
    signature: void Lattice::Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::Clear
      Src: /src/sentencepiece/src/unigram_model.cc:131,1
    - Dst: reserve
      Src: /src/sentencepiece/src/unigram_model.cc:134,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:134,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:136,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/unigram_model.cc:137,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/unigram_model.cc:137,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:137,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:138,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:139,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:139,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/unigram_model.cc:140,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:142,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:142,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:144,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model.cc:145,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model.cc:146,1
    - Dst: reserve
      Src: /src/sentencepiece/src/unigram_model.cc:150,1
    - Dst: reserve
      Src: /src/sentencepiece/src/unigram_model.cc:151,1
    - Dst: sentencepiece::unigram::Lattice::NewNode
      Src: /src/sentencepiece/src/unigram_model.cc:154,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:157,1
    - Dst: sentencepiece::unigram::Lattice::NewNode
      Src: /src/sentencepiece/src/unigram_model.cc:159,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - sentence
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 163
    functionName: sentencepiece::unigram::Lattice::SetSentence
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Lattice::Clear
    - resize
    - absl::string_view::empty
    - sentencepiece::unigram::Lattice::size
    - sentencepiece::unigram::Lattice::NewNode
    - push_back
    - absl::string_view::remove_prefix
    - sentencepiece::string_util::OneCharLen
    - absl::string_view::size
    - reserve
    - absl::string_view::data
    - std::min<int>
    linkageType: ''
    returnType: void
    signature: void Lattice::SetSentence(absl::string_view sentence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::NewNode
      Src: /src/sentencepiece/src/unigram_model.cc:166,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model.cc:170,1
    - Dst: sentencepiece::unigram::Lattice::surface
      Src: /src/sentencepiece/src/unigram_model.cc:170,1
    - Dst: sentencepiece::unigram::Lattice::surface
      Src: /src/sentencepiece/src/unigram_model.cc:170,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/unigram_model.cc:171,1
    - Dst: sentencepiece::unigram::Lattice::surface
      Src: /src/sentencepiece/src/unigram_model.cc:171,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:172,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pos
    - length
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: sentencepiece::unigram::Lattice::Insert
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - sentencepiece::unigram::Lattice::NewNode
    - sentencepiece::unigram::Lattice::surface
    - absl::string_view
    - push_back
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::Insert(int pos, int length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:179,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:194,1
    - Dst: begin_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:204,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model.cc:207,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/unigram_model.cc:210,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model.cc:210,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model.cc:210,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 215
    functionName: sentencepiece::unigram::Lattice::Viterbi
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 1
    functionsReached:
    - std::reverse
    - std::vector::end
    - begin_nodes
    - sentencepiece::unigram::Lattice::size
    - std::vector::push_back
    - LOG
    - std::vector::begin
    linkageType: ''
    returnType: Lattice::LatticePathWithScore
    signature: Lattice::LatticePathWithScore Lattice::Viterbi()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:218,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:219,1
    - Dst: LogSumExp
      Src: /src/sentencepiece/src/unigram_model.cc:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - inv_theta
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: sentencepiece::unigram::Lattice::ForwardAlgorithm
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 3
    functionsReached:
    - LogSumExp
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: std::vector<float>
    signature: std::vector<float> Lattice::ForwardAlgorithm(float inv_theta) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:236,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:237,1
    - Dst: LogSumExp
      Src: /src/sentencepiece/src/unigram_model.cc:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - inv_theta
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: sentencepiece::unigram::Lattice::BackwardAlgorithm
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 1
    functionsReached:
    - LogSumExp
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: std::vector<float>
    signature: std::vector<float> Lattice::BackwardAlgorithm(float inv_theta) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:256,1
    - Dst: sentencepiece::unigram::Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:261,1
    - Dst: sentencepiece::unigram::Lattice::BackwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:262,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:271,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - freq
    - expected
    argTypes:
    - float
    - std::vector<float>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 278
    functionName: sentencepiece::unigram::Lattice::PopulateMarginal
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Lattice::size
    - std::exp
    - sentencepiece::unigram::Lattice::BackwardAlgorithm
    - static_cast<double>
    - sentencepiece::unigram::Lattice::ForwardAlgorithm
    linkageType: ''
    returnType: float
    signature: "float Lattice::PopulateMarginal(float freq,\n                                std::vector<float>
      *expected) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
      Src: /src/sentencepiece/src/unigram_model.cc:311,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
      Src: /src/sentencepiece/src/unigram_model.cc:312,1
    - Dst: model::FreeList<Hypothesis>*::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:318,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
      Src: /src/sentencepiece/src/unigram_model.cc:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - to_clone
    - clone_map
    - allocator
    argTypes:
    - Hypothesis*
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*
    - model::FreeList<Hypothesis>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 328
    functionName: sentencepiece::unigram::CloneHypAndDependents
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
    - model::FreeList<Hypothesis>*::Allocate
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
    linkageType: ''
    returnType: Hypothesis
    signature: "Hypothesis *CloneHypAndDependents(\n    const Hypothesis *to_clone,\n
      \   absl::flat_hash_map<const Hypothesis *, Hypothesis *> *clone_map,\n    model::FreeList<Hypothesis>
      *allocator)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
      Src: /src/sentencepiece/src/unigram_model.cc:311,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
      Src: /src/sentencepiece/src/unigram_model.cc:312,1
    - Dst: model::FreeList<Hypothesis>*::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:318,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
      Src: /src/sentencepiece/src/unigram_model.cc:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - to_clone
    - clone_map
    - allocator
    argTypes:
    - Hypothesis*
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*
    - model::FreeList<Hypothesis>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 328
    functionName: sentencepiece::unigram::CloneHypAndDependents
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
    - model::FreeList<Hypothesis>*::Allocate
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
    linkageType: ''
    returnType: Hypothesis
    signature: "Hypothesis *CloneHypAndDependents(\n    const Hypothesis *to_clone,\n
      \   absl::flat_hash_map<const Hypothesis *, Hypothesis *> *clone_map,\n    model::FreeList<Hypothesis>
      *allocator)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:336,1
    - Dst: sentencepiece::unigram::Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model.cc:341,1
    - Dst: sentencepiece::GetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model.cc:344,1
    - Dst: absl::Now
      Src: /src/sentencepiece/src/unigram_model.cc:345,1
    - Dst: model::FreeList::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:374,1
    - Dst: sentencepiece::unigram::Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model.cc:375,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:379,1
    - Dst: sentencepiece::unigram::Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:383,1
    - Dst: Gumbel
      Src: /src/sentencepiece/src/unigram_model.cc:385,1
    - Dst: sentencepiece::unigram::Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model.cc:388,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/unigram_model.cc:391,1
    - Dst: Agenda::empty
      Src: /src/sentencepiece/src/unigram_model.cc:395,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/unigram_model.cc:396,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/unigram_model.cc:397,1
    - Dst: sentencepiece::unigram::Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model.cc:401,1
    - Dst: std::vector::resize
      Src: /src/sentencepiece/src/unigram_model.cc:402,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:402,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model.cc:404,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:404,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model.cc:406,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:407,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:413,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:421,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:422,1
    - Dst: Gumbel
      Src: /src/sentencepiece/src/unigram_model.cc:426,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:432,1
    - Dst: std::log1p
      Src: /src/sentencepiece/src/unigram_model.cc:436,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:436,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:437,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model.cc:437,1
    - Dst: std::log1p
      Src: /src/sentencepiece/src/unigram_model.cc:438,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:438,1
    - Dst: std::abs
      Src: /src/sentencepiece/src/unigram_model.cc:438,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:443,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:444,1
    - Dst: model::FreeList::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:445,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/unigram_model.cc:456,1
    - Dst: model::FreeList::size
      Src: /src/sentencepiece/src/unigram_model.cc:460,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:463,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:464,1
    - Dst: Agenda::size
      Src: /src/sentencepiece/src/unigram_model.cc:473,1
    - Dst: absl::ToInt64Milliseconds
      Src: /src/sentencepiece/src/unigram_model.cc:476,1
    - Dst: absl::Now
      Src: /src/sentencepiece/src/unigram_model.cc:476,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:478,1
    - Dst: sentencepiece::unigram::Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model.cc:480,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/unigram_model.cc:490,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:492,1
    - Dst: Agenda::size
      Src: /src/sentencepiece/src/unigram_model.cc:492,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/unigram_model.cc:496,1
    - Dst: CloneHypAndDependents
      Src: /src/sentencepiece/src/unigram_model.cc:498,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/unigram_model.cc:499,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/unigram_model.cc:500,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model.cc:502,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model.cc:503,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 3
    argNames:
    - nbest_size
    - sample
    - inv_theta
    argTypes:
    - size_t
    - bool
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 508
    functionName: sentencepiece::unigram::Lattice::NBest
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::ToInt64Milliseconds
    - sentencepiece::unigram::Lattice::size
    - model::FreeList::Allocate
    - std::vector::size
    - std::move
    - sentencepiece::unigram::Lattice::Viterbi
    - sentencepiece::unigram::Lattice::bos_node
    - Agenda::push
    - Agenda::empty
    - model::FreeList::size
    - Gumbel
    - LOG
    - sentencepiece::unigram::Lattice::eos_node
    - std::exp
    - std::min<size_t>
    - sentencepiece::unigram::Lattice::ForwardAlgorithm
    - Agenda::pop
    - absl::Now
    - std::log1p
    - push_back
    - std::vector::resize
    - end_nodes
    - sentencepiece::GetNBestTimeout
    - std::abs
    - std::max
    - CloneHypAndDependents
    - Agenda::top
    - static_cast<float>
    - Agenda::size
    - std::vector::back
    linkageType: ''
    returnType: std::vector<Lattice::LatticePathWithScore>
    signature: "std::vector<Lattice::LatticePathWithScore> Lattice::NBest(size_t nbest_size,\n
      \                                                         bool sample,\n                                                          float
      inv_theta)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - Hypothesis*
    - Hypothesis*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: operator()(Hypothesis *h1, Hypothesis *h2)
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(Hypothesis *h1, Hypothesis *h2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:511,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:514,1
    - Dst: sentencepiece::unigram::Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:516,1
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/unigram_model.cc:518,1
    - Dst: sentencepiece::unigram::Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model.cc:523,1
    - Dst: sentencepiece::unigram::Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model.cc:524,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/unigram_model.cc:526,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model.cc:528,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:528,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:528,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model.cc:531,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model.cc:531,1
    - Dst: dist
      Src: /src/sentencepiece/src/unigram_model.cc:532,1
    - Dst: sentencepiece::unigram::Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model.cc:533,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model.cc:536,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/unigram_model.cc:539,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model.cc:539,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model.cc:539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - inv_theta
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 541
    functionName: sentencepiece::unigram::Lattice::Sample
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - dist
    - std::reverse
    - std::vector::end
    - sentencepiece::random::GetRandomGenerator
    - sentencepiece::unigram::Lattice::size
    - std::vector::push_back
    - static_cast<double>
    - sentencepiece::unigram::Lattice::bos_node
    - std::vector::clear
    - sentencepiece::unigram::Lattice::eos_node
    - std::exp
    - sentencepiece::unigram::Lattice::ForwardAlgorithm
    - std::vector::begin
    linkageType: ''
    returnType: std::vector<Lattice::Node *>
    signature: std::vector<Lattice::Node *> Lattice::Sample(float inv_theta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Lattice*::surface
      Src: /src/sentencepiece/src/unigram_model.cc:546,1
    - Dst: sentencepiece::unigram::Model::min_score
      Src: /src/sentencepiece/src/unigram_model.cc:550,1
    - Dst: Lattice*::size
      Src: /src/sentencepiece/src/unigram_model.cc:552,1
    - Dst: Lattice*::sentence
      Src: /src/sentencepiece/src/unigram_model.cc:553,1
    - Dst: Lattice*::utf8_size
      Src: /src/sentencepiece/src/unigram_model.cc:553,1
    - Dst: Lattice*::surface
      Src: /src/sentencepiece/src/unigram_model.cc:560,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/unigram_model.cc:563,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model.cc:563,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:564,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model.cc:565,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:566,1
    - Dst: std::vector::resize
      Src: /src/sentencepiece/src/unigram_model.cc:567,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/unigram_model.cc:568,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model.cc:568,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:569,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model.cc:570,1
    - Dst: get_chars_length
      Src: /src/sentencepiece/src/unigram_model.cc:578,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:580,1
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model.cc:581,1
    - Dst: IsUserDefinedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:584,1
    - Dst: GetUserDefinedScore
      Src: /src/sentencepiece/src/unigram_model.cc:584,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/unigram_model.cc:585,1
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model.cc:592,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - lattice
    argTypes:
    - Lattice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 597
    functionName: sentencepiece::unigram::Model::PopulateNodes
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::unigram::Model::min_score
    - Lattice*::sentence
    - static_cast<int>
    - Lattice*::size
    - get_chars_length
    - IsUserDefinedInlined
    - Lattice*::Insert
    - GetScoreInlined
    - std::vector::size
    - Lattice*::utf8_size
    - Lattice*::surface
    - commonPrefixSearch
    - std::vector::resize
    - IsUnusedInlined
    - GetUserDefinedScore
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void Model::PopulateNodes(Lattice *lattice) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/unigram_model.cc:600,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model.cc:601,1
    - Dst: exactMatchSearch
      Src: /src/sentencepiece/src/unigram_model.cc:605,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:605,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 607
    functionName: sentencepiece::unigram::Model::PieceToId
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 1
    functionsReached:
    - absl::string_view::size
    - end
    - absl::string_view::data
    - exactMatchSearch
    - find
    linkageType: ''
    returnType: int
    signature: int Model::PieceToId(absl::string_view piece) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:610,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::empty
      Src: /src/sentencepiece/src/unigram_model.cc:612,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:613,1
    - Dst: sort
      Src: /src/sentencepiece/src/unigram_model.cc:619,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::begin
      Src: /src/sentencepiece/src/unigram_model.cc:619,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::end
      Src: /src/sentencepiece/src/unigram_model.cc:619,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:622,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:623,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:624,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:625,1
    - Dst: first::data
      Src: /src/sentencepiece/src/unigram_model.cc:626,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model.cc:627,1
    - Dst: std::make_unique<Darts::DoubleArray>
      Src: /src/sentencepiece/src/unigram_model.cc:631,1
    - Dst: build
      Src: /src/sentencepiece/src/unigram_model.cc:632,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:632,1
    - Dst: const_cast<char **>
      Src: /src/sentencepiece/src/unigram_model.cc:632,1
    - Dst: const_cast<size_t *>
      Src: /src/sentencepiece/src/unigram_model.cc:633,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:634,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/unigram_model.cc:644,1
    - Dst: first::data
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:646,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:649,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:652,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pieces
    argTypes:
    - std::vector<std::pair<absl::string_view, int>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 653
    functionName: sentencepiece::unigram::Model::BuildTrie
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 1
    functionsReached:
    - std::vector<std::pair<absl::string_view, int>>*::end
    - std::vector<std::pair<absl::string_view, int>>*::size
    - std::vector<std::pair<absl::string_view, int>>*::begin
    - first::size
    - std::max
    - std::vector<std::pair<absl::string_view, int>>*::empty
    - const_cast<size_t *>
    - status
    - first::data
    - const_cast<char **>
    - clear
    - std::vector::size
    - commonPrefixSearch
    - std::make_unique<Darts::DoubleArray>
    - absl::InternalError
    - build
    - sort
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void Model::BuildTrie(std::vector<std::pair<absl::string_view, int>>
      *pieces)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/unigram_model.cc:658,1
    - Dst: pieces
      Src: /src/sentencepiece/src/unigram_model.cc:661,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: score
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: std::isinf
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: score
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:663,1
    - Dst: type
      Src: /src/sentencepiece/src/unigram_model.cc:666,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model.cc:667,1
    - Dst: score
      Src: /src/sentencepiece/src/unigram_model.cc:667,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:672,1
    - Dst: sentencepiece::unigram::Model::BuildTrie
      Src: /src/sentencepiece/src/unigram_model.cc:674,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - model_proto
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 675
    functionName: sentencepiece::unigram::Model::Model
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - score
    - type
    - std::vector::emplace_back
    - sentencepiece::unigram::Model::BuildTrie
    - pieces
    - absl::InternalError
    - InitializePieces
    - std::isnan
    - std::min
    - std::isinf
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto &model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 677
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Model::EncodeOptimized
      Src: /src/sentencepiece/src/unigram_model.cc:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 681
    functionName: sentencepiece::unigram::Model::Encode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::unigram::Model::EncodeOptimized
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::Encode(absl::string_view normalized) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:685,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:685,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model.cc:689,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/unigram_model.cc:689,1
    - Dst: std::pair<EncodeResult, float>
      Src: /src/sentencepiece/src/unigram_model.cc:692,1
    - Dst: sentencepiece::unigram::Model::Encode
      Src: /src/sentencepiece/src/unigram_model.cc:692,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model.cc:696,1
    - Dst: sentencepiece::unigram::Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model.cc:697,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model.cc:700,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:703,1
    - Dst: NBestEncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - normalized
    - nbest_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 709
    functionName: sentencepiece::unigram::Model::NBestEncode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - Lattice::SetSentence
    - NBestEncodeResult::emplace_back
    - absl::string_view::empty
    - status
    - std::max<int>
    - std::pair<EncodeResult, float>
    - EncodeResult::emplace_back
    - sentencepiece::unigram::Model::PopulateNodes
    - sentencepiece::unigram::Model::Encode
    - std::min<int>
    - Lattice::NBest
    linkageType: ''
    returnType: NBestEncodeResult
    signature: "NBestEncodeResult Model::NBestEncode(absl::string_view normalized,\n
      \                                    int nbest_size) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:713,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:713,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model.cc:718,1
    - Dst: sentencepiece::unigram::Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model.cc:719,1
    - Dst: Lattice::Sample
      Src: /src/sentencepiece/src/unigram_model.cc:722,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - normalized
    - inv_theta
    argTypes:
    - absl::string_view
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 727
    functionName: sentencepiece::unigram::Model::SampleEncode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::empty
    - status
    - EncodeResult::emplace_back
    - sentencepiece::unigram::Model::PopulateNodes
    - Lattice::Sample
    - Lattice::SetSentence
    linkageType: ''
    returnType: EncodeResult
    signature: "EncodeResult Model::SampleEncode(absl::string_view normalized,\n                                 float
      inv_theta) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Model::min_score
      Src: /src/sentencepiece/src/unigram_model.cc:734,1
    - Dst: sentencepiece::unigram::Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model.cc:736,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model.cc:740,1
    - Dst: IsUserDefinedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:741,1
    - Dst: GetUserDefinedScore
      Src: /src/sentencepiece/src/unigram_model.cc:742,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/unigram_model.cc:743,1
    - Dst: compute_unigram_model_score
      Src: /src/sentencepiece/src/unigram_model.cc:749,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/unigram_model.cc:749,1
    - Dst: compute_unigram_model_score
      Src: /src/sentencepiece/src/unigram_model.cc:751,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/unigram_model.cc:751,1
    - Dst: std::abs
      Src: /src/sentencepiece/src/unigram_model.cc:752,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 759
    functionName: sentencepiece::unigram::Model::VerifyOutputsEquivalent
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - compute_unigram_model_score
    - sentencepiece::unigram::Model::min_score
    - GetScoreInlined
    - size
    - IsUserDefinedInlined
    - sentencepiece::unigram::Model::PieceToId
    - LOG
    - GetUserDefinedScore
    - absl::StrSplit
    - std::abs
    linkageType: ''
    returnType: bool
    signature: "bool Model::VerifyOutputsEquivalent(absl::string_view expected,\n
      \                                   absl::string_view actual) const"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:814,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:814,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:826,1
    - Dst: sentencepiece::unigram::Model::min_score
      Src: /src/sentencepiece/src/unigram_model.cc:827,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/unigram_model.cc:851,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/unigram_model.cc:851,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:851,1
    - Dst: traverse
      Src: /src/sentencepiece/src/unigram_model.cc:855,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:855,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/src/unigram_model.cc:857,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:858,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:859,1
    - Dst: IsUserDefinedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:864,1
    - Dst: GetUserDefinedScore
      Src: /src/sentencepiece/src/unigram_model.cc:865,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/unigram_model.cc:866,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model.cc:875,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:882,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model.cc:882,1
    - Dst: EncodeResult::reserve
      Src: /src/sentencepiece/src/unigram_model.cc:898,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:902,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/unigram_model.cc:903,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/unigram_model.cc:906,1
    - Dst: EncodeResult::begin
      Src: /src/sentencepiece/src/unigram_model.cc:906,1
    - Dst: EncodeResult::end
      Src: /src/sentencepiece/src/unigram_model.cc:906,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 47
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 908
    functionName: sentencepiece::unigram::Model::EncodeOptimized
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 2
    functionsReached:
    - absl::string_view::empty
    - GetUserDefinedScore
    - sentencepiece::unigram::Model::min_score
    - GetScoreInlined
    - status
    - traverse
    - GetPieceSize
    - std::reverse
    - absl::string_view::substr
    - sentencepiece::string_util::OneCharLen
    - absl::string_view::size
    - absl::string_view::data
    - std::max
    - IsUserDefinedInlined
    - EncodeResult::begin
    - EncodeResult::reserve
    - static_cast<size_t>
    - EncodeResult::emplace_back
    - IsUnusedInlined
    - EncodeResult::end
    - std::min<int>
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::EncodeOptimized(absl::string_view normalized) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model.cc:54,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:55,1
    - Dst: log
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - init_mode
    argTypes:
    - float
    - float
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: sentencepiece::unigram::LogSumExp
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - log
    - std::exp
    - static_cast<double>
    - std::max
    - std::min
    linkageType: ''
    returnType: float
    signature: float LogSumExp(float x, float y, bool init_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: sentencepiece::unigram::GetUserDefinedScore
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetUserDefinedScore(int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/unigram_model.cc:82,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: absl::Uniform
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: sentencepiece::unigram::Gumbel
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::random::GetRandomGenerator
    - absl::Uniform
    - std::log
    linkageType: ''
    returnType: float
    signature: float Gumbel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model.cc:54,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:55,1
    - Dst: log
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - init_mode
    argTypes:
    - float
    - float
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: sentencepiece::unigram::LogSumExp
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - log
    - std::exp
    - static_cast<double>
    - std::max
    - std::min
    linkageType: ''
    returnType: float
    signature: float LogSumExp(float x, float y, bool init_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: sentencepiece::unigram::GetUserDefinedScore
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetUserDefinedScore(int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/unigram_model.cc:82,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: absl::Uniform
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: sentencepiece::unigram::Gumbel
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::random::GetRandomGenerator
    - absl::Uniform
    - std::log
    linkageType: ''
    returnType: float
    signature: float Gumbel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: sentencepiece::unigram::Lattice::Lattice
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Lattice::Lattice()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Lattice::~Lattice()
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Lattice::~Lattice()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: '&Lattice::begin_nodes(int pos) const'
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Lattice::Node *>
    signature: std::vector<Lattice::Node *> &Lattice::begin_nodes(int pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: '&Lattice::end_nodes(int pos) const'
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Lattice::Node *>
    signature: std::vector<Lattice::Node *> &Lattice::end_nodes(int pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model.cc:103,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: sentencepiece::unigram::Lattice::size
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 23
    functionsReached:
    - std::max<int>
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: int
    signature: int Lattice::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: sentencepiece::unigram::Lattice::utf8_size
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: int
    signature: int Lattice::utf8_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/sentencepiece/src/unigram_model.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: sentencepiece::unigram::Lattice::sentence
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: char
    signature: char *Lattice::sentence() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: sentencepiece::unigram::Lattice::surface
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *Lattice::surface(int pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: sentencepiece::unigram::Lattice::bos_node
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::bos_node() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: sentencepiece::unigram::Lattice::eos_node
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 4
    functionsReached:
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::eos_node() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:117,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: sentencepiece::unigram::Lattice::NewNode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 4
    functionsReached:
    - Allocate
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::NewNode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:123,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:124,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/unigram_model.cc:125,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:126,1
    - Dst: Free
      Src: /src/sentencepiece/src/unigram_model.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: sentencepiece::unigram::Lattice::Clear
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 2
    functionsReached:
    - clear
    - Free
    - absl::string_view
    linkageType: ''
    returnType: void
    signature: void Lattice::Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::Clear
      Src: /src/sentencepiece/src/unigram_model.cc:131,1
    - Dst: reserve
      Src: /src/sentencepiece/src/unigram_model.cc:134,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:134,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:136,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/unigram_model.cc:137,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/unigram_model.cc:137,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:137,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:138,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:139,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:139,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/unigram_model.cc:140,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:142,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:142,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:144,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model.cc:145,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model.cc:146,1
    - Dst: reserve
      Src: /src/sentencepiece/src/unigram_model.cc:150,1
    - Dst: reserve
      Src: /src/sentencepiece/src/unigram_model.cc:151,1
    - Dst: sentencepiece::unigram::Lattice::NewNode
      Src: /src/sentencepiece/src/unigram_model.cc:154,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:157,1
    - Dst: sentencepiece::unigram::Lattice::NewNode
      Src: /src/sentencepiece/src/unigram_model.cc:159,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - sentence
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 163
    functionName: sentencepiece::unigram::Lattice::SetSentence
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Lattice::Clear
    - resize
    - absl::string_view::empty
    - sentencepiece::unigram::Lattice::size
    - sentencepiece::unigram::Lattice::NewNode
    - push_back
    - absl::string_view::remove_prefix
    - sentencepiece::string_util::OneCharLen
    - absl::string_view::size
    - reserve
    - absl::string_view::data
    - std::min<int>
    linkageType: ''
    returnType: void
    signature: void Lattice::SetSentence(absl::string_view sentence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::NewNode
      Src: /src/sentencepiece/src/unigram_model.cc:166,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model.cc:170,1
    - Dst: sentencepiece::unigram::Lattice::surface
      Src: /src/sentencepiece/src/unigram_model.cc:170,1
    - Dst: sentencepiece::unigram::Lattice::surface
      Src: /src/sentencepiece/src/unigram_model.cc:170,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/unigram_model.cc:171,1
    - Dst: sentencepiece::unigram::Lattice::surface
      Src: /src/sentencepiece/src/unigram_model.cc:171,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:172,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pos
    - length
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: sentencepiece::unigram::Lattice::Insert
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - sentencepiece::unigram::Lattice::NewNode
    - sentencepiece::unigram::Lattice::surface
    - absl::string_view
    - push_back
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::Insert(int pos, int length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:179,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:194,1
    - Dst: begin_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:204,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model.cc:207,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/unigram_model.cc:210,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model.cc:210,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model.cc:210,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 215
    functionName: sentencepiece::unigram::Lattice::Viterbi
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 2
    functionsReached:
    - std::reverse
    - std::vector::end
    - begin_nodes
    - sentencepiece::unigram::Lattice::size
    - std::vector::push_back
    - LOG
    - std::vector::begin
    linkageType: ''
    returnType: Lattice::LatticePathWithScore
    signature: Lattice::LatticePathWithScore Lattice::Viterbi()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:218,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:219,1
    - Dst: LogSumExp
      Src: /src/sentencepiece/src/unigram_model.cc:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - inv_theta
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: sentencepiece::unigram::Lattice::ForwardAlgorithm
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 6
    functionsReached:
    - LogSumExp
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: std::vector<float>
    signature: std::vector<float> Lattice::ForwardAlgorithm(float inv_theta) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:236,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:237,1
    - Dst: LogSumExp
      Src: /src/sentencepiece/src/unigram_model.cc:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - inv_theta
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: sentencepiece::unigram::Lattice::BackwardAlgorithm
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 2
    functionsReached:
    - LogSumExp
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: std::vector<float>
    signature: std::vector<float> Lattice::BackwardAlgorithm(float inv_theta) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:256,1
    - Dst: sentencepiece::unigram::Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:261,1
    - Dst: sentencepiece::unigram::Lattice::BackwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:262,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:271,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - freq
    - expected
    argTypes:
    - float
    - std::vector<float>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 278
    functionName: sentencepiece::unigram::Lattice::PopulateMarginal
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Lattice::size
    - std::exp
    - sentencepiece::unigram::Lattice::BackwardAlgorithm
    - static_cast<double>
    - sentencepiece::unigram::Lattice::ForwardAlgorithm
    linkageType: ''
    returnType: float
    signature: "float Lattice::PopulateMarginal(float freq,\n                                std::vector<float>
      *expected) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
      Src: /src/sentencepiece/src/unigram_model.cc:311,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
      Src: /src/sentencepiece/src/unigram_model.cc:312,1
    - Dst: model::FreeList<Hypothesis>*::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:318,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
      Src: /src/sentencepiece/src/unigram_model.cc:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - to_clone
    - clone_map
    - allocator
    argTypes:
    - Hypothesis*
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*
    - model::FreeList<Hypothesis>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 328
    functionName: sentencepiece::unigram::CloneHypAndDependents
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
    - model::FreeList<Hypothesis>*::Allocate
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
    linkageType: ''
    returnType: Hypothesis
    signature: "Hypothesis *CloneHypAndDependents(\n    const Hypothesis *to_clone,\n
      \   absl::flat_hash_map<const Hypothesis *, Hypothesis *> *clone_map,\n    model::FreeList<Hypothesis>
      *allocator)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
      Src: /src/sentencepiece/src/unigram_model.cc:311,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
      Src: /src/sentencepiece/src/unigram_model.cc:312,1
    - Dst: model::FreeList<Hypothesis>*::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:318,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
      Src: /src/sentencepiece/src/unigram_model.cc:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - to_clone
    - clone_map
    - allocator
    argTypes:
    - Hypothesis*
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*
    - model::FreeList<Hypothesis>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 328
    functionName: sentencepiece::unigram::CloneHypAndDependents
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
    - model::FreeList<Hypothesis>*::Allocate
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
    linkageType: ''
    returnType: Hypothesis
    signature: "Hypothesis *CloneHypAndDependents(\n    const Hypothesis *to_clone,\n
      \   absl::flat_hash_map<const Hypothesis *, Hypothesis *> *clone_map,\n    model::FreeList<Hypothesis>
      *allocator)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:336,1
    - Dst: sentencepiece::unigram::Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model.cc:341,1
    - Dst: sentencepiece::GetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model.cc:344,1
    - Dst: absl::Now
      Src: /src/sentencepiece/src/unigram_model.cc:345,1
    - Dst: model::FreeList::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:374,1
    - Dst: sentencepiece::unigram::Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model.cc:375,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:379,1
    - Dst: sentencepiece::unigram::Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:383,1
    - Dst: Gumbel
      Src: /src/sentencepiece/src/unigram_model.cc:385,1
    - Dst: sentencepiece::unigram::Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model.cc:388,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/unigram_model.cc:391,1
    - Dst: Agenda::empty
      Src: /src/sentencepiece/src/unigram_model.cc:395,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/unigram_model.cc:396,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/unigram_model.cc:397,1
    - Dst: sentencepiece::unigram::Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model.cc:401,1
    - Dst: std::vector::resize
      Src: /src/sentencepiece/src/unigram_model.cc:402,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:402,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model.cc:404,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:404,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model.cc:406,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:407,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:413,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:421,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:422,1
    - Dst: Gumbel
      Src: /src/sentencepiece/src/unigram_model.cc:426,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:432,1
    - Dst: std::log1p
      Src: /src/sentencepiece/src/unigram_model.cc:436,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:436,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:437,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model.cc:437,1
    - Dst: std::log1p
      Src: /src/sentencepiece/src/unigram_model.cc:438,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:438,1
    - Dst: std::abs
      Src: /src/sentencepiece/src/unigram_model.cc:438,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:443,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:444,1
    - Dst: model::FreeList::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:445,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/unigram_model.cc:456,1
    - Dst: model::FreeList::size
      Src: /src/sentencepiece/src/unigram_model.cc:460,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:463,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:464,1
    - Dst: Agenda::size
      Src: /src/sentencepiece/src/unigram_model.cc:473,1
    - Dst: absl::ToInt64Milliseconds
      Src: /src/sentencepiece/src/unigram_model.cc:476,1
    - Dst: absl::Now
      Src: /src/sentencepiece/src/unigram_model.cc:476,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:478,1
    - Dst: sentencepiece::unigram::Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model.cc:480,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/unigram_model.cc:490,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:492,1
    - Dst: Agenda::size
      Src: /src/sentencepiece/src/unigram_model.cc:492,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/unigram_model.cc:496,1
    - Dst: CloneHypAndDependents
      Src: /src/sentencepiece/src/unigram_model.cc:498,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/unigram_model.cc:499,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/unigram_model.cc:500,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model.cc:502,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model.cc:503,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 3
    argNames:
    - nbest_size
    - sample
    - inv_theta
    argTypes:
    - size_t
    - bool
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 508
    functionName: sentencepiece::unigram::Lattice::NBest
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::ToInt64Milliseconds
    - sentencepiece::unigram::Lattice::size
    - model::FreeList::Allocate
    - std::vector::size
    - std::move
    - sentencepiece::unigram::Lattice::Viterbi
    - sentencepiece::unigram::Lattice::bos_node
    - Agenda::push
    - Agenda::empty
    - model::FreeList::size
    - Gumbel
    - LOG
    - sentencepiece::unigram::Lattice::eos_node
    - std::exp
    - std::min<size_t>
    - sentencepiece::unigram::Lattice::ForwardAlgorithm
    - Agenda::pop
    - absl::Now
    - std::log1p
    - push_back
    - std::vector::resize
    - end_nodes
    - sentencepiece::GetNBestTimeout
    - std::abs
    - std::max
    - CloneHypAndDependents
    - Agenda::top
    - static_cast<float>
    - Agenda::size
    - std::vector::back
    linkageType: ''
    returnType: std::vector<Lattice::LatticePathWithScore>
    signature: "std::vector<Lattice::LatticePathWithScore> Lattice::NBest(size_t nbest_size,\n
      \                                                         bool sample,\n                                                          float
      inv_theta)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - Hypothesis*
    - Hypothesis*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: operator()(Hypothesis *h1, Hypothesis *h2)
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(Hypothesis *h1, Hypothesis *h2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:511,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:514,1
    - Dst: sentencepiece::unigram::Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:516,1
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/unigram_model.cc:518,1
    - Dst: sentencepiece::unigram::Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model.cc:523,1
    - Dst: sentencepiece::unigram::Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model.cc:524,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/unigram_model.cc:526,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model.cc:528,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:528,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:528,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model.cc:531,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model.cc:531,1
    - Dst: dist
      Src: /src/sentencepiece/src/unigram_model.cc:532,1
    - Dst: sentencepiece::unigram::Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model.cc:533,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model.cc:536,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/unigram_model.cc:539,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model.cc:539,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model.cc:539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - inv_theta
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 541
    functionName: sentencepiece::unigram::Lattice::Sample
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - dist
    - std::reverse
    - std::vector::end
    - sentencepiece::random::GetRandomGenerator
    - sentencepiece::unigram::Lattice::size
    - std::vector::push_back
    - static_cast<double>
    - sentencepiece::unigram::Lattice::bos_node
    - std::vector::clear
    - sentencepiece::unigram::Lattice::eos_node
    - std::exp
    - sentencepiece::unigram::Lattice::ForwardAlgorithm
    - std::vector::begin
    linkageType: ''
    returnType: std::vector<Lattice::Node *>
    signature: std::vector<Lattice::Node *> Lattice::Sample(float inv_theta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Lattice*::surface
      Src: /src/sentencepiece/src/unigram_model.cc:546,1
    - Dst: sentencepiece::unigram::Model::min_score
      Src: /src/sentencepiece/src/unigram_model.cc:550,1
    - Dst: Lattice*::size
      Src: /src/sentencepiece/src/unigram_model.cc:552,1
    - Dst: Lattice*::sentence
      Src: /src/sentencepiece/src/unigram_model.cc:553,1
    - Dst: Lattice*::utf8_size
      Src: /src/sentencepiece/src/unigram_model.cc:553,1
    - Dst: Lattice*::surface
      Src: /src/sentencepiece/src/unigram_model.cc:560,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/unigram_model.cc:563,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model.cc:563,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:564,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model.cc:565,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:566,1
    - Dst: std::vector::resize
      Src: /src/sentencepiece/src/unigram_model.cc:567,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/unigram_model.cc:568,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model.cc:568,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:569,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model.cc:570,1
    - Dst: get_chars_length
      Src: /src/sentencepiece/src/unigram_model.cc:578,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:580,1
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model.cc:581,1
    - Dst: IsUserDefinedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:584,1
    - Dst: GetUserDefinedScore
      Src: /src/sentencepiece/src/unigram_model.cc:584,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/unigram_model.cc:585,1
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model.cc:592,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - lattice
    argTypes:
    - Lattice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 597
    functionName: sentencepiece::unigram::Model::PopulateNodes
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 4
    functionsReached:
    - sentencepiece::unigram::Model::min_score
    - Lattice*::sentence
    - static_cast<int>
    - Lattice*::size
    - get_chars_length
    - IsUserDefinedInlined
    - Lattice*::Insert
    - GetScoreInlined
    - std::vector::size
    - Lattice*::utf8_size
    - Lattice*::surface
    - commonPrefixSearch
    - std::vector::resize
    - IsUnusedInlined
    - GetUserDefinedScore
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void Model::PopulateNodes(Lattice *lattice) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/unigram_model.cc:600,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model.cc:601,1
    - Dst: exactMatchSearch
      Src: /src/sentencepiece/src/unigram_model.cc:605,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:605,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 607
    functionName: sentencepiece::unigram::Model::PieceToId
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 2
    functionsReached:
    - absl::string_view::size
    - end
    - absl::string_view::data
    - exactMatchSearch
    - find
    linkageType: ''
    returnType: int
    signature: int Model::PieceToId(absl::string_view piece) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:610,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::empty
      Src: /src/sentencepiece/src/unigram_model.cc:612,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:613,1
    - Dst: sort
      Src: /src/sentencepiece/src/unigram_model.cc:619,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::begin
      Src: /src/sentencepiece/src/unigram_model.cc:619,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::end
      Src: /src/sentencepiece/src/unigram_model.cc:619,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:622,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:623,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:624,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:625,1
    - Dst: first::data
      Src: /src/sentencepiece/src/unigram_model.cc:626,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model.cc:627,1
    - Dst: std::make_unique<Darts::DoubleArray>
      Src: /src/sentencepiece/src/unigram_model.cc:631,1
    - Dst: build
      Src: /src/sentencepiece/src/unigram_model.cc:632,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:632,1
    - Dst: const_cast<char **>
      Src: /src/sentencepiece/src/unigram_model.cc:632,1
    - Dst: const_cast<size_t *>
      Src: /src/sentencepiece/src/unigram_model.cc:633,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:634,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/unigram_model.cc:644,1
    - Dst: first::data
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:646,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:649,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:652,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pieces
    argTypes:
    - std::vector<std::pair<absl::string_view, int>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 653
    functionName: sentencepiece::unigram::Model::BuildTrie
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 2
    functionsReached:
    - std::vector<std::pair<absl::string_view, int>>*::end
    - std::vector<std::pair<absl::string_view, int>>*::size
    - std::vector<std::pair<absl::string_view, int>>*::begin
    - first::size
    - std::max
    - std::vector<std::pair<absl::string_view, int>>*::empty
    - const_cast<size_t *>
    - status
    - first::data
    - const_cast<char **>
    - clear
    - std::vector::size
    - commonPrefixSearch
    - std::make_unique<Darts::DoubleArray>
    - absl::InternalError
    - build
    - sort
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void Model::BuildTrie(std::vector<std::pair<absl::string_view, int>>
      *pieces)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/unigram_model.cc:658,1
    - Dst: pieces
      Src: /src/sentencepiece/src/unigram_model.cc:661,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: score
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: std::isinf
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: score
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:663,1
    - Dst: type
      Src: /src/sentencepiece/src/unigram_model.cc:666,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model.cc:667,1
    - Dst: score
      Src: /src/sentencepiece/src/unigram_model.cc:667,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:672,1
    - Dst: sentencepiece::unigram::Model::BuildTrie
      Src: /src/sentencepiece/src/unigram_model.cc:674,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - model_proto
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 675
    functionName: sentencepiece::unigram::Model::Model
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - score
    - type
    - std::vector::emplace_back
    - sentencepiece::unigram::Model::BuildTrie
    - pieces
    - absl::InternalError
    - InitializePieces
    - std::isnan
    - std::min
    - std::isinf
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto &model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 677
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Model::EncodeOptimized
      Src: /src/sentencepiece/src/unigram_model.cc:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 681
    functionName: sentencepiece::unigram::Model::Encode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::unigram::Model::EncodeOptimized
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::Encode(absl::string_view normalized) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:685,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:685,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model.cc:689,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/unigram_model.cc:689,1
    - Dst: std::pair<EncodeResult, float>
      Src: /src/sentencepiece/src/unigram_model.cc:692,1
    - Dst: sentencepiece::unigram::Model::Encode
      Src: /src/sentencepiece/src/unigram_model.cc:692,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model.cc:696,1
    - Dst: sentencepiece::unigram::Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model.cc:697,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model.cc:700,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:703,1
    - Dst: NBestEncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - normalized
    - nbest_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 709
    functionName: sentencepiece::unigram::Model::NBestEncode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - Lattice::SetSentence
    - NBestEncodeResult::emplace_back
    - absl::string_view::empty
    - status
    - std::max<int>
    - std::pair<EncodeResult, float>
    - EncodeResult::emplace_back
    - sentencepiece::unigram::Model::PopulateNodes
    - sentencepiece::unigram::Model::Encode
    - std::min<int>
    - Lattice::NBest
    linkageType: ''
    returnType: NBestEncodeResult
    signature: "NBestEncodeResult Model::NBestEncode(absl::string_view normalized,\n
      \                                    int nbest_size) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:713,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:713,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model.cc:718,1
    - Dst: sentencepiece::unigram::Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model.cc:719,1
    - Dst: Lattice::Sample
      Src: /src/sentencepiece/src/unigram_model.cc:722,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - normalized
    - inv_theta
    argTypes:
    - absl::string_view
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 727
    functionName: sentencepiece::unigram::Model::SampleEncode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::empty
    - status
    - EncodeResult::emplace_back
    - sentencepiece::unigram::Model::PopulateNodes
    - Lattice::Sample
    - Lattice::SetSentence
    linkageType: ''
    returnType: EncodeResult
    signature: "EncodeResult Model::SampleEncode(absl::string_view normalized,\n                                 float
      inv_theta) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Model::min_score
      Src: /src/sentencepiece/src/unigram_model.cc:734,1
    - Dst: sentencepiece::unigram::Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model.cc:736,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model.cc:740,1
    - Dst: IsUserDefinedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:741,1
    - Dst: GetUserDefinedScore
      Src: /src/sentencepiece/src/unigram_model.cc:742,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/unigram_model.cc:743,1
    - Dst: compute_unigram_model_score
      Src: /src/sentencepiece/src/unigram_model.cc:749,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/unigram_model.cc:749,1
    - Dst: compute_unigram_model_score
      Src: /src/sentencepiece/src/unigram_model.cc:751,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/unigram_model.cc:751,1
    - Dst: std::abs
      Src: /src/sentencepiece/src/unigram_model.cc:752,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 759
    functionName: sentencepiece::unigram::Model::VerifyOutputsEquivalent
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - compute_unigram_model_score
    - sentencepiece::unigram::Model::min_score
    - GetScoreInlined
    - size
    - IsUserDefinedInlined
    - sentencepiece::unigram::Model::PieceToId
    - LOG
    - GetUserDefinedScore
    - absl::StrSplit
    - std::abs
    linkageType: ''
    returnType: bool
    signature: "bool Model::VerifyOutputsEquivalent(absl::string_view expected,\n
      \                                   absl::string_view actual) const"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:814,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:814,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:826,1
    - Dst: sentencepiece::unigram::Model::min_score
      Src: /src/sentencepiece/src/unigram_model.cc:827,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/unigram_model.cc:851,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/unigram_model.cc:851,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:851,1
    - Dst: traverse
      Src: /src/sentencepiece/src/unigram_model.cc:855,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:855,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/src/unigram_model.cc:857,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:858,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:859,1
    - Dst: IsUserDefinedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:864,1
    - Dst: GetUserDefinedScore
      Src: /src/sentencepiece/src/unigram_model.cc:865,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/unigram_model.cc:866,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model.cc:875,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:882,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model.cc:882,1
    - Dst: EncodeResult::reserve
      Src: /src/sentencepiece/src/unigram_model.cc:898,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:902,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/unigram_model.cc:903,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/unigram_model.cc:906,1
    - Dst: EncodeResult::begin
      Src: /src/sentencepiece/src/unigram_model.cc:906,1
    - Dst: EncodeResult::end
      Src: /src/sentencepiece/src/unigram_model.cc:906,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 47
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 908
    functionName: sentencepiece::unigram::Model::EncodeOptimized
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 3
    functionsReached:
    - absl::string_view::empty
    - GetUserDefinedScore
    - sentencepiece::unigram::Model::min_score
    - GetScoreInlined
    - status
    - traverse
    - GetPieceSize
    - std::reverse
    - absl::string_view::substr
    - sentencepiece::string_util::OneCharLen
    - absl::string_view::size
    - absl::string_view::data
    - std::max
    - IsUserDefinedInlined
    - EncodeResult::begin
    - EncodeResult::reserve
    - static_cast<size_t>
    - EncodeResult::emplace_back
    - IsUnusedInlined
    - EncodeResult::end
    - std::min<int>
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::EncodeOptimized(absl::string_view normalized) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model.cc:54,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:55,1
    - Dst: log
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - init_mode
    argTypes:
    - float
    - float
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: sentencepiece::unigram::LogSumExp
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - log
    - std::exp
    - static_cast<double>
    - std::max
    - std::min
    linkageType: ''
    returnType: float
    signature: float LogSumExp(float x, float y, bool init_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: sentencepiece::unigram::GetUserDefinedScore
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetUserDefinedScore(int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/unigram_model.cc:82,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: absl::Uniform
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: sentencepiece::unigram::Gumbel
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::random::GetRandomGenerator
    - absl::Uniform
    - std::log
    linkageType: ''
    returnType: float
    signature: float Gumbel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model.cc:54,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:55,1
    - Dst: log
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - x
    - y
    - init_mode
    argTypes:
    - float
    - float
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 62
    functionName: sentencepiece::unigram::LogSumExp
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - log
    - std::exp
    - static_cast<double>
    - std::max
    - std::min
    linkageType: ''
    returnType: float
    signature: float LogSumExp(float x, float y, bool init_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: sentencepiece::unigram::GetUserDefinedScore
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float GetUserDefinedScore(int length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/unigram_model.cc:82,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: std::log
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    - Dst: absl::Uniform
      Src: /src/sentencepiece/src/unigram_model.cc:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: sentencepiece::unigram::Gumbel
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::random::GetRandomGenerator
    - absl::Uniform
    - std::log
    linkageType: ''
    returnType: float
    signature: float Gumbel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: sentencepiece::unigram::Lattice::Lattice
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Lattice::Lattice()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Lattice::~Lattice()
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Lattice::~Lattice()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: '&Lattice::begin_nodes(int pos) const'
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Lattice::Node *>
    signature: std::vector<Lattice::Node *> &Lattice::begin_nodes(int pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: '&Lattice::end_nodes(int pos) const'
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Lattice::Node *>
    signature: std::vector<Lattice::Node *> &Lattice::end_nodes(int pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model.cc:103,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: sentencepiece::unigram::Lattice::size
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 34
    functionsReached:
    - std::max<int>
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: int
    signature: int Lattice::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: sentencepiece::unigram::Lattice::utf8_size
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: int
    signature: int Lattice::utf8_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/sentencepiece/src/unigram_model.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    functionName: sentencepiece::unigram::Lattice::sentence
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: char
    signature: char *Lattice::sentence() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: sentencepiece::unigram::Lattice::surface
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *Lattice::surface(int pos) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: sentencepiece::unigram::Lattice::bos_node
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::bos_node() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: sentencepiece::unigram::Lattice::eos_node
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 6
    functionsReached:
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::eos_node() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:117,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: sentencepiece::unigram::Lattice::NewNode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 6
    functionsReached:
    - Allocate
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::NewNode()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:123,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:124,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/unigram_model.cc:125,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:126,1
    - Dst: Free
      Src: /src/sentencepiece/src/unigram_model.cc:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 128
    functionName: sentencepiece::unigram::Lattice::Clear
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 3
    functionsReached:
    - clear
    - Free
    - absl::string_view
    linkageType: ''
    returnType: void
    signature: void Lattice::Clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::Clear
      Src: /src/sentencepiece/src/unigram_model.cc:131,1
    - Dst: reserve
      Src: /src/sentencepiece/src/unigram_model.cc:134,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:134,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:136,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/unigram_model.cc:137,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/unigram_model.cc:137,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:137,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:138,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:139,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:139,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/unigram_model.cc:140,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:142,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:142,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:144,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model.cc:145,1
    - Dst: resize
      Src: /src/sentencepiece/src/unigram_model.cc:146,1
    - Dst: reserve
      Src: /src/sentencepiece/src/unigram_model.cc:150,1
    - Dst: reserve
      Src: /src/sentencepiece/src/unigram_model.cc:151,1
    - Dst: sentencepiece::unigram::Lattice::NewNode
      Src: /src/sentencepiece/src/unigram_model.cc:154,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:157,1
    - Dst: sentencepiece::unigram::Lattice::NewNode
      Src: /src/sentencepiece/src/unigram_model.cc:159,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:162,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - sentence
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 163
    functionName: sentencepiece::unigram::Lattice::SetSentence
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Lattice::Clear
    - resize
    - absl::string_view::empty
    - sentencepiece::unigram::Lattice::size
    - sentencepiece::unigram::Lattice::NewNode
    - push_back
    - absl::string_view::remove_prefix
    - sentencepiece::string_util::OneCharLen
    - absl::string_view::size
    - reserve
    - absl::string_view::data
    - std::min<int>
    linkageType: ''
    returnType: void
    signature: void Lattice::SetSentence(absl::string_view sentence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::NewNode
      Src: /src/sentencepiece/src/unigram_model.cc:166,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model.cc:170,1
    - Dst: sentencepiece::unigram::Lattice::surface
      Src: /src/sentencepiece/src/unigram_model.cc:170,1
    - Dst: sentencepiece::unigram::Lattice::surface
      Src: /src/sentencepiece/src/unigram_model.cc:170,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/unigram_model.cc:171,1
    - Dst: sentencepiece::unigram::Lattice::surface
      Src: /src/sentencepiece/src/unigram_model.cc:171,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:172,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - pos
    - length
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 165
    functionDepth: 3
    functionLinenumber: 165
    functionLinenumberEnd: 176
    functionName: sentencepiece::unigram::Lattice::Insert
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - sentencepiece::unigram::Lattice::NewNode
    - sentencepiece::unigram::Lattice::surface
    - absl::string_view
    - push_back
    linkageType: ''
    returnType: Lattice::Node
    signature: Lattice::Node *Lattice::Insert(int pos, int length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:179,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:194,1
    - Dst: begin_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:204,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model.cc:207,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/unigram_model.cc:210,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model.cc:210,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model.cc:210,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 215
    functionName: sentencepiece::unigram::Lattice::Viterbi
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 3
    functionsReached:
    - std::reverse
    - std::vector::end
    - begin_nodes
    - sentencepiece::unigram::Lattice::size
    - std::vector::push_back
    - LOG
    - std::vector::begin
    linkageType: ''
    returnType: Lattice::LatticePathWithScore
    signature: Lattice::LatticePathWithScore Lattice::Viterbi()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:218,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:219,1
    - Dst: LogSumExp
      Src: /src/sentencepiece/src/unigram_model.cc:225,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - inv_theta
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 233
    functionName: sentencepiece::unigram::Lattice::ForwardAlgorithm
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 9
    functionsReached:
    - LogSumExp
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: std::vector<float>
    signature: std::vector<float> Lattice::ForwardAlgorithm(float inv_theta) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:236,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:237,1
    - Dst: LogSumExp
      Src: /src/sentencepiece/src/unigram_model.cc:243,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - inv_theta
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 2
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: sentencepiece::unigram::Lattice::BackwardAlgorithm
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 3
    functionsReached:
    - LogSumExp
    - sentencepiece::unigram::Lattice::size
    linkageType: ''
    returnType: std::vector<float>
    signature: std::vector<float> Lattice::BackwardAlgorithm(float inv_theta) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:256,1
    - Dst: sentencepiece::unigram::Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:261,1
    - Dst: sentencepiece::unigram::Lattice::BackwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:262,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:271,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:271,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - freq
    - expected
    argTypes:
    - float
    - std::vector<float>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 278
    functionName: sentencepiece::unigram::Lattice::PopulateMarginal
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::unigram::Lattice::size
    - std::exp
    - sentencepiece::unigram::Lattice::BackwardAlgorithm
    - static_cast<double>
    - sentencepiece::unigram::Lattice::ForwardAlgorithm
    linkageType: ''
    returnType: float
    signature: "float Lattice::PopulateMarginal(float freq,\n                                std::vector<float>
      *expected) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
      Src: /src/sentencepiece/src/unigram_model.cc:311,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
      Src: /src/sentencepiece/src/unigram_model.cc:312,1
    - Dst: model::FreeList<Hypothesis>*::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:318,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
      Src: /src/sentencepiece/src/unigram_model.cc:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - to_clone
    - clone_map
    - allocator
    argTypes:
    - Hypothesis*
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*
    - model::FreeList<Hypothesis>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 328
    functionName: sentencepiece::unigram::CloneHypAndDependents
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
    - model::FreeList<Hypothesis>*::Allocate
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
    linkageType: ''
    returnType: Hypothesis
    signature: "Hypothesis *CloneHypAndDependents(\n    const Hypothesis *to_clone,\n
      \   absl::flat_hash_map<const Hypothesis *, Hypothesis *> *clone_map,\n    model::FreeList<Hypothesis>
      *allocator)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
      Src: /src/sentencepiece/src/unigram_model.cc:311,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
      Src: /src/sentencepiece/src/unigram_model.cc:312,1
    - Dst: model::FreeList<Hypothesis>*::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:318,1
    - Dst: absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
      Src: /src/sentencepiece/src/unigram_model.cc:321,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - to_clone
    - clone_map
    - allocator
    argTypes:
    - Hypothesis*
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*
    - model::FreeList<Hypothesis>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 328
    functionName: sentencepiece::unigram::CloneHypAndDependents
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::end
    - model::FreeList<Hypothesis>*::Allocate
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::find
    - absl::flat_hash_map<const Hypothesis *, Hypothesis *>*::insert
    linkageType: ''
    returnType: Hypothesis
    signature: "Hypothesis *CloneHypAndDependents(\n    const Hypothesis *to_clone,\n
      \   absl::flat_hash_map<const Hypothesis *, Hypothesis *> *clone_map,\n    model::FreeList<Hypothesis>
      *allocator)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:336,1
    - Dst: sentencepiece::unigram::Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model.cc:341,1
    - Dst: sentencepiece::GetNBestTimeout
      Src: /src/sentencepiece/src/unigram_model.cc:344,1
    - Dst: absl::Now
      Src: /src/sentencepiece/src/unigram_model.cc:345,1
    - Dst: model::FreeList::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:374,1
    - Dst: sentencepiece::unigram::Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model.cc:375,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:379,1
    - Dst: sentencepiece::unigram::Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:383,1
    - Dst: Gumbel
      Src: /src/sentencepiece/src/unigram_model.cc:385,1
    - Dst: sentencepiece::unigram::Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model.cc:388,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/unigram_model.cc:391,1
    - Dst: Agenda::empty
      Src: /src/sentencepiece/src/unigram_model.cc:395,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/unigram_model.cc:396,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/unigram_model.cc:397,1
    - Dst: sentencepiece::unigram::Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model.cc:401,1
    - Dst: std::vector::resize
      Src: /src/sentencepiece/src/unigram_model.cc:402,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:402,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model.cc:404,1
    - Dst: push_back
      Src: /src/sentencepiece/src/unigram_model.cc:404,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/unigram_model.cc:406,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:407,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:413,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:421,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:422,1
    - Dst: Gumbel
      Src: /src/sentencepiece/src/unigram_model.cc:426,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:432,1
    - Dst: std::log1p
      Src: /src/sentencepiece/src/unigram_model.cc:436,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:436,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:437,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/unigram_model.cc:437,1
    - Dst: std::log1p
      Src: /src/sentencepiece/src/unigram_model.cc:438,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:438,1
    - Dst: std::abs
      Src: /src/sentencepiece/src/unigram_model.cc:438,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:443,1
    - Dst: end_nodes
      Src: /src/sentencepiece/src/unigram_model.cc:444,1
    - Dst: model::FreeList::Allocate
      Src: /src/sentencepiece/src/unigram_model.cc:445,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/unigram_model.cc:456,1
    - Dst: model::FreeList::size
      Src: /src/sentencepiece/src/unigram_model.cc:460,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:463,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:464,1
    - Dst: Agenda::size
      Src: /src/sentencepiece/src/unigram_model.cc:473,1
    - Dst: absl::ToInt64Milliseconds
      Src: /src/sentencepiece/src/unigram_model.cc:476,1
    - Dst: absl::Now
      Src: /src/sentencepiece/src/unigram_model.cc:476,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:478,1
    - Dst: sentencepiece::unigram::Lattice::Viterbi
      Src: /src/sentencepiece/src/unigram_model.cc:480,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/unigram_model.cc:490,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:492,1
    - Dst: Agenda::size
      Src: /src/sentencepiece/src/unigram_model.cc:492,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/unigram_model.cc:496,1
    - Dst: CloneHypAndDependents
      Src: /src/sentencepiece/src/unigram_model.cc:498,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/unigram_model.cc:499,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/unigram_model.cc:500,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model.cc:502,1
    - Dst: std::move
      Src: /src/sentencepiece/src/unigram_model.cc:503,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 3
    argNames:
    - nbest_size
    - sample
    - inv_theta
    argTypes:
    - size_t
    - bool
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 508
    functionName: sentencepiece::unigram::Lattice::NBest
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::ToInt64Milliseconds
    - sentencepiece::unigram::Lattice::size
    - model::FreeList::Allocate
    - std::vector::size
    - std::move
    - sentencepiece::unigram::Lattice::Viterbi
    - sentencepiece::unigram::Lattice::bos_node
    - Agenda::push
    - Agenda::empty
    - model::FreeList::size
    - Gumbel
    - LOG
    - sentencepiece::unigram::Lattice::eos_node
    - std::exp
    - std::min<size_t>
    - sentencepiece::unigram::Lattice::ForwardAlgorithm
    - Agenda::pop
    - absl::Now
    - std::log1p
    - push_back
    - std::vector::resize
    - end_nodes
    - sentencepiece::GetNBestTimeout
    - std::abs
    - std::max
    - CloneHypAndDependents
    - Agenda::top
    - static_cast<float>
    - Agenda::size
    - std::vector::back
    linkageType: ''
    returnType: std::vector<Lattice::LatticePathWithScore>
    signature: "std::vector<Lattice::LatticePathWithScore> Lattice::NBest(size_t nbest_size,\n
      \                                                         bool sample,\n                                                          float
      inv_theta)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - h1
    - h2
    argTypes:
    - Hypothesis*
    - Hypothesis*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: operator()(Hypothesis *h1, Hypothesis *h2)
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator()(Hypothesis *h1, Hypothesis *h2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:511,1
    - Dst: sentencepiece::unigram::Lattice::size
      Src: /src/sentencepiece/src/unigram_model.cc:514,1
    - Dst: sentencepiece::unigram::Lattice::ForwardAlgorithm
      Src: /src/sentencepiece/src/unigram_model.cc:516,1
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/unigram_model.cc:518,1
    - Dst: sentencepiece::unigram::Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model.cc:523,1
    - Dst: sentencepiece::unigram::Lattice::eos_node
      Src: /src/sentencepiece/src/unigram_model.cc:524,1
    - Dst: std::vector::clear
      Src: /src/sentencepiece/src/unigram_model.cc:526,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model.cc:528,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/unigram_model.cc:528,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/unigram_model.cc:528,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model.cc:531,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model.cc:531,1
    - Dst: dist
      Src: /src/sentencepiece/src/unigram_model.cc:532,1
    - Dst: sentencepiece::unigram::Lattice::bos_node
      Src: /src/sentencepiece/src/unigram_model.cc:533,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/unigram_model.cc:536,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/unigram_model.cc:539,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/unigram_model.cc:539,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/unigram_model.cc:539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - inv_theta
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 510
    functionDepth: 3
    functionLinenumber: 510
    functionLinenumberEnd: 541
    functionName: sentencepiece::unigram::Lattice::Sample
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - dist
    - std::reverse
    - std::vector::end
    - sentencepiece::random::GetRandomGenerator
    - sentencepiece::unigram::Lattice::size
    - std::vector::push_back
    - static_cast<double>
    - sentencepiece::unigram::Lattice::bos_node
    - std::vector::clear
    - sentencepiece::unigram::Lattice::eos_node
    - std::exp
    - sentencepiece::unigram::Lattice::ForwardAlgorithm
    - std::vector::begin
    linkageType: ''
    returnType: std::vector<Lattice::Node *>
    signature: std::vector<Lattice::Node *> Lattice::Sample(float inv_theta)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Lattice*::surface
      Src: /src/sentencepiece/src/unigram_model.cc:546,1
    - Dst: sentencepiece::unigram::Model::min_score
      Src: /src/sentencepiece/src/unigram_model.cc:550,1
    - Dst: Lattice*::size
      Src: /src/sentencepiece/src/unigram_model.cc:552,1
    - Dst: Lattice*::sentence
      Src: /src/sentencepiece/src/unigram_model.cc:553,1
    - Dst: Lattice*::utf8_size
      Src: /src/sentencepiece/src/unigram_model.cc:553,1
    - Dst: Lattice*::surface
      Src: /src/sentencepiece/src/unigram_model.cc:560,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/unigram_model.cc:563,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model.cc:563,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:564,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model.cc:565,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:566,1
    - Dst: std::vector::resize
      Src: /src/sentencepiece/src/unigram_model.cc:567,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/unigram_model.cc:568,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model.cc:568,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:569,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/unigram_model.cc:570,1
    - Dst: get_chars_length
      Src: /src/sentencepiece/src/unigram_model.cc:578,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:580,1
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model.cc:581,1
    - Dst: IsUserDefinedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:584,1
    - Dst: GetUserDefinedScore
      Src: /src/sentencepiece/src/unigram_model.cc:584,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/unigram_model.cc:585,1
    - Dst: Lattice*::Insert
      Src: /src/sentencepiece/src/unigram_model.cc:592,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - lattice
    argTypes:
    - Lattice*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 597
    functionName: sentencepiece::unigram::Model::PopulateNodes
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 6
    functionsReached:
    - sentencepiece::unigram::Model::min_score
    - Lattice*::sentence
    - static_cast<int>
    - Lattice*::size
    - get_chars_length
    - IsUserDefinedInlined
    - Lattice*::Insert
    - GetScoreInlined
    - std::vector::size
    - Lattice*::utf8_size
    - Lattice*::surface
    - commonPrefixSearch
    - std::vector::resize
    - IsUnusedInlined
    - GetUserDefinedScore
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void Model::PopulateNodes(Lattice *lattice) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/unigram_model.cc:600,1
    - Dst: end
      Src: /src/sentencepiece/src/unigram_model.cc:601,1
    - Dst: exactMatchSearch
      Src: /src/sentencepiece/src/unigram_model.cc:605,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:605,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:605,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 607
    functionName: sentencepiece::unigram::Model::PieceToId
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 3
    functionsReached:
    - absl::string_view::size
    - end
    - absl::string_view::data
    - exactMatchSearch
    - find
    linkageType: ''
    returnType: int
    signature: int Model::PieceToId(absl::string_view piece) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:610,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::empty
      Src: /src/sentencepiece/src/unigram_model.cc:612,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:613,1
    - Dst: sort
      Src: /src/sentencepiece/src/unigram_model.cc:619,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::begin
      Src: /src/sentencepiece/src/unigram_model.cc:619,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::end
      Src: /src/sentencepiece/src/unigram_model.cc:619,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:622,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:623,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:624,1
    - Dst: std::vector<std::pair<absl::string_view, int>>*::size
      Src: /src/sentencepiece/src/unigram_model.cc:625,1
    - Dst: first::data
      Src: /src/sentencepiece/src/unigram_model.cc:626,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model.cc:627,1
    - Dst: std::make_unique<Darts::DoubleArray>
      Src: /src/sentencepiece/src/unigram_model.cc:631,1
    - Dst: build
      Src: /src/sentencepiece/src/unigram_model.cc:632,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:632,1
    - Dst: const_cast<char **>
      Src: /src/sentencepiece/src/unigram_model.cc:632,1
    - Dst: const_cast<size_t *>
      Src: /src/sentencepiece/src/unigram_model.cc:633,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:634,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/unigram_model.cc:644,1
    - Dst: first::data
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: first::size
      Src: /src/sentencepiece/src/unigram_model.cc:645,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:646,1
    - Dst: clear
      Src: /src/sentencepiece/src/unigram_model.cc:649,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:652,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pieces
    argTypes:
    - std::vector<std::pair<absl::string_view, int>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 653
    functionName: sentencepiece::unigram::Model::BuildTrie
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 3
    functionsReached:
    - std::vector<std::pair<absl::string_view, int>>*::end
    - std::vector<std::pair<absl::string_view, int>>*::size
    - std::vector<std::pair<absl::string_view, int>>*::begin
    - first::size
    - std::max
    - std::vector<std::pair<absl::string_view, int>>*::empty
    - const_cast<size_t *>
    - status
    - first::data
    - const_cast<char **>
    - clear
    - std::vector::size
    - commonPrefixSearch
    - std::make_unique<Darts::DoubleArray>
    - absl::InternalError
    - build
    - sort
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void Model::BuildTrie(std::vector<std::pair<absl::string_view, int>>
      *pieces)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/unigram_model.cc:658,1
    - Dst: pieces
      Src: /src/sentencepiece/src/unigram_model.cc:661,1
    - Dst: std::isnan
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: score
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: std::isinf
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: score
      Src: /src/sentencepiece/src/unigram_model.cc:662,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/unigram_model.cc:663,1
    - Dst: type
      Src: /src/sentencepiece/src/unigram_model.cc:666,1
    - Dst: std::min
      Src: /src/sentencepiece/src/unigram_model.cc:667,1
    - Dst: score
      Src: /src/sentencepiece/src/unigram_model.cc:667,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:672,1
    - Dst: sentencepiece::unigram::Model::BuildTrie
      Src: /src/sentencepiece/src/unigram_model.cc:674,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - model_proto
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 675
    functionName: sentencepiece::unigram::Model::Model
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - score
    - type
    - std::vector::emplace_back
    - sentencepiece::unigram::Model::BuildTrie
    - pieces
    - absl::InternalError
    - InitializePieces
    - std::isnan
    - std::min
    - std::isinf
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto &model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 677
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Model::EncodeOptimized
      Src: /src/sentencepiece/src/unigram_model.cc:680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 681
    functionName: sentencepiece::unigram::Model::Encode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::unigram::Model::EncodeOptimized
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::Encode(absl::string_view normalized) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:685,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:685,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/unigram_model.cc:689,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/unigram_model.cc:689,1
    - Dst: std::pair<EncodeResult, float>
      Src: /src/sentencepiece/src/unigram_model.cc:692,1
    - Dst: sentencepiece::unigram::Model::Encode
      Src: /src/sentencepiece/src/unigram_model.cc:692,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model.cc:696,1
    - Dst: sentencepiece::unigram::Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model.cc:697,1
    - Dst: Lattice::NBest
      Src: /src/sentencepiece/src/unigram_model.cc:700,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:703,1
    - Dst: NBestEncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:705,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - normalized
    - nbest_size
    argTypes:
    - absl::string_view
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 709
    functionName: sentencepiece::unigram::Model::NBestEncode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - Lattice::SetSentence
    - NBestEncodeResult::emplace_back
    - absl::string_view::empty
    - status
    - std::max<int>
    - std::pair<EncodeResult, float>
    - EncodeResult::emplace_back
    - sentencepiece::unigram::Model::PopulateNodes
    - sentencepiece::unigram::Model::Encode
    - std::min<int>
    - Lattice::NBest
    linkageType: ''
    returnType: NBestEncodeResult
    signature: "NBestEncodeResult Model::NBestEncode(absl::string_view normalized,\n
      \                                    int nbest_size) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:713,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:713,1
    - Dst: Lattice::SetSentence
      Src: /src/sentencepiece/src/unigram_model.cc:718,1
    - Dst: sentencepiece::unigram::Model::PopulateNodes
      Src: /src/sentencepiece/src/unigram_model.cc:719,1
    - Dst: Lattice::Sample
      Src: /src/sentencepiece/src/unigram_model.cc:722,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - normalized
    - inv_theta
    argTypes:
    - absl::string_view
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 711
    functionDepth: 2
    functionLinenumber: 711
    functionLinenumberEnd: 727
    functionName: sentencepiece::unigram::Model::SampleEncode
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::empty
    - status
    - EncodeResult::emplace_back
    - sentencepiece::unigram::Model::PopulateNodes
    - Lattice::Sample
    - Lattice::SetSentence
    linkageType: ''
    returnType: EncodeResult
    signature: "EncodeResult Model::SampleEncode(absl::string_view normalized,\n                                 float
      inv_theta) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::unigram::Model::min_score
      Src: /src/sentencepiece/src/unigram_model.cc:734,1
    - Dst: sentencepiece::unigram::Model::PieceToId
      Src: /src/sentencepiece/src/unigram_model.cc:736,1
    - Dst: size
      Src: /src/sentencepiece/src/unigram_model.cc:740,1
    - Dst: IsUserDefinedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:741,1
    - Dst: GetUserDefinedScore
      Src: /src/sentencepiece/src/unigram_model.cc:742,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/unigram_model.cc:743,1
    - Dst: compute_unigram_model_score
      Src: /src/sentencepiece/src/unigram_model.cc:749,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/unigram_model.cc:749,1
    - Dst: compute_unigram_model_score
      Src: /src/sentencepiece/src/unigram_model.cc:751,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/unigram_model.cc:751,1
    - Dst: std::abs
      Src: /src/sentencepiece/src/unigram_model.cc:752,1
    - Dst: LOG
      Src: /src/sentencepiece/src/unigram_model.cc:753,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - expected
    - actual
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 759
    functionName: sentencepiece::unigram::Model::VerifyOutputsEquivalent
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 0
    functionsReached:
    - compute_unigram_model_score
    - sentencepiece::unigram::Model::min_score
    - GetScoreInlined
    - size
    - IsUserDefinedInlined
    - sentencepiece::unigram::Model::PieceToId
    - LOG
    - GetUserDefinedScore
    - absl::StrSplit
    - std::abs
    linkageType: ''
    returnType: bool
    signature: "bool Model::VerifyOutputsEquivalent(absl::string_view expected,\n
      \                                   absl::string_view actual) const"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/unigram_model.cc:814,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/unigram_model.cc:814,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/unigram_model.cc:826,1
    - Dst: sentencepiece::unigram::Model::min_score
      Src: /src/sentencepiece/src/unigram_model.cc:827,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/unigram_model.cc:851,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/unigram_model.cc:851,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:851,1
    - Dst: traverse
      Src: /src/sentencepiece/src/unigram_model.cc:855,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/unigram_model.cc:855,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/src/unigram_model.cc:857,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:858,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:859,1
    - Dst: IsUserDefinedInlined
      Src: /src/sentencepiece/src/unigram_model.cc:864,1
    - Dst: GetUserDefinedScore
      Src: /src/sentencepiece/src/unigram_model.cc:865,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/unigram_model.cc:866,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model.cc:875,1
    - Dst: std::max
      Src: /src/sentencepiece/src/unigram_model.cc:882,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/unigram_model.cc:882,1
    - Dst: EncodeResult::reserve
      Src: /src/sentencepiece/src/unigram_model.cc:898,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/unigram_model.cc:902,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/unigram_model.cc:903,1
    - Dst: std::reverse
      Src: /src/sentencepiece/src/unigram_model.cc:906,1
    - Dst: EncodeResult::begin
      Src: /src/sentencepiece/src/unigram_model.cc:906,1
    - Dst: EncodeResult::end
      Src: /src/sentencepiece/src/unigram_model.cc:906,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 47
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 908
    functionName: sentencepiece::unigram::Model::EncodeOptimized
    functionSourceFile: /src/sentencepiece/src/unigram_model.cc
    functionUses: 4
    functionsReached:
    - absl::string_view::empty
    - GetUserDefinedScore
    - sentencepiece::unigram::Model::min_score
    - GetScoreInlined
    - status
    - traverse
    - GetPieceSize
    - std::reverse
    - absl::string_view::substr
    - sentencepiece::string_util::OneCharLen
    - absl::string_view::size
    - absl::string_view::data
    - std::max
    - IsUserDefinedInlined
    - EncodeResult::begin
    - EncodeResult::reserve
    - static_cast<size_t>
    - EncodeResult::emplace_back
    - IsUnusedInlined
    - EncodeResult::end
    - std::min<int>
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::EncodeOptimized(absl::string_view normalized) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: sentencepiece::normalizer::Builder::Builder
    functionSourceFile: /src/sentencepiece/src/builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: ~Builder()
    functionSourceFile: /src/sentencepiece/src/builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: sentencepiece::normalizer::Builder::Builder
    functionSourceFile: /src/sentencepiece/src/builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: ~Builder()
    functionSourceFile: /src/sentencepiece/src/builder.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Builder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: sentencepiece::character::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/char_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: sentencepiece::character::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/char_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: sentencepiece::character::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/char_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: sentencepiece::character::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/char_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:41,1
    - Dst: sentencepiece::normalizer::Builder::RemoveRedundantMap
      Src: /src/sentencepiece/src/builder_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:42,1
    - Dst: Builder::CharsMap::size
      Src: /src/sentencepiece/src/builder_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:43,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:43,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:43,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/builder_test.cc:44,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:44,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:44,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/builder_test.cc:45,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:45,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:45,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/builder_test.cc:46,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:46,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - Builder::CharsMap::find
    - Builder::CharsMap::size
    - sentencepiece::normalizer::Builder::RemoveRedundantMap
    - Builder::CharsMap::end
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, RemoveRedundantMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:51,1
    - Dst: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:51,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:52,1
    - Dst: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, GetPrecompiledCharsMapWithInvalidNameTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:58,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder_test.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:59,1
    - Dst: Builder::CharsMap::empty
      Src: /src/sentencepiece/src/builder_test.cc:59,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:61,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - sentencepiece::normalizer::Builder::BuildNFKCMap
    - Builder::CharsMap::empty
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, BuildNFKCMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetDataDir
      Src: /src/sentencepiece/src/builder_test.cc:66,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/builder_test.cc:66,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:72,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:73,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:74,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:74,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:81,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:82,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:82,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:89,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:90,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:90,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:96,1
    - Dst: NormalizerSpec::precompiled_charsmap
      Src: /src/sentencepiece/src/builder_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:98,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:99,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:100,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 102
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - NormalizerSpec::precompiled_charsmap
    - SetDataDir
    - ::testing::SrcDir
    - EXPECT_TRUE
    - EXPECT_EQ
    - Normalizer::Normalize
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, GetPrecompiledCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:108,1
    - Dst: static_cast<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:121,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:122,1
    - Dst: NormalizerSpec::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/builder_test.cc:122,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:125,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:125,1
    - Dst: NormalizerSpec::precompiled_charsmap
      Src: /src/sentencepiece/src/builder_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:128,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/builder_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:133,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:134,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:135,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:137,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:138,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:139,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:140,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:141,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 142
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - NormalizerSpec::precompiled_charsmap
    - static_cast<char32_t>
    - NormalizerSpec::set_add_dummy_prefix
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - NormalizerSpec::mutable_precompiled_charsmap
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, CompileCharsMap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_util::EncodePOD<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:151,1
    - Dst: string_util::EncodePOD<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:152,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:153,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/builder_test.cc:153,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/builder_test.cc:155,1
    - Dst: data
      Src: /src/sentencepiece/src/builder_test.cc:155,1
    - Dst: size
      Src: /src/sentencepiece/src/builder_test.cc:155,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:166,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/builder_test.cc:166,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:168,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:169,1
    - Dst: make_blob
      Src: /src/sentencepiece/src/builder_test.cc:169,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:179,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:179,1
    - Dst: make_blob
      Src: /src/sentencepiece/src/builder_test.cc:180,1
    - Dst: std::string
      Src: /src/sentencepiece/src/builder_test.cc:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 183
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - size
    - std::string::size
    - static_cast<uint32_t>
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - make_blob
    - EXPECT_FALSE
    - std::string
    - std::string::append
    - string_util::EncodePOD<uint32_t>
    - data
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, DecompileMalformedCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:189,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:190,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:190,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/builder_test.cc:190,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:195,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:195,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:199,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:200,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:201,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:203,1
    - Dst: sentencepiece::normalizer::Builder::SaveCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:203,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:204,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:204,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:208,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:209,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:209,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:212,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:216,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder_test.cc:216,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:217,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 219
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - ::testing::SrcDir
    - sentencepiece::normalizer::Builder::LoadCharsMap
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - ::testing::TempDir
    - sentencepiece::normalizer::Builder::BuildNFKCMap
    - EXPECT_EQ
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - sentencepiece::normalizer::Builder::SaveCharsMap
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, LoadCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/builder_test.cc:223,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:224,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:224,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder_test.cc:225,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder_test.cc:226,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder_test.cc:227,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:231,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:231,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:232,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:235,1
    - Dst: Builder::CharsMap::size
      Src: /src/sentencepiece/src/builder_test.cc:235,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:236,1
    - Dst: std::vector<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:237,1
    - Dst: std::vector<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:238,1
    - Dst: std::vector<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:238,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:240,1
    - Dst: sentencepiece::normalizer::Builder::SaveCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:241,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:242,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:242,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:246,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:247,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:248,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 251
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - Builder::CharsMap::size
    - ::testing::TempDir
    - sentencepiece::normalizer::Builder::LoadCharsMap
    - EXPECT_TRUE
    - std::vector<char32_t>
    - EXPECT_EQ
    - auto::WriteLine
    - sentencepiece::normalizer::Builder::SaveCharsMap
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, LoadCharsMapWithEmptyeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder_test.cc:258,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:262,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - std::vector::push_back
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, ContainsTooManySharedPrefixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:271,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:271,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:275,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/builder_test.cc:275,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:276,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/builder_test.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 277
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - absl::Status::ok
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - absl::Status::message
    - EXPECT_EQ
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, DecompileDeepCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:41,1
    - Dst: sentencepiece::normalizer::Builder::RemoveRedundantMap
      Src: /src/sentencepiece/src/builder_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:42,1
    - Dst: Builder::CharsMap::size
      Src: /src/sentencepiece/src/builder_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:43,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:43,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:43,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/builder_test.cc:44,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:44,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:44,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/builder_test.cc:45,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:45,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:45,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/builder_test.cc:46,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:46,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - Builder::CharsMap::find
    - Builder::CharsMap::size
    - sentencepiece::normalizer::Builder::RemoveRedundantMap
    - Builder::CharsMap::end
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, RemoveRedundantMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:51,1
    - Dst: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:51,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:52,1
    - Dst: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, GetPrecompiledCharsMapWithInvalidNameTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:58,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder_test.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:59,1
    - Dst: Builder::CharsMap::empty
      Src: /src/sentencepiece/src/builder_test.cc:59,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:61,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - sentencepiece::normalizer::Builder::BuildNFKCMap
    - Builder::CharsMap::empty
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, BuildNFKCMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetDataDir
      Src: /src/sentencepiece/src/builder_test.cc:66,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/builder_test.cc:66,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:72,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:73,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:74,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:74,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:81,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:82,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:82,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:89,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:90,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:90,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:96,1
    - Dst: NormalizerSpec::precompiled_charsmap
      Src: /src/sentencepiece/src/builder_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:98,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:99,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:100,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 102
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - NormalizerSpec::precompiled_charsmap
    - SetDataDir
    - ::testing::SrcDir
    - EXPECT_TRUE
    - EXPECT_EQ
    - Normalizer::Normalize
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, GetPrecompiledCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:108,1
    - Dst: static_cast<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:121,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:122,1
    - Dst: NormalizerSpec::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/builder_test.cc:122,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:125,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:125,1
    - Dst: NormalizerSpec::precompiled_charsmap
      Src: /src/sentencepiece/src/builder_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:128,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/builder_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:133,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:134,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:135,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:137,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:138,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:139,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:140,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:141,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 142
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - NormalizerSpec::precompiled_charsmap
    - static_cast<char32_t>
    - NormalizerSpec::set_add_dummy_prefix
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - NormalizerSpec::mutable_precompiled_charsmap
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, CompileCharsMap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_util::EncodePOD<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:151,1
    - Dst: string_util::EncodePOD<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:152,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:153,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/builder_test.cc:153,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/builder_test.cc:155,1
    - Dst: data
      Src: /src/sentencepiece/src/builder_test.cc:155,1
    - Dst: size
      Src: /src/sentencepiece/src/builder_test.cc:155,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:166,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/builder_test.cc:166,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:168,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:169,1
    - Dst: make_blob
      Src: /src/sentencepiece/src/builder_test.cc:169,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:179,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:179,1
    - Dst: make_blob
      Src: /src/sentencepiece/src/builder_test.cc:180,1
    - Dst: std::string
      Src: /src/sentencepiece/src/builder_test.cc:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 183
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - size
    - std::string::size
    - static_cast<uint32_t>
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - make_blob
    - EXPECT_FALSE
    - std::string
    - std::string::append
    - string_util::EncodePOD<uint32_t>
    - data
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, DecompileMalformedCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:189,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:190,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:190,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/builder_test.cc:190,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:195,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:195,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:199,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:200,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:201,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:203,1
    - Dst: sentencepiece::normalizer::Builder::SaveCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:203,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:204,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:204,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:208,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:209,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:209,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:212,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:216,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder_test.cc:216,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:217,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 219
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - ::testing::SrcDir
    - sentencepiece::normalizer::Builder::LoadCharsMap
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - ::testing::TempDir
    - sentencepiece::normalizer::Builder::BuildNFKCMap
    - EXPECT_EQ
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - sentencepiece::normalizer::Builder::SaveCharsMap
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, LoadCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/builder_test.cc:223,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:224,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:224,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder_test.cc:225,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder_test.cc:226,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder_test.cc:227,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:231,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:231,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:232,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:235,1
    - Dst: Builder::CharsMap::size
      Src: /src/sentencepiece/src/builder_test.cc:235,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:236,1
    - Dst: std::vector<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:237,1
    - Dst: std::vector<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:238,1
    - Dst: std::vector<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:238,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:240,1
    - Dst: sentencepiece::normalizer::Builder::SaveCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:241,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:242,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:242,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:246,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:247,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:248,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 251
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - Builder::CharsMap::size
    - ::testing::TempDir
    - sentencepiece::normalizer::Builder::LoadCharsMap
    - EXPECT_TRUE
    - std::vector<char32_t>
    - EXPECT_EQ
    - auto::WriteLine
    - sentencepiece::normalizer::Builder::SaveCharsMap
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, LoadCharsMapWithEmptyeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder_test.cc:258,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:262,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - std::vector::push_back
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, ContainsTooManySharedPrefixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:271,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:271,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:275,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/builder_test.cc:275,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:276,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/builder_test.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 277
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - absl::Status::ok
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - absl::Status::message
    - EXPECT_EQ
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, DecompileDeepCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:41,1
    - Dst: sentencepiece::normalizer::Builder::RemoveRedundantMap
      Src: /src/sentencepiece/src/builder_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:42,1
    - Dst: Builder::CharsMap::size
      Src: /src/sentencepiece/src/builder_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:43,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:43,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:43,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/builder_test.cc:44,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:44,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:44,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/builder_test.cc:45,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:45,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:45,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/builder_test.cc:46,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:46,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - Builder::CharsMap::find
    - Builder::CharsMap::size
    - sentencepiece::normalizer::Builder::RemoveRedundantMap
    - Builder::CharsMap::end
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, RemoveRedundantMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:51,1
    - Dst: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:51,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:52,1
    - Dst: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, GetPrecompiledCharsMapWithInvalidNameTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:58,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder_test.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:59,1
    - Dst: Builder::CharsMap::empty
      Src: /src/sentencepiece/src/builder_test.cc:59,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:61,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - sentencepiece::normalizer::Builder::BuildNFKCMap
    - Builder::CharsMap::empty
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, BuildNFKCMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetDataDir
      Src: /src/sentencepiece/src/builder_test.cc:66,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/builder_test.cc:66,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:72,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:73,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:74,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:74,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:81,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:82,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:82,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:89,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:90,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:90,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:96,1
    - Dst: NormalizerSpec::precompiled_charsmap
      Src: /src/sentencepiece/src/builder_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:98,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:99,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:100,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 102
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - NormalizerSpec::precompiled_charsmap
    - SetDataDir
    - ::testing::SrcDir
    - EXPECT_TRUE
    - EXPECT_EQ
    - Normalizer::Normalize
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, GetPrecompiledCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:108,1
    - Dst: static_cast<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:121,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:122,1
    - Dst: NormalizerSpec::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/builder_test.cc:122,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:125,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:125,1
    - Dst: NormalizerSpec::precompiled_charsmap
      Src: /src/sentencepiece/src/builder_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:128,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/builder_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:133,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:134,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:135,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:137,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:138,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:139,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:140,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:141,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 142
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - NormalizerSpec::precompiled_charsmap
    - static_cast<char32_t>
    - NormalizerSpec::set_add_dummy_prefix
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - NormalizerSpec::mutable_precompiled_charsmap
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, CompileCharsMap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_util::EncodePOD<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:151,1
    - Dst: string_util::EncodePOD<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:152,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:153,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/builder_test.cc:153,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/builder_test.cc:155,1
    - Dst: data
      Src: /src/sentencepiece/src/builder_test.cc:155,1
    - Dst: size
      Src: /src/sentencepiece/src/builder_test.cc:155,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:166,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/builder_test.cc:166,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:168,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:169,1
    - Dst: make_blob
      Src: /src/sentencepiece/src/builder_test.cc:169,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:179,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:179,1
    - Dst: make_blob
      Src: /src/sentencepiece/src/builder_test.cc:180,1
    - Dst: std::string
      Src: /src/sentencepiece/src/builder_test.cc:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 183
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - size
    - std::string::size
    - static_cast<uint32_t>
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - make_blob
    - EXPECT_FALSE
    - std::string
    - std::string::append
    - string_util::EncodePOD<uint32_t>
    - data
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, DecompileMalformedCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:189,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:190,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:190,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/builder_test.cc:190,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:195,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:195,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:199,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:200,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:201,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:203,1
    - Dst: sentencepiece::normalizer::Builder::SaveCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:203,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:204,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:204,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:208,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:209,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:209,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:212,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:216,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder_test.cc:216,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:217,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 219
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - ::testing::SrcDir
    - sentencepiece::normalizer::Builder::LoadCharsMap
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - ::testing::TempDir
    - sentencepiece::normalizer::Builder::BuildNFKCMap
    - EXPECT_EQ
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - sentencepiece::normalizer::Builder::SaveCharsMap
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, LoadCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/builder_test.cc:223,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:224,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:224,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder_test.cc:225,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder_test.cc:226,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder_test.cc:227,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:231,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:231,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:232,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:235,1
    - Dst: Builder::CharsMap::size
      Src: /src/sentencepiece/src/builder_test.cc:235,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:236,1
    - Dst: std::vector<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:237,1
    - Dst: std::vector<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:238,1
    - Dst: std::vector<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:238,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:240,1
    - Dst: sentencepiece::normalizer::Builder::SaveCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:241,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:242,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:242,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:246,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:247,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:248,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 251
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - Builder::CharsMap::size
    - ::testing::TempDir
    - sentencepiece::normalizer::Builder::LoadCharsMap
    - EXPECT_TRUE
    - std::vector<char32_t>
    - EXPECT_EQ
    - auto::WriteLine
    - sentencepiece::normalizer::Builder::SaveCharsMap
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, LoadCharsMapWithEmptyeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder_test.cc:258,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:262,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - std::vector::push_back
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, ContainsTooManySharedPrefixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:271,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:271,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:275,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/builder_test.cc:275,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:276,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/builder_test.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 277
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - absl::Status::ok
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - absl::Status::message
    - EXPECT_EQ
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, DecompileDeepCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:41,1
    - Dst: sentencepiece::normalizer::Builder::RemoveRedundantMap
      Src: /src/sentencepiece/src/builder_test.cc:41,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:42,1
    - Dst: Builder::CharsMap::size
      Src: /src/sentencepiece/src/builder_test.cc:42,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:43,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:43,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:43,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/builder_test.cc:44,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:44,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:44,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/builder_test.cc:45,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:45,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:45,1
    - Dst: EXPECT_NE
      Src: /src/sentencepiece/src/builder_test.cc:46,1
    - Dst: Builder::CharsMap::end
      Src: /src/sentencepiece/src/builder_test.cc:46,1
    - Dst: Builder::CharsMap::find
      Src: /src/sentencepiece/src/builder_test.cc:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - Builder::CharsMap::find
    - Builder::CharsMap::size
    - sentencepiece::normalizer::Builder::RemoveRedundantMap
    - Builder::CharsMap::end
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, RemoveRedundantMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:51,1
    - Dst: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:51,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:52,1
    - Dst: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, GetPrecompiledCharsMapWithInvalidNameTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:58,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder_test.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:59,1
    - Dst: Builder::CharsMap::empty
      Src: /src/sentencepiece/src/builder_test.cc:59,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:61,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder_test.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - sentencepiece::normalizer::Builder::BuildNFKCMap
    - Builder::CharsMap::empty
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, BuildNFKCMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SetDataDir
      Src: /src/sentencepiece/src/builder_test.cc:66,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/builder_test.cc:66,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:70,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:72,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:73,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:74,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:74,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:81,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:82,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:82,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:89,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:90,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:90,1
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/builder_test.cc:95,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:96,1
    - Dst: NormalizerSpec::precompiled_charsmap
      Src: /src/sentencepiece/src/builder_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:98,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:99,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:100,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 102
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - NormalizerSpec::precompiled_charsmap
    - SetDataDir
    - ::testing::SrcDir
    - EXPECT_TRUE
    - EXPECT_EQ
    - Normalizer::Normalize
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, GetPrecompiledCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:108,1
    - Dst: static_cast<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:109,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:121,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:122,1
    - Dst: NormalizerSpec::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/builder_test.cc:122,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:125,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:125,1
    - Dst: NormalizerSpec::precompiled_charsmap
      Src: /src/sentencepiece/src/builder_test.cc:125,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:128,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/builder_test.cc:130,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:133,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:133,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:134,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:134,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:135,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:135,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:137,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:138,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:138,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:139,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:139,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:140,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:141,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/builder_test.cc:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 142
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - NormalizerSpec::precompiled_charsmap
    - static_cast<char32_t>
    - NormalizerSpec::set_add_dummy_prefix
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - NormalizerSpec::mutable_precompiled_charsmap
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, CompileCharsMap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_util::EncodePOD<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:151,1
    - Dst: string_util::EncodePOD<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:152,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:153,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/builder_test.cc:153,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/builder_test.cc:155,1
    - Dst: data
      Src: /src/sentencepiece/src/builder_test.cc:155,1
    - Dst: size
      Src: /src/sentencepiece/src/builder_test.cc:155,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/src/builder_test.cc:166,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/builder_test.cc:166,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:168,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:169,1
    - Dst: make_blob
      Src: /src/sentencepiece/src/builder_test.cc:169,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:179,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:179,1
    - Dst: make_blob
      Src: /src/sentencepiece/src/builder_test.cc:180,1
    - Dst: std::string
      Src: /src/sentencepiece/src/builder_test.cc:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 183
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - size
    - std::string::size
    - static_cast<uint32_t>
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - make_blob
    - EXPECT_FALSE
    - std::string
    - std::string::append
    - string_util::EncodePOD<uint32_t>
    - data
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, DecompileMalformedCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:189,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:190,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:190,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/src/builder_test.cc:190,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:195,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:195,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:199,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:200,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:201,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:203,1
    - Dst: sentencepiece::normalizer::Builder::SaveCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:203,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:204,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:204,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:208,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:209,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:209,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:212,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:216,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder_test.cc:216,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:217,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 219
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ASSERT_TRUE
    - ::testing::SrcDir
    - sentencepiece::normalizer::Builder::LoadCharsMap
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - ::testing::TempDir
    - sentencepiece::normalizer::Builder::BuildNFKCMap
    - EXPECT_EQ
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - sentencepiece::normalizer::Builder::SaveCharsMap
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, LoadCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/builder_test.cc:223,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:224,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:224,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder_test.cc:225,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder_test.cc:226,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder_test.cc:227,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:231,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:231,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:232,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:232,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:235,1
    - Dst: Builder::CharsMap::size
      Src: /src/sentencepiece/src/builder_test.cc:235,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:236,1
    - Dst: std::vector<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:237,1
    - Dst: std::vector<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:238,1
    - Dst: std::vector<char32_t>
      Src: /src/sentencepiece/src/builder_test.cc:238,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:240,1
    - Dst: sentencepiece::normalizer::Builder::SaveCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:241,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:242,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:242,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:246,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:247,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder_test.cc:248,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/builder_test.cc:248,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 251
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - Builder::CharsMap::size
    - ::testing::TempDir
    - sentencepiece::normalizer::Builder::LoadCharsMap
    - EXPECT_TRUE
    - std::vector<char32_t>
    - EXPECT_EQ
    - auto::WriteLine
    - sentencepiece::normalizer::Builder::SaveCharsMap
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, LoadCharsMapWithEmptyeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder_test.cc:258,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:262,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 263
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - std::vector::push_back
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, ContainsTooManySharedPrefixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/builder_test.cc:271,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:271,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/builder_test.cc:274,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/builder_test.cc:275,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/builder_test.cc:275,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/builder_test.cc:276,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/builder_test.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 277
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/builder_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - absl::Status::ok
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - absl::Status::message
    - EXPECT_EQ
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(BuilderTest, DecompileDeepCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
    functionSourceFile: /src/sentencepiece/src/init.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ScopedResourceDestructor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ShutdownLibrary
      Src: /src/sentencepiece/src/init.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: ~ScopedResourceDestructor()
    functionSourceFile: /src/sentencepiece/src/init.h
    functionUses: 0
    functionsReached:
    - ShutdownLibrary
    linkageType: ''
    returnType: void
    signature: void ~ScopedResourceDestructor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
    functionSourceFile: /src/sentencepiece/src/init.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ScopedResourceDestructor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ShutdownLibrary
      Src: /src/sentencepiece/src/init.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: ~ScopedResourceDestructor()
    functionSourceFile: /src/sentencepiece/src/init.h
    functionUses: 0
    functionsReached:
    - ShutdownLibrary
    linkageType: ''
    returnType: void
    signature: void ~ScopedResourceDestructor()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: sentencepiece::unigram::TrainerModel::TrainerModel
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerModel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sentencepiece::unigram::TrainerModel::TrainerModel
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerModel(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: sentencepiece::unigram::TrainerModel::Encode
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: sentencepiece::unigram::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: sentencepiece::unigram::TrainerModel::TrainerModel
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerModel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sentencepiece::unigram::TrainerModel::TrainerModel
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerModel(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: sentencepiece::unigram::TrainerModel::Encode
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: sentencepiece::unigram::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: sentencepiece::unigram::TrainerModel::TrainerModel
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerModel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sentencepiece::unigram::TrainerModel::TrainerModel
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerModel(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: sentencepiece::unigram::TrainerModel::Encode
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: sentencepiece::unigram::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: sentencepiece::unigram::TrainerModel::TrainerModel
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerModel()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: sentencepiece::unigram::TrainerModel::TrainerModel
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerModel(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: sentencepiece::unigram::TrainerModel::Encode
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Encode(absl::string_view normalized) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 71
    functionName: sentencepiece::unigram::Trainer::Trainer
    functionSourceFile: /src/sentencepiece/src/unigram_model_trainer.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Trainer(const TrainerSpec& trainer_spec,\n          const NormalizerSpec&
      normalizer_spec,\n          const NormalizerSpec& denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:31,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:33,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:38,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:39,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: sentencepiece::character::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:47,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:48,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/char_model_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: sentencepiece::character::AddPiece
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:53,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:55,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:56,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:57,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:58,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:59,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:60,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:61,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:91,1
    - Dst: std::string
      Src: /src/sentencepiece/src/char_model_test.cc:94,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 108
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::character::AddPiece
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - std::string
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(ModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - EXPECT_EQ
    - Model::NBestEncode
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(CharModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:31,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:33,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:38,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:39,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: sentencepiece::character::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 2
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:47,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:48,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/char_model_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: sentencepiece::character::AddPiece
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 1
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:53,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:55,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:56,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:57,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:58,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:59,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:60,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:61,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:91,1
    - Dst: std::string
      Src: /src/sentencepiece/src/char_model_test.cc:94,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 108
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::character::AddPiece
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - std::string
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(ModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - EXPECT_EQ
    - Model::NBestEncode
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(CharModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:31,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:33,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:38,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:39,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: sentencepiece::character::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 4
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:47,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:48,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/char_model_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: sentencepiece::character::AddPiece
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 2
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:53,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:55,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:56,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:57,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:58,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:59,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:60,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:61,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:91,1
    - Dst: std::string
      Src: /src/sentencepiece/src/char_model_test.cc:94,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 108
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::character::AddPiece
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - std::string
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(ModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - EXPECT_EQ
    - Model::NBestEncode
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(CharModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:31,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:33,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:38,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:39,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: sentencepiece::character::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 6
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:47,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:48,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/char_model_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: sentencepiece::character::AddPiece
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 3
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:53,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:55,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:56,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:57,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:58,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:59,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:60,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:61,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:91,1
    - Dst: std::string
      Src: /src/sentencepiece/src/char_model_test.cc:94,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 108
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::character::AddPiece
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - std::string
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(ModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - EXPECT_EQ
    - Model::NBestEncode
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(CharModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:31,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:33,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:38,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:39,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: sentencepiece::character::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 8
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:47,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:48,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/char_model_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: sentencepiece::character::AddPiece
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 4
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:53,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:55,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:56,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:57,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:58,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:59,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:60,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:61,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:91,1
    - Dst: std::string
      Src: /src/sentencepiece/src/char_model_test.cc:94,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 108
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::character::AddPiece
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - std::string
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(ModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - EXPECT_EQ
    - Model::NBestEncode
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(CharModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:31,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:33,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:38,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:39,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: sentencepiece::character::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 10
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:47,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:48,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/char_model_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: sentencepiece::character::AddPiece
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 5
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:53,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:55,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:56,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:57,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:58,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:59,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:60,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:61,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:91,1
    - Dst: std::string
      Src: /src/sentencepiece/src/char_model_test.cc:94,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 108
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::character::AddPiece
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - std::string
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(ModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - EXPECT_EQ
    - Model::NBestEncode
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(CharModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:31,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:33,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:38,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:39,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: sentencepiece::character::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 12
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:47,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:48,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/char_model_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: sentencepiece::character::AddPiece
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 6
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:53,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:55,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:56,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:57,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:58,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:59,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:60,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:61,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:91,1
    - Dst: std::string
      Src: /src/sentencepiece/src/char_model_test.cc:94,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 108
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::character::AddPiece
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - std::string
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(ModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - EXPECT_EQ
    - Model::NBestEncode
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(CharModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:31,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:33,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:35,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:36,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:37,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:38,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/char_model_test.cc:39,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 43
    functionName: sentencepiece::character::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 14
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:47,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/char_model_test.cc:48,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/char_model_test.cc:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: sentencepiece::character::AddPiece
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 7
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:53,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:55,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:56,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:57,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:58,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:59,1
    - Dst: sentencepiece::character::AddPiece
      Src: /src/sentencepiece/src/char_model_test.cc:60,1
    - Dst: ModelProto::mutable_pieces
      Src: /src/sentencepiece/src/char_model_test.cc:61,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/char_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:78,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:82,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:83,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:84,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:86,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:88,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:91,1
    - Dst: std::string
      Src: /src/sentencepiece/src/char_model_test.cc:94,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:97,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/char_model_test.cc:100,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/char_model_test.cc:101,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:103,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:104,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:105,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 108
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto::mutable_pieces
    - sentencepiece::character::AddPiece
    - EncodeResult::empty
    - Model::Encode
    - EncodeResult::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - std::string
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(ModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::character::MakeBaseModelProto
      Src: /src/sentencepiece/src/char_model_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/char_model_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/char_model_test.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: sentencepiece::character::TEST
    functionSourceFile: /src/sentencepiece/src/char_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - EXPECT_EQ
    - Model::NBestEncode
    - sentencepiece::character::MakeBaseModelProto
    linkageType: ''
    returnType: void
    signature: void TEST(CharModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/word_model.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: sentencepiece::word::Model::Model
    functionSourceFile: /src/sentencepiece/src/word_model.cc
    functionUses: 0
    functionsReached:
    - InitializePieces
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/word_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/word_model.cc:31,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/word_model.cc:31,1
    - Dst: SplitIntoWords
      Src: /src/sentencepiece/src/word_model.cc:36,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/word_model.cc:37,1
    - Dst: PieceToId
      Src: /src/sentencepiece/src/word_model.cc:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: sentencepiece::word::Model::Encode
    functionSourceFile: /src/sentencepiece/src/word_model.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::empty
    - status
    - EncodeResult::emplace_back
    - PieceToId
    - SplitIntoWords
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::Encode(absl::string_view normalized) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/word_model.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: sentencepiece::word::Model::Model
    functionSourceFile: /src/sentencepiece/src/word_model.cc
    functionUses: 0
    functionsReached:
    - InitializePieces
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/word_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/word_model.cc:31,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/word_model.cc:31,1
    - Dst: SplitIntoWords
      Src: /src/sentencepiece/src/word_model.cc:36,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/word_model.cc:37,1
    - Dst: PieceToId
      Src: /src/sentencepiece/src/word_model.cc:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: sentencepiece::word::Model::Encode
    functionSourceFile: /src/sentencepiece/src/word_model.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::empty
    - status
    - EncodeResult::emplace_back
    - PieceToId
    - SplitIntoWords
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::Encode(absl::string_view normalized) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/word_model.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: sentencepiece::word::Model::Model
    functionSourceFile: /src/sentencepiece/src/word_model.cc
    functionUses: 0
    functionsReached:
    - InitializePieces
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/word_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/word_model.cc:31,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/word_model.cc:31,1
    - Dst: SplitIntoWords
      Src: /src/sentencepiece/src/word_model.cc:36,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/word_model.cc:37,1
    - Dst: PieceToId
      Src: /src/sentencepiece/src/word_model.cc:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: sentencepiece::word::Model::Encode
    functionSourceFile: /src/sentencepiece/src/word_model.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::empty
    - status
    - EncodeResult::emplace_back
    - PieceToId
    - SplitIntoWords
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::Encode(absl::string_view normalized) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/word_model.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: sentencepiece::word::Model::Model
    functionSourceFile: /src/sentencepiece/src/word_model.cc
    functionUses: 0
    functionsReached:
    - InitializePieces
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/word_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/word_model.cc:31,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/word_model.cc:31,1
    - Dst: SplitIntoWords
      Src: /src/sentencepiece/src/word_model.cc:36,1
    - Dst: EncodeResult::emplace_back
      Src: /src/sentencepiece/src/word_model.cc:37,1
    - Dst: PieceToId
      Src: /src/sentencepiece/src/word_model.cc:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - normalized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: sentencepiece::word::Model::Encode
    functionSourceFile: /src/sentencepiece/src/word_model.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::empty
    - status
    - EncodeResult::emplace_back
    - PieceToId
    - SplitIntoWords
    linkageType: ''
    returnType: EncodeResult
    signature: EncodeResult Model::Encode(absl::string_view normalized) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/model_interface.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: sentencepiece::ModelInterface::ModelInterface
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    linkageType: ''
    returnType: void
    signature: void ModelInterface::ModelInterface(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: ModelInterface::~ModelInterface()
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ModelInterface::~ModelInterface()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - default_value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: RETURN_PIECE
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_PIECE(name, default_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PIECE
      Src: /src/sentencepiece/src/model_interface.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: sentencepiece::ModelInterface::unk_piece
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - RETURN_PIECE
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view ModelInterface::unk_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PIECE
      Src: /src/sentencepiece/src/model_interface.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: sentencepiece::ModelInterface::bos_piece
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - RETURN_PIECE
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view ModelInterface::bos_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PIECE
      Src: /src/sentencepiece/src/model_interface.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: sentencepiece::ModelInterface::eos_piece
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - RETURN_PIECE
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view ModelInterface::eos_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PIECE
      Src: /src/sentencepiece/src/model_interface.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: sentencepiece::ModelInterface::pad_piece
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - RETURN_PIECE
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view ModelInterface::pad_piece() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/model_interface.cc:54,1
    - Dst: end
      Src: /src/sentencepiece/src/model_interface.cc:54,1
    - Dst: sentencepiece::ModelInterface::PieceToIdNoReserved
      Src: /src/sentencepiece/src/model_interface.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: sentencepiece::ModelInterface::PieceToId
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - end
    - find
    - sentencepiece::ModelInterface::PieceToIdNoReserved
    linkageType: ''
    returnType: int
    signature: int ModelInterface::PieceToId(absl::string_view piece) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/model_interface.cc:61,1
    - Dst: end
      Src: /src/sentencepiece/src/model_interface.cc:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: sentencepiece::ModelInterface::PieceToIdNoReserved
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 1
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int ModelInterface::PieceToIdNoReserved(absl::string_view piece) const
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/src/model_interface.cc:68,1
    - Dst: clear
      Src: /src/sentencepiece/src/model_interface.cc:69,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.cc:77,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.cc:78,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:80,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:81,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:85,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:86,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:87,1
    - Dst: reserve
      Src: /src/sentencepiece/src/model_interface.cc:94,1
    - Dst: reserve
      Src: /src/sentencepiece/src/model_interface.cc:95,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.cc:97,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.cc:98,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:99,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:100,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:103,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:104,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:109,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:110,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:111,1
    - Dst: sentencepiece::port::InsertIfNotPresent
      Src: /src/sentencepiece/src/model_interface.cc:112,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:113,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:114,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/model_interface.cc:115,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:115,1
    - Dst: sentencepiece::port::InsertIfNotPresent
      Src: /src/sentencepiece/src/model_interface.cc:118,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:118,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:120,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/model_interface.cc:120,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:120,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:124,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/src/model_interface.cc:125,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:125,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:128,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:130,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:136,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/model_interface.cc:137,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:138,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/model_interface.cc:139,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:139,1
    - Dst: PieceToByte
      Src: /src/sentencepiece/src/model_interface.cc:143,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:143,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:147,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/model_interface.cc:148,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:148,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:155,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/model_interface.cc:159,1
    - Dst: std::find
      Src: /src/sentencepiece/src/model_interface.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/model_interface.cc:161,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/model_interface.cc:161,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/model_interface.cc:162,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:163,1
    - Dst: std::make_unique<normalizer::PrefixMatcher>
      Src: /src/sentencepiece/src/model_interface.cc:169,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 1
    argNames:
    - use_reserved_id_map
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 170
    functionName: sentencepiece::ModelInterface::InitializePieces
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - std::set::insert
    - std::vector::begin
    - type
    - clear
    - std::vector::end
    - piece
    - pieces_size
    - absl::StrCat
    - PieceToByte
    - std::make_unique<normalizer::PrefixMatcher>
    - trainer_spec
    - std::find
    - reserve
    - pieces
    - absl::InternalError
    - sentencepiece::port::InsertIfNotPresent
    linkageType: ''
    returnType: void
    signature: void ModelInterface::InitializePieces(bool use_reserved_id_map)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/model_interface.cc:175,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/model_interface.cc:176,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/model_interface.cc:176,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/model_interface.cc:185,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/model_interface.cc:189,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/model_interface.cc:189,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/model_interface.cc:190,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/model_interface.cc:196,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/model_interface.cc:202,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/model_interface.cc:203,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/model_interface.cc:203,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/model_interface.cc:203,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/model_interface.cc:207,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/model_interface.cc:213,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/model_interface.cc:213,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/model_interface.cc:214,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/model_interface.cc:217,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/model_interface.cc:219,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/model_interface.cc:227,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/model_interface.cc:228,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/model_interface.cc:228,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/model_interface.cc:228,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 3
    argNames:
    - text
    - treat_ws_as_suffix
    - allow_ws_only_pieces
    argTypes:
    - absl::string_view
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 234
    functionName: sentencepiece::SplitIntoWords
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 12
    functionsReached:
    - std::vector::emplace_back
    - absl::string_view
    - sentencepiece::string_util::OneCharLen
    - absl::string_view::size
    - absl::string_view::data
    - std::min<int>
    - std::vector::back
    linkageType: ''
    returnType: std::vector<absl::string_view>
    signature: "std::vector<absl::string_view> SplitIntoWords(absl::string_view text,\n
      \                                             bool treat_ws_as_suffix,\n                                              bool
      allow_ws_only_pieces)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::string>::string>
      Src: /src/sentencepiece/src/model_interface.cc:238,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/model_interface.cc:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 245
    functionName: sentencepiece::ByteToPiece
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 11
    functionsReached:
    - std::vector<std::string>::string>
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string & ByteToPiece(unsigned char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PieceToByteMap::PieceToByteMap
      Src: /src/sentencepiece/src/model_interface.cc:250,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface.cc:252,1
    - Dst: auto*::find
      Src: /src/sentencepiece/src/model_interface.cc:257,1
    - Dst: auto*::end
      Src: /src/sentencepiece/src/model_interface.cc:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 262
    functionName: sentencepiece::PieceToByte
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 4
    functionsReached:
    - sentencepiece::ByteToPiece
    - auto*::end
    - PieceToByteMap::PieceToByteMap
    - auto*::find
    linkageType: ''
    returnType: int
    signature: int PieceToByte(absl::string_view piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/model_interface.cc:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: sentencepiece::ModelInterface::ModelInterface
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    linkageType: ''
    returnType: void
    signature: void ModelInterface::ModelInterface(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: ModelInterface::~ModelInterface()
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ModelInterface::~ModelInterface()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - default_value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: RETURN_PIECE
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RETURN_PIECE(name, default_value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PIECE
      Src: /src/sentencepiece/src/model_interface.cc:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: sentencepiece::ModelInterface::unk_piece
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - RETURN_PIECE
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view ModelInterface::unk_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PIECE
      Src: /src/sentencepiece/src/model_interface.cc:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: sentencepiece::ModelInterface::bos_piece
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - RETURN_PIECE
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view ModelInterface::bos_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PIECE
      Src: /src/sentencepiece/src/model_interface.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: sentencepiece::ModelInterface::eos_piece
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - RETURN_PIECE
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view ModelInterface::eos_piece() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_PIECE
      Src: /src/sentencepiece/src/model_interface.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: sentencepiece::ModelInterface::pad_piece
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - RETURN_PIECE
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view ModelInterface::pad_piece() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/model_interface.cc:54,1
    - Dst: end
      Src: /src/sentencepiece/src/model_interface.cc:54,1
    - Dst: sentencepiece::ModelInterface::PieceToIdNoReserved
      Src: /src/sentencepiece/src/model_interface.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: sentencepiece::ModelInterface::PieceToId
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - end
    - find
    - sentencepiece::ModelInterface::PieceToIdNoReserved
    linkageType: ''
    returnType: int
    signature: int ModelInterface::PieceToId(absl::string_view piece) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/model_interface.cc:61,1
    - Dst: end
      Src: /src/sentencepiece/src/model_interface.cc:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: sentencepiece::ModelInterface::PieceToIdNoReserved
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 2
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: int
    signature: int ModelInterface::PieceToIdNoReserved(absl::string_view piece) const
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/src/model_interface.cc:68,1
    - Dst: clear
      Src: /src/sentencepiece/src/model_interface.cc:69,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.cc:77,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.cc:78,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:80,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:81,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:85,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:86,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:87,1
    - Dst: reserve
      Src: /src/sentencepiece/src/model_interface.cc:94,1
    - Dst: reserve
      Src: /src/sentencepiece/src/model_interface.cc:95,1
    - Dst: pieces_size
      Src: /src/sentencepiece/src/model_interface.cc:97,1
    - Dst: pieces
      Src: /src/sentencepiece/src/model_interface.cc:98,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:99,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:100,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:103,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:104,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:109,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:110,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:111,1
    - Dst: sentencepiece::port::InsertIfNotPresent
      Src: /src/sentencepiece/src/model_interface.cc:112,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:113,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:114,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/model_interface.cc:115,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:115,1
    - Dst: sentencepiece::port::InsertIfNotPresent
      Src: /src/sentencepiece/src/model_interface.cc:118,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:118,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:120,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/model_interface.cc:120,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:120,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:124,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/src/model_interface.cc:125,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:125,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:128,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:130,1
    - Dst: type
      Src: /src/sentencepiece/src/model_interface.cc:136,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/model_interface.cc:137,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:138,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/model_interface.cc:139,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:139,1
    - Dst: PieceToByte
      Src: /src/sentencepiece/src/model_interface.cc:143,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:143,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:147,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/model_interface.cc:148,1
    - Dst: piece
      Src: /src/sentencepiece/src/model_interface.cc:148,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:155,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/model_interface.cc:159,1
    - Dst: std::find
      Src: /src/sentencepiece/src/model_interface.cc:161,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/model_interface.cc:161,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/model_interface.cc:161,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/model_interface.cc:162,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/model_interface.cc:163,1
    - Dst: std::make_unique<normalizer::PrefixMatcher>
      Src: /src/sentencepiece/src/model_interface.cc:169,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 70
    argCount: 1
    argNames:
    - use_reserved_id_map
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 170
    functionName: sentencepiece::ModelInterface::InitializePieces
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 0
    functionsReached:
    - std::set::insert
    - std::vector::begin
    - type
    - clear
    - std::vector::end
    - piece
    - pieces_size
    - absl::StrCat
    - PieceToByte
    - std::make_unique<normalizer::PrefixMatcher>
    - trainer_spec
    - std::find
    - reserve
    - pieces
    - absl::InternalError
    - sentencepiece::port::InsertIfNotPresent
    linkageType: ''
    returnType: void
    signature: void ModelInterface::InitializePieces(bool use_reserved_id_map)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/model_interface.cc:175,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/model_interface.cc:176,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/model_interface.cc:176,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/model_interface.cc:185,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/model_interface.cc:189,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/model_interface.cc:189,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/model_interface.cc:190,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/model_interface.cc:196,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/model_interface.cc:202,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/model_interface.cc:203,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/model_interface.cc:203,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/model_interface.cc:203,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/model_interface.cc:207,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/model_interface.cc:213,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/model_interface.cc:213,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/model_interface.cc:214,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/model_interface.cc:217,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/model_interface.cc:219,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/model_interface.cc:227,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/model_interface.cc:228,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/model_interface.cc:228,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/model_interface.cc:228,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 3
    argNames:
    - text
    - treat_ws_as_suffix
    - allow_ws_only_pieces
    argTypes:
    - absl::string_view
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 234
    functionName: sentencepiece::SplitIntoWords
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 12
    functionsReached:
    - std::vector::emplace_back
    - absl::string_view
    - sentencepiece::string_util::OneCharLen
    - absl::string_view::size
    - absl::string_view::data
    - std::min<int>
    - std::vector::back
    linkageType: ''
    returnType: std::vector<absl::string_view>
    signature: "std::vector<absl::string_view> SplitIntoWords(absl::string_view text,\n
      \                                             bool treat_ws_as_suffix,\n                                              bool
      allow_ws_only_pieces)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<std::string>::string>
      Src: /src/sentencepiece/src/model_interface.cc:238,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/model_interface.cc:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - c
    argTypes:
    - unsigned char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 245
    functionName: sentencepiece::ByteToPiece
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 12
    functionsReached:
    - std::vector<std::string>::string>
    - absl::StrFormat
    linkageType: ''
    returnType: std::string
    signature: std::string & ByteToPiece(unsigned char c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PieceToByteMap::PieceToByteMap
      Src: /src/sentencepiece/src/model_interface.cc:250,1
    - Dst: sentencepiece::ByteToPiece
      Src: /src/sentencepiece/src/model_interface.cc:252,1
    - Dst: auto*::find
      Src: /src/sentencepiece/src/model_interface.cc:257,1
    - Dst: auto*::end
      Src: /src/sentencepiece/src/model_interface.cc:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - piece
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 262
    functionName: sentencepiece::PieceToByte
    functionSourceFile: /src/sentencepiece/src/model_interface.cc
    functionUses: 4
    functionsReached:
    - sentencepiece::ByteToPiece
    - auto*::end
    - PieceToByteMap::PieceToByteMap
    - auto*::find
    linkageType: ''
    returnType: int
    signature: int PieceToByte(absl::string_view piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: EXPECT_OK
    functionSourceFile: /src/sentencepiece/src/testharness.h
    functionUses: 30
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EXPECT_OK(c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: ASSERT_OK
    functionSourceFile: /src/sentencepiece/src/testharness.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSERT_OK(c)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
      Src: /src/sentencepiece/src/spm_normalize_main.cc:49,1
    - Dst: sentencepiece::ParseCommandLineFlags
      Src: /src/sentencepiece/src/spm_normalize_main.cc:50,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_normalize_main.cc:53,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/spm_normalize_main.cc:55,1
    - Dst: std::string
      Src: /src/sentencepiece/src/spm_normalize_main.cc:55,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/spm_normalize_main.cc:58,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_normalize_main.cc:58,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_normalize_main.cc:63,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_normalize_main.cc:66,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/spm_normalize_main.cc:66,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_normalize_main.cc:66,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/spm_normalize_main.cc:67,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_normalize_main.cc:68,1
    - Dst: NormalizerSpec::set_normalization_rule_tsv
      Src: /src/sentencepiece/src/spm_normalize_main.cc:69,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_normalize_main.cc:70,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_normalize_main.cc:71,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
      Src: /src/sentencepiece/src/spm_normalize_main.cc:71,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_normalize_main.cc:72,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/spm_normalize_main.cc:73,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_normalize_main.cc:73,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_normalize_main.cc:74,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
      Src: /src/sentencepiece/src/spm_normalize_main.cc:74,1
    - Dst: LOG
      Src: /src/sentencepiece/src/spm_normalize_main.cc:76,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_normalize_main.cc:81,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/spm_normalize_main.cc:82,1
    - Dst: NormalizerSpec::set_escape_whitespaces
      Src: /src/sentencepiece/src/spm_normalize_main.cc:83,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/spm_normalize_main.cc:84,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_normalize_main.cc:85,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_normalize_main.cc:88,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_normalize_main.cc:90,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/spm_normalize_main.cc:91,1
    - Dst: NormalizerSpec::precompiled_charsmap
      Src: /src/sentencepiece/src/spm_normalize_main.cc:91,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_normalize_main.cc:92,1
    - Dst: sentencepiece::normalizer::Builder::SaveCharsMap
      Src: /src/sentencepiece/src/spm_normalize_main.cc:92,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_normalize_main.cc:92,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/spm_normalize_main.cc:96,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_normalize_main.cc:96,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_normalize_main.cc:97,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/spm_normalize_main.cc:97,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/spm_normalize_main.cc:99,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/spm_normalize_main.cc:100,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/spm_normalize_main.cc:105,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_normalize_main.cc:106,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/spm_normalize_main.cc:106,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/spm_normalize_main.cc:107,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/spm_normalize_main.cc:108,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/spm_normalize_main.cc:108,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 114
    functionName: main
    functionSourceFile: /src/sentencepiece/src/spm_normalize_main.cc
    functionUses: 0
    functionsReached:
    - SentencePieceProcessor::model_proto
    - sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
    - SentencePieceProcessor::Load
    - sentencepiece::ParseCommandLineFlags
    - sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
    - NormalizerSpec::precompiled_charsmap
    - std::vector::push_back
    - std::vector::empty
    - LOG
    - auto::WriteLine
    - std::string
    - NormalizerSpec::set_remove_extra_whitespaces
    - NormalizerSpec::set_add_dummy_prefix
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - NormalizerSpec::set_escape_whitespaces
    - NormalizerSpec::set_normalization_rule_tsv
    - sentencepiece::normalizer::Builder::SaveCharsMap
    - QCHECK_OK
    - NormalizerSpec::set_name
    - auto::status
    - Normalizer::Normalize
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - absl::GetFlag
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/trainer_factory.cc:28,1
    - Dst: std::make_unique<unigram::Trainer>
      Src: /src/sentencepiece/src/trainer_factory.cc:30,1
    - Dst: std::make_unique<bpe::Trainer>
      Src: /src/sentencepiece/src/trainer_factory.cc:34,1
    - Dst: std::make_unique<word::Trainer>
      Src: /src/sentencepiece/src/trainer_factory.cc:38,1
    - Dst: std::make_unique<character::Trainer>
      Src: /src/sentencepiece/src/trainer_factory.cc:42,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_factory.cc:46,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/trainer_factory.cc:46,1
    - Dst: std::make_unique<unigram::Trainer>
      Src: /src/sentencepiece/src/trainer_factory.cc:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - trainer_spec
    - normalizer_spec
    - denormalizer_spec
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 52
    functionName: sentencepiece::TrainerFactory::Create
    functionSourceFile: /src/sentencepiece/src/trainer_factory.cc
    functionUses: 2
    functionsReached:
    - std::make_unique<unigram::Trainer>
    - std::make_unique<word::Trainer>
    - std::make_unique<character::Trainer>
    - std::make_unique<bpe::Trainer>
    - LOG
    - TrainerSpec::model_type
    linkageType: ''
    returnType: std::unique_ptr<TrainerInterface>
    signature: "std::unique_ptr<TrainerInterface> TrainerFactory::Create(\n    const
      TrainerSpec &trainer_spec, const NormalizerSpec &normalizer_spec,\n    const
      NormalizerSpec &denormalizer_spec)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/trainer_factory.cc:28,1
    - Dst: std::make_unique<unigram::Trainer>
      Src: /src/sentencepiece/src/trainer_factory.cc:30,1
    - Dst: std::make_unique<bpe::Trainer>
      Src: /src/sentencepiece/src/trainer_factory.cc:34,1
    - Dst: std::make_unique<word::Trainer>
      Src: /src/sentencepiece/src/trainer_factory.cc:38,1
    - Dst: std::make_unique<character::Trainer>
      Src: /src/sentencepiece/src/trainer_factory.cc:42,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_factory.cc:46,1
    - Dst: TrainerSpec::model_type
      Src: /src/sentencepiece/src/trainer_factory.cc:46,1
    - Dst: std::make_unique<unigram::Trainer>
      Src: /src/sentencepiece/src/trainer_factory.cc:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - trainer_spec
    - normalizer_spec
    - denormalizer_spec
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 52
    functionName: sentencepiece::TrainerFactory::Create
    functionSourceFile: /src/sentencepiece/src/trainer_factory.cc
    functionUses: 2
    functionsReached:
    - std::make_unique<unigram::Trainer>
    - std::make_unique<word::Trainer>
    - std::make_unique<character::Trainer>
    - std::make_unique<bpe::Trainer>
    - LOG
    - TrainerSpec::model_type
    linkageType: ''
    returnType: std::unique_ptr<TrainerInterface>
    signature: "std::unique_ptr<TrainerInterface> TrainerFactory::Create(\n    const
      TrainerSpec &trainer_spec, const NormalizerSpec &normalizer_spec,\n    const
      NormalizerSpec &denormalizer_spec)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ' h1'
    - ' h2'
    argTypes:
    - SymbolPair
    - SymbolPair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 91
    functionName: "operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ' h1'
    - ' h2'
    argTypes:
    - SymbolPair
    - SymbolPair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 91
    functionName: "operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/bpe_model.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: sentencepiece::bpe::Model::Model
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached:
    - InitializePieces
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/bpe_model.cc:115,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/bpe_model.cc:115,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/bpe_model.cc:120,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/bpe_model.cc:120,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/bpe_model.cc:126,1
    - Dst: PrefixMatch
      Src: /src/sentencepiece/src/bpe_model.cc:128,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/bpe_model.cc:129,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/bpe_model.cc:129,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/bpe_model.cc:131,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/bpe_model.cc:132,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:134,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/bpe_model.cc:137,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/bpe_model.cc:142,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:142,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:151,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:156,1
    - Dst: Symbol*::piece::data
      Src: /src/sentencepiece/src/bpe_model.cc:160,1
    - Dst: Symbol*::piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:161,1
    - Dst: Symbol*::piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:161,1
    - Dst: PieceToIdNoReserved
      Src: /src/sentencepiece/src/bpe_model.cc:166,1
    - Dst: IsReservedId
      Src: /src/sentencepiece/src/bpe_model.cc:171,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:172,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/bpe_model.cc:175,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/bpe_model.cc:176,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/bpe_model.cc:179,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/bpe_model.cc:181,1
    - Dst: piece::data
      Src: /src/sentencepiece/src/bpe_model.cc:199,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:200,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:200,1
    - Dst: PieceToIdNoReserved
      Src: /src/sentencepiece/src/bpe_model.cc:205,1
    - Dst: IsReservedId
      Src: /src/sentencepiece/src/bpe_model.cc:208,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/bpe_model.cc:214,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/bpe_model.cc:215,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/bpe_model.cc:216,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/bpe_model.cc:219,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/bpe_model.cc:221,1
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/bpe_model.cc:226,1
    - Dst: Agenda::empty
      Src: /src/sentencepiece/src/bpe_model.cc:229,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/bpe_model.cc:231,1
    - Dst: piece::empty
      Src: /src/sentencepiece/src/bpe_model.cc:232,1
    - Dst: piece::empty
      Src: /src/sentencepiece/src/bpe_model.cc:233,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:234,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:235,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/bpe_model.cc:237,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/bpe_model.cc:241,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/bpe_model.cc:242,1
    - Dst: absl::Bernoulli
      Src: /src/sentencepiece/src/bpe_model.cc:248,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/bpe_model.cc:254,1
    - Dst: piece::data
      Src: /src/sentencepiece/src/bpe_model.cc:255,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:256,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:256,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/bpe_model.cc:263,1
    - Dst: MaybeAddNewSymbolPair
      Src: /src/sentencepiece/src/bpe_model.cc:266,1
    - Dst: MaybeAddNewSymbolPair
      Src: /src/sentencepiece/src/bpe_model.cc:267,1
    - Dst: PieceToIdNoReserved
      Src: /src/sentencepiece/src/bpe_model.cc:276,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:280,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/bpe_model.cc:283,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:284,1
    - Dst: absl::flat_hash_map::find
      Src: /src/sentencepiece/src/bpe_model.cc:287,1
    - Dst: absl::flat_hash_map::end
      Src: /src/sentencepiece/src/bpe_model.cc:288,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:289,1
    - Dst: self
      Src: /src/sentencepiece/src/bpe_model.cc:293,1
    - Dst: self
      Src: /src/sentencepiece/src/bpe_model.cc:294,1
    - Dst: EncodeResult::reserve
      Src: /src/sentencepiece/src/bpe_model.cc:298,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:298,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/bpe_model.cc:300,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:300,1
    - Dst: resegment
      Src: /src/sentencepiece/src/bpe_model.cc:301,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 87
    argCount: 2
    argNames:
    - normalized
    - alpha
    argTypes:
    - absl::string_view
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 306
    functionName: sentencepiece::bpe::Model::SampleEncode
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 4
    functionsReached:
    - absl::Bernoulli
    - absl::string_view::empty
    - piece::size
    - std::vector::size
    - absl::string_view::remove_prefix
    - IsReservedId
    - Agenda::push
    - piece::empty
    - GetScoreInlined
    - Agenda::empty
    - status
    - std::vector::empty
    - absl::string_view
    - Symbol*::piece::data
    - PrefixMatch
    - Agenda::pop
    - MaybeAddNewSymbolPair
    - std::vector::emplace_back
    - absl::flat_hash_map::find
    - absl::flat_hash_map::end
    - std::vector::reserve
    - emplace_back
    - absl::string_view::size
    - absl::string_view::data
    - std::make_pair
    - Agenda::top
    - resegment
    - static_cast<int>
    - Symbol*::piece::size
    - sentencepiece::random::GetRandomGenerator
    - self
    - EncodeResult::reserve
    - PieceToIdNoReserved
    - piece::data
    - IsUnusedInlined
    linkageType: ''
    returnType: std::vector<std::pair<absl::string_view, int>>
    signature: "std::vector<std::pair<absl::string_view, int>> Model::SampleEncode(\n
      \   absl::string_view normalized, float alpha) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ' h1'
    - ' h2'
    argTypes:
    - SymbolPair
    - SymbolPair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 91
    functionName: "operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ' h1'
    - ' h2'
    argTypes:
    - SymbolPair
    - SymbolPair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 91
    functionName: "operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/bpe_model.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: sentencepiece::bpe::Model::Model
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached:
    - InitializePieces
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/bpe_model.cc:115,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/bpe_model.cc:115,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/bpe_model.cc:120,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/bpe_model.cc:120,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/bpe_model.cc:126,1
    - Dst: PrefixMatch
      Src: /src/sentencepiece/src/bpe_model.cc:128,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/bpe_model.cc:129,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/bpe_model.cc:129,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/bpe_model.cc:131,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/bpe_model.cc:132,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:134,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/bpe_model.cc:137,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/bpe_model.cc:142,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:142,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:151,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:156,1
    - Dst: Symbol*::piece::data
      Src: /src/sentencepiece/src/bpe_model.cc:160,1
    - Dst: Symbol*::piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:161,1
    - Dst: Symbol*::piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:161,1
    - Dst: PieceToIdNoReserved
      Src: /src/sentencepiece/src/bpe_model.cc:166,1
    - Dst: IsReservedId
      Src: /src/sentencepiece/src/bpe_model.cc:171,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:172,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/bpe_model.cc:175,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/bpe_model.cc:176,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/bpe_model.cc:179,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/bpe_model.cc:181,1
    - Dst: piece::data
      Src: /src/sentencepiece/src/bpe_model.cc:199,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:200,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:200,1
    - Dst: PieceToIdNoReserved
      Src: /src/sentencepiece/src/bpe_model.cc:205,1
    - Dst: IsReservedId
      Src: /src/sentencepiece/src/bpe_model.cc:208,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/bpe_model.cc:214,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/bpe_model.cc:215,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/bpe_model.cc:216,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/bpe_model.cc:219,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/bpe_model.cc:221,1
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/bpe_model.cc:226,1
    - Dst: Agenda::empty
      Src: /src/sentencepiece/src/bpe_model.cc:229,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/bpe_model.cc:231,1
    - Dst: piece::empty
      Src: /src/sentencepiece/src/bpe_model.cc:232,1
    - Dst: piece::empty
      Src: /src/sentencepiece/src/bpe_model.cc:233,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:234,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:235,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/bpe_model.cc:237,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/bpe_model.cc:241,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/bpe_model.cc:242,1
    - Dst: absl::Bernoulli
      Src: /src/sentencepiece/src/bpe_model.cc:248,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/bpe_model.cc:254,1
    - Dst: piece::data
      Src: /src/sentencepiece/src/bpe_model.cc:255,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:256,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:256,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/bpe_model.cc:263,1
    - Dst: MaybeAddNewSymbolPair
      Src: /src/sentencepiece/src/bpe_model.cc:266,1
    - Dst: MaybeAddNewSymbolPair
      Src: /src/sentencepiece/src/bpe_model.cc:267,1
    - Dst: PieceToIdNoReserved
      Src: /src/sentencepiece/src/bpe_model.cc:276,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:280,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/bpe_model.cc:283,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:284,1
    - Dst: absl::flat_hash_map::find
      Src: /src/sentencepiece/src/bpe_model.cc:287,1
    - Dst: absl::flat_hash_map::end
      Src: /src/sentencepiece/src/bpe_model.cc:288,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:289,1
    - Dst: self
      Src: /src/sentencepiece/src/bpe_model.cc:293,1
    - Dst: self
      Src: /src/sentencepiece/src/bpe_model.cc:294,1
    - Dst: EncodeResult::reserve
      Src: /src/sentencepiece/src/bpe_model.cc:298,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:298,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/bpe_model.cc:300,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:300,1
    - Dst: resegment
      Src: /src/sentencepiece/src/bpe_model.cc:301,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 87
    argCount: 2
    argNames:
    - normalized
    - alpha
    argTypes:
    - absl::string_view
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 306
    functionName: sentencepiece::bpe::Model::SampleEncode
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 4
    functionsReached:
    - absl::Bernoulli
    - absl::string_view::empty
    - piece::size
    - std::vector::size
    - absl::string_view::remove_prefix
    - IsReservedId
    - Agenda::push
    - piece::empty
    - GetScoreInlined
    - Agenda::empty
    - status
    - std::vector::empty
    - absl::string_view
    - Symbol*::piece::data
    - PrefixMatch
    - Agenda::pop
    - MaybeAddNewSymbolPair
    - std::vector::emplace_back
    - absl::flat_hash_map::find
    - absl::flat_hash_map::end
    - std::vector::reserve
    - emplace_back
    - absl::string_view::size
    - absl::string_view::data
    - std::make_pair
    - Agenda::top
    - resegment
    - static_cast<int>
    - Symbol*::piece::size
    - sentencepiece::random::GetRandomGenerator
    - self
    - EncodeResult::reserve
    - PieceToIdNoReserved
    - piece::data
    - IsUnusedInlined
    linkageType: ''
    returnType: std::vector<std::pair<absl::string_view, int>>
    signature: "std::vector<std::pair<absl::string_view, int>> Model::SampleEncode(\n
      \   absl::string_view normalized, float alpha) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ' h1'
    - ' h2'
    argTypes:
    - SymbolPair
    - SymbolPair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 91
    functionName: "operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ' h1'
    - ' h2'
    argTypes:
    - SymbolPair
    - SymbolPair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 91
    functionName: "operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/bpe_model.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: sentencepiece::bpe::Model::Model
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached:
    - InitializePieces
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/bpe_model.cc:115,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/bpe_model.cc:115,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/bpe_model.cc:120,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/bpe_model.cc:120,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/bpe_model.cc:126,1
    - Dst: PrefixMatch
      Src: /src/sentencepiece/src/bpe_model.cc:128,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/bpe_model.cc:129,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/bpe_model.cc:129,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/bpe_model.cc:131,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/bpe_model.cc:132,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:134,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/bpe_model.cc:137,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/bpe_model.cc:142,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:142,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:151,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:156,1
    - Dst: Symbol*::piece::data
      Src: /src/sentencepiece/src/bpe_model.cc:160,1
    - Dst: Symbol*::piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:161,1
    - Dst: Symbol*::piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:161,1
    - Dst: PieceToIdNoReserved
      Src: /src/sentencepiece/src/bpe_model.cc:166,1
    - Dst: IsReservedId
      Src: /src/sentencepiece/src/bpe_model.cc:171,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:172,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/bpe_model.cc:175,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/bpe_model.cc:176,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/bpe_model.cc:179,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/bpe_model.cc:181,1
    - Dst: piece::data
      Src: /src/sentencepiece/src/bpe_model.cc:199,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:200,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:200,1
    - Dst: PieceToIdNoReserved
      Src: /src/sentencepiece/src/bpe_model.cc:205,1
    - Dst: IsReservedId
      Src: /src/sentencepiece/src/bpe_model.cc:208,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/bpe_model.cc:214,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/bpe_model.cc:215,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/bpe_model.cc:216,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/bpe_model.cc:219,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/bpe_model.cc:221,1
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/bpe_model.cc:226,1
    - Dst: Agenda::empty
      Src: /src/sentencepiece/src/bpe_model.cc:229,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/bpe_model.cc:231,1
    - Dst: piece::empty
      Src: /src/sentencepiece/src/bpe_model.cc:232,1
    - Dst: piece::empty
      Src: /src/sentencepiece/src/bpe_model.cc:233,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:234,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:235,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/bpe_model.cc:237,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/bpe_model.cc:241,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/bpe_model.cc:242,1
    - Dst: absl::Bernoulli
      Src: /src/sentencepiece/src/bpe_model.cc:248,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/bpe_model.cc:254,1
    - Dst: piece::data
      Src: /src/sentencepiece/src/bpe_model.cc:255,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:256,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:256,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/bpe_model.cc:263,1
    - Dst: MaybeAddNewSymbolPair
      Src: /src/sentencepiece/src/bpe_model.cc:266,1
    - Dst: MaybeAddNewSymbolPair
      Src: /src/sentencepiece/src/bpe_model.cc:267,1
    - Dst: PieceToIdNoReserved
      Src: /src/sentencepiece/src/bpe_model.cc:276,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:280,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/bpe_model.cc:283,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:284,1
    - Dst: absl::flat_hash_map::find
      Src: /src/sentencepiece/src/bpe_model.cc:287,1
    - Dst: absl::flat_hash_map::end
      Src: /src/sentencepiece/src/bpe_model.cc:288,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:289,1
    - Dst: self
      Src: /src/sentencepiece/src/bpe_model.cc:293,1
    - Dst: self
      Src: /src/sentencepiece/src/bpe_model.cc:294,1
    - Dst: EncodeResult::reserve
      Src: /src/sentencepiece/src/bpe_model.cc:298,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:298,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/bpe_model.cc:300,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:300,1
    - Dst: resegment
      Src: /src/sentencepiece/src/bpe_model.cc:301,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 87
    argCount: 2
    argNames:
    - normalized
    - alpha
    argTypes:
    - absl::string_view
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 306
    functionName: sentencepiece::bpe::Model::SampleEncode
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 4
    functionsReached:
    - absl::Bernoulli
    - absl::string_view::empty
    - piece::size
    - std::vector::size
    - absl::string_view::remove_prefix
    - IsReservedId
    - Agenda::push
    - piece::empty
    - GetScoreInlined
    - Agenda::empty
    - status
    - std::vector::empty
    - absl::string_view
    - Symbol*::piece::data
    - PrefixMatch
    - Agenda::pop
    - MaybeAddNewSymbolPair
    - std::vector::emplace_back
    - absl::flat_hash_map::find
    - absl::flat_hash_map::end
    - std::vector::reserve
    - emplace_back
    - absl::string_view::size
    - absl::string_view::data
    - std::make_pair
    - Agenda::top
    - resegment
    - static_cast<int>
    - Symbol*::piece::size
    - sentencepiece::random::GetRandomGenerator
    - self
    - EncodeResult::reserve
    - PieceToIdNoReserved
    - piece::data
    - IsUnusedInlined
    linkageType: ''
    returnType: std::vector<std::pair<absl::string_view, int>>
    signature: "std::vector<std::pair<absl::string_view, int>> Model::SampleEncode(\n
      \   absl::string_view normalized, float alpha) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ' h1'
    - ' h2'
    argTypes:
    - SymbolPair
    - SymbolPair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 91
    functionName: "operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 2
    argNames:
    - ' h1'
    - ' h2'
    argTypes:
    - SymbolPair
    - SymbolPair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 91
    functionName: "operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ABSL_ATTRIBUTE_ALWAYS_INLINE
    signature: "ABSL_ATTRIBUTE_ALWAYS_INLINE operator()(const SymbolPair& h1,\n                                                      const
      SymbolPair& h2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitializePieces
      Src: /src/sentencepiece/src/bpe_model.cc:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' model_proto'
    argTypes:
    - ModelProto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 109
    functionName: sentencepiece::bpe::Model::Model
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached:
    - InitializePieces
    linkageType: ''
    returnType: void
    signature: void Model::Model(const ModelProto& model_proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Model::~Model()
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Model::~Model()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: status
      Src: /src/sentencepiece/src/bpe_model.cc:115,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/bpe_model.cc:115,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/bpe_model.cc:120,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/bpe_model.cc:120,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/bpe_model.cc:126,1
    - Dst: PrefixMatch
      Src: /src/sentencepiece/src/bpe_model.cc:128,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/bpe_model.cc:129,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/bpe_model.cc:129,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/bpe_model.cc:131,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/bpe_model.cc:132,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:134,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/bpe_model.cc:137,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/bpe_model.cc:142,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:142,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:151,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:156,1
    - Dst: Symbol*::piece::data
      Src: /src/sentencepiece/src/bpe_model.cc:160,1
    - Dst: Symbol*::piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:161,1
    - Dst: Symbol*::piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:161,1
    - Dst: PieceToIdNoReserved
      Src: /src/sentencepiece/src/bpe_model.cc:166,1
    - Dst: IsReservedId
      Src: /src/sentencepiece/src/bpe_model.cc:171,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:172,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/bpe_model.cc:175,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/bpe_model.cc:176,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/bpe_model.cc:179,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/bpe_model.cc:181,1
    - Dst: piece::data
      Src: /src/sentencepiece/src/bpe_model.cc:199,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:200,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:200,1
    - Dst: PieceToIdNoReserved
      Src: /src/sentencepiece/src/bpe_model.cc:205,1
    - Dst: IsReservedId
      Src: /src/sentencepiece/src/bpe_model.cc:208,1
    - Dst: GetScoreInlined
      Src: /src/sentencepiece/src/bpe_model.cc:214,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/bpe_model.cc:215,1
    - Dst: Agenda::push
      Src: /src/sentencepiece/src/bpe_model.cc:216,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/bpe_model.cc:219,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/bpe_model.cc:221,1
    - Dst: sentencepiece::random::GetRandomGenerator
      Src: /src/sentencepiece/src/bpe_model.cc:226,1
    - Dst: Agenda::empty
      Src: /src/sentencepiece/src/bpe_model.cc:229,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/bpe_model.cc:231,1
    - Dst: piece::empty
      Src: /src/sentencepiece/src/bpe_model.cc:232,1
    - Dst: piece::empty
      Src: /src/sentencepiece/src/bpe_model.cc:233,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:234,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:235,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/bpe_model.cc:237,1
    - Dst: Agenda::top
      Src: /src/sentencepiece/src/bpe_model.cc:241,1
    - Dst: Agenda::pop
      Src: /src/sentencepiece/src/bpe_model.cc:242,1
    - Dst: absl::Bernoulli
      Src: /src/sentencepiece/src/bpe_model.cc:248,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/bpe_model.cc:254,1
    - Dst: piece::data
      Src: /src/sentencepiece/src/bpe_model.cc:255,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:256,1
    - Dst: piece::size
      Src: /src/sentencepiece/src/bpe_model.cc:256,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/bpe_model.cc:263,1
    - Dst: MaybeAddNewSymbolPair
      Src: /src/sentencepiece/src/bpe_model.cc:266,1
    - Dst: MaybeAddNewSymbolPair
      Src: /src/sentencepiece/src/bpe_model.cc:267,1
    - Dst: PieceToIdNoReserved
      Src: /src/sentencepiece/src/bpe_model.cc:276,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:280,1
    - Dst: IsUnusedInlined
      Src: /src/sentencepiece/src/bpe_model.cc:283,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:284,1
    - Dst: absl::flat_hash_map::find
      Src: /src/sentencepiece/src/bpe_model.cc:287,1
    - Dst: absl::flat_hash_map::end
      Src: /src/sentencepiece/src/bpe_model.cc:288,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model.cc:289,1
    - Dst: self
      Src: /src/sentencepiece/src/bpe_model.cc:293,1
    - Dst: self
      Src: /src/sentencepiece/src/bpe_model.cc:294,1
    - Dst: EncodeResult::reserve
      Src: /src/sentencepiece/src/bpe_model.cc:298,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:298,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/bpe_model.cc:300,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/bpe_model.cc:300,1
    - Dst: resegment
      Src: /src/sentencepiece/src/bpe_model.cc:301,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 87
    argCount: 2
    argNames:
    - normalized
    - alpha
    argTypes:
    - absl::string_view
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 306
    functionName: sentencepiece::bpe::Model::SampleEncode
    functionSourceFile: /src/sentencepiece/src/bpe_model.cc
    functionUses: 4
    functionsReached:
    - absl::Bernoulli
    - absl::string_view::empty
    - piece::size
    - std::vector::size
    - absl::string_view::remove_prefix
    - IsReservedId
    - Agenda::push
    - piece::empty
    - GetScoreInlined
    - Agenda::empty
    - status
    - std::vector::empty
    - absl::string_view
    - Symbol*::piece::data
    - PrefixMatch
    - Agenda::pop
    - MaybeAddNewSymbolPair
    - std::vector::emplace_back
    - absl::flat_hash_map::find
    - absl::flat_hash_map::end
    - std::vector::reserve
    - emplace_back
    - absl::string_view::size
    - absl::string_view::data
    - std::make_pair
    - Agenda::top
    - resegment
    - static_cast<int>
    - Symbol*::piece::size
    - sentencepiece::random::GetRandomGenerator
    - self
    - EncodeResult::reserve
    - PieceToIdNoReserved
    - piece::data
    - IsUnusedInlined
    linkageType: ''
    returnType: std::vector<std::pair<absl::string_view, int>>
    signature: "std::vector<std::pair<absl::string_view, int>> Model::SampleEncode(\n
      \   absl::string_view normalized, float alpha) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/builder.cc:71,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/builder.cc:72,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/builder.cc:72,1
    - Dst: icu::UnicodeString::fromUTF8
      Src: /src/sentencepiece/src/builder.cc:74,1
    - Dst: std::string::c_str
      Src: /src/sentencepiece/src/builder.cc:74,1
    - Dst: icu::Normalizer::normalize
      Src: /src/sentencepiece/src/builder.cc:78,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/builder.cc:79,1
    - Dst: U_SUCCESS
      Src: /src/sentencepiece/src/builder.cc:79,1
    - Dst: std::string::reserve
      Src: /src/sentencepiece/src/builder.cc:81,1
    - Dst: icu::UnicodeString::length
      Src: /src/sentencepiece/src/builder.cc:81,1
    - Dst: icu::UnicodeString::toUTF8String
      Src: /src/sentencepiece/src/builder.cc:82,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/builder.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mode
    - ' input'
    argTypes:
    - UNormalizationMode
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: sentencepiece::normalizer::UnicodeNormalize
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - icu::UnicodeString::fromUTF8
    - icu::Normalizer::normalize
    - CHECK
    - std::string::reserve
    - std::string::empty
    - U_SUCCESS
    - sentencepiece::string_util::UnicodeTextToUTF8
    - icu::UnicodeString::length
    - icu::UnicodeString::toUTF8String
    - std::string::c_str
    linkageType: ''
    returnType: Builder::Chars
    signature: "Builder::Chars UnicodeNormalize(UNormalizationMode mode,\n                                const
      Builder::Chars& input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: sentencepiece::normalizer::ToNFKD
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFKD(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: sentencepiece::normalizer::ToNFKC
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFKC(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: sentencepiece::normalizer::ToNFC
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFC(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: sentencepiece::normalizer::ToNFD
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFD(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/sentencepiece/src/builder.cc:109,1
    - Dst: empty
      Src: /src/sentencepiece/src/builder.cc:109,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/builder.cc:111,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:112,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:114,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/builder.cc:115,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/builder.cc:119,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/builder.cc:120,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:123,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/builder.cc:125,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:125,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' nfkd'
    - "\n        norm2orig"
    argTypes:
    - Builder::Chars
    - absl::flat_hash_map<char32_t, absl::flat_hash_set<char32_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: sentencepiece::normalizer::ExpandUnnormalized
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - CHECK_EQ
    - size
    - CHECK
    - std::vector::emplace_back
    - std::vector::push_back
    - std::move
    - empty
    - sentencepiece::port::FindOrDie
    - std::vector::back
    linkageType: ''
    returnType: std::vector<Builder::Chars>
    signature: "std::vector<Builder::Chars> ExpandUnnormalized(\n    const Builder::Chars&
      nfkd,\n    const absl::flat_hash_map<char32_t, absl::flat_hash_set<char32_t>>&\n
      \       norm2orig)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_GE
      Src: /src/sentencepiece/src/builder.cc:134,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:137,1
    - Dst: end
      Src: /src/sentencepiece/src/builder.cc:138,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/builder.cc:139,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:139,1
    - Dst: begin
      Src: /src/sentencepiece/src/builder.cc:141,1
    - Dst: begin
      Src: /src/sentencepiece/src/builder.cc:141,1
    - Dst: Builder::Chars::empty
      Src: /src/sentencepiece/src/builder.cc:142,1
    - Dst: find
      Src: /src/sentencepiece/src/builder.cc:143,1
    - Dst: end
      Src: /src/sentencepiece/src/builder.cc:144,1
    - Dst: Builder::Chars::pop_back
      Src: /src/sentencepiece/src/builder.cc:147,1
    - Dst: end
      Src: /src/sentencepiece/src/builder.cc:151,1
    - Dst: Builder::Chars::push_back
      Src: /src/sentencepiece/src/builder.cc:152,1
    - Dst: std::copy
      Src: /src/sentencepiece/src/builder.cc:155,1
    - Dst: auto::second::begin
      Src: /src/sentencepiece/src/builder.cc:155,1
    - Dst: auto::second::end
      Src: /src/sentencepiece/src/builder.cc:155,1
    - Dst: std::back_inserter
      Src: /src/sentencepiece/src/builder.cc:156,1
    - Dst: auto::first::size
      Src: /src/sentencepiece/src/builder.cc:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - ' chars_map'
    - ' src'
    - max_len
    argTypes:
    - Builder::CharsMap
    - Builder::Chars
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 162
    functionName: sentencepiece::normalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - Builder::Chars::push_back
    - size
    - begin
    - auto::second::begin
    - auto::second::end
    - auto::first::size
    - Builder::Chars::pop_back
    - CHECK_GE
    - std::min<size_t>
    - end
    - find
    - std::copy
    - std::back_inserter
    - Builder::Chars::empty
    linkageType: ''
    returnType: Builder::Chars
    signature: "Builder::Chars Normalize(const Builder::CharsMap& chars_map,\n                         const
      Builder::Chars& src, int max_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/builder.cc:166,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/builder.cc:166,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/builder.cc:166,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/builder.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - blob_data
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: sentencepiece::normalizer::IsValidNormalizerData
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - Normalizer::status
    - NormalizerSpec::set_precompiled_charsmap
    - absl::string_view::size
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status IsValidNormalizerData(absl::string_view blob_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/builder.cc:71,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/builder.cc:72,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/builder.cc:72,1
    - Dst: icu::UnicodeString::fromUTF8
      Src: /src/sentencepiece/src/builder.cc:74,1
    - Dst: std::string::c_str
      Src: /src/sentencepiece/src/builder.cc:74,1
    - Dst: icu::Normalizer::normalize
      Src: /src/sentencepiece/src/builder.cc:78,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/builder.cc:79,1
    - Dst: U_SUCCESS
      Src: /src/sentencepiece/src/builder.cc:79,1
    - Dst: std::string::reserve
      Src: /src/sentencepiece/src/builder.cc:81,1
    - Dst: icu::UnicodeString::length
      Src: /src/sentencepiece/src/builder.cc:81,1
    - Dst: icu::UnicodeString::toUTF8String
      Src: /src/sentencepiece/src/builder.cc:82,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/builder.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mode
    - ' input'
    argTypes:
    - UNormalizationMode
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: sentencepiece::normalizer::UnicodeNormalize
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 4
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - icu::UnicodeString::fromUTF8
    - icu::Normalizer::normalize
    - CHECK
    - std::string::reserve
    - std::string::empty
    - U_SUCCESS
    - sentencepiece::string_util::UnicodeTextToUTF8
    - icu::UnicodeString::length
    - icu::UnicodeString::toUTF8String
    - std::string::c_str
    linkageType: ''
    returnType: Builder::Chars
    signature: "Builder::Chars UnicodeNormalize(UNormalizationMode mode,\n                                const
      Builder::Chars& input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: sentencepiece::normalizer::ToNFKD
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFKD(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: sentencepiece::normalizer::ToNFKC
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFKC(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: sentencepiece::normalizer::ToNFC
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFC(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: sentencepiece::normalizer::ToNFD
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFD(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/sentencepiece/src/builder.cc:109,1
    - Dst: empty
      Src: /src/sentencepiece/src/builder.cc:109,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/builder.cc:111,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:112,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:114,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/builder.cc:115,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/builder.cc:119,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/builder.cc:120,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:123,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/builder.cc:125,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:125,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' nfkd'
    - "\n        norm2orig"
    argTypes:
    - Builder::Chars
    - absl::flat_hash_map<char32_t, absl::flat_hash_set<char32_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: sentencepiece::normalizer::ExpandUnnormalized
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - CHECK_EQ
    - size
    - CHECK
    - std::vector::emplace_back
    - std::vector::push_back
    - std::move
    - empty
    - sentencepiece::port::FindOrDie
    - std::vector::back
    linkageType: ''
    returnType: std::vector<Builder::Chars>
    signature: "std::vector<Builder::Chars> ExpandUnnormalized(\n    const Builder::Chars&
      nfkd,\n    const absl::flat_hash_map<char32_t, absl::flat_hash_set<char32_t>>&\n
      \       norm2orig)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_GE
      Src: /src/sentencepiece/src/builder.cc:134,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:137,1
    - Dst: end
      Src: /src/sentencepiece/src/builder.cc:138,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/builder.cc:139,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:139,1
    - Dst: begin
      Src: /src/sentencepiece/src/builder.cc:141,1
    - Dst: begin
      Src: /src/sentencepiece/src/builder.cc:141,1
    - Dst: Builder::Chars::empty
      Src: /src/sentencepiece/src/builder.cc:142,1
    - Dst: find
      Src: /src/sentencepiece/src/builder.cc:143,1
    - Dst: end
      Src: /src/sentencepiece/src/builder.cc:144,1
    - Dst: Builder::Chars::pop_back
      Src: /src/sentencepiece/src/builder.cc:147,1
    - Dst: end
      Src: /src/sentencepiece/src/builder.cc:151,1
    - Dst: Builder::Chars::push_back
      Src: /src/sentencepiece/src/builder.cc:152,1
    - Dst: std::copy
      Src: /src/sentencepiece/src/builder.cc:155,1
    - Dst: auto::second::begin
      Src: /src/sentencepiece/src/builder.cc:155,1
    - Dst: auto::second::end
      Src: /src/sentencepiece/src/builder.cc:155,1
    - Dst: std::back_inserter
      Src: /src/sentencepiece/src/builder.cc:156,1
    - Dst: auto::first::size
      Src: /src/sentencepiece/src/builder.cc:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - ' chars_map'
    - ' src'
    - max_len
    argTypes:
    - Builder::CharsMap
    - Builder::Chars
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 162
    functionName: sentencepiece::normalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - Builder::Chars::push_back
    - size
    - begin
    - auto::second::begin
    - auto::second::end
    - auto::first::size
    - Builder::Chars::pop_back
    - CHECK_GE
    - std::min<size_t>
    - end
    - find
    - std::copy
    - std::back_inserter
    - Builder::Chars::empty
    linkageType: ''
    returnType: Builder::Chars
    signature: "Builder::Chars Normalize(const Builder::CharsMap& chars_map,\n                         const
      Builder::Chars& src, int max_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/builder.cc:166,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/builder.cc:166,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/builder.cc:166,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/builder.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - blob_data
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: sentencepiece::normalizer::IsValidNormalizerData
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - Normalizer::status
    - NormalizerSpec::set_precompiled_charsmap
    - absl::string_view::size
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status IsValidNormalizerData(absl::string_view blob_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:176,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:177,1
    - Dst: empty
      Src: /src/sentencepiece/src/builder.cc:177,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:179,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:179,1
    - Dst: first::empty
      Src: /src/sentencepiece/src/builder.cc:182,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/builder.cc:183,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/builder.cc:186,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/builder.cc:198,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/builder.cc:199,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:200,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/builder.cc:200,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/builder.cc:208,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:209,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/builder.cc:209,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:210,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/builder.cc:210,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/builder.cc:211,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/builder.cc:211,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/builder.cc:214,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/builder.cc:214,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/builder.cc:214,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:215,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:216,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:217,1
    - Dst: first::c_str
      Src: /src/sentencepiece/src/builder.cc:218,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/builder.cc:223,1
    - Dst: Darts::DoubleArray::build
      Src: /src/sentencepiece/src/builder.cc:223,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:223,1
    - Dst: const_cast<char**>
      Src: /src/sentencepiece/src/builder.cc:223,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/builder.cc:223,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/builder.cc:224,1
    - Dst: Darts::DoubleArray::commonPrefixSearch
      Src: /src/sentencepiece/src/builder.cc:231,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/builder.cc:231,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:232,1
    - Dst: strlen
      Src: /src/sentencepiece/src/builder.cc:232,1
    - Dst: std::max
      Src: /src/sentencepiece/src/builder.cc:233,1
    - Dst: RET_CHECK_LT
      Src: /src/sentencepiece/src/builder.cc:235,1
    - Dst: static_cast<const char*>
      Src: /src/sentencepiece/src/builder.cc:240,1
    - Dst: Darts::DoubleArray::array
      Src: /src/sentencepiece/src/builder.cc:240,1
    - Dst: Darts::DoubleArray::size
      Src: /src/sentencepiece/src/builder.cc:241,1
    - Dst: Darts::DoubleArray::unit_size
      Src: /src/sentencepiece/src/builder.cc:241,1
    - Dst: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
      Src: /src/sentencepiece/src/builder.cc:242,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:243,1
    - Dst: IsValidNormalizerData
      Src: /src/sentencepiece/src/builder.cc:243,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:245,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/builder.cc:245,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:247,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - ' chars_map'
    - output
    argTypes:
    - CharsMap
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 248
    functionName: sentencepiece::normalizer::Builder::CompileCharsMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 17
    functionsReached:
    - absl::OkStatus
    - absl::InvalidArgumentError
    - std::string*::size
    - RET_CHECK_EQ
    - Darts::DoubleArray::size
    - Darts::DoubleArray::unit_size
    - std::string::size
    - std::vector::size
    - empty
    - sentencepiece::string_util::IsStructurallyValid
    - RET_CHECK_LT
    - first::c_str
    - sentencepiece::port::FindOrDie
    - size
    - first::empty
    - const_cast<char**>
    - LOG
    - std::sort
    - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    - Darts::DoubleArray::commonPrefixSearch
    - static_cast<const char*>
    - std::vector::emplace_back
    - strlen
    - RET_CHECK
    - Darts::DoubleArray::build
    - std::max
    - std::vector::begin
    - std::vector::data
    - Darts::DoubleArray::array
    - std::vector::end
    - std::string::empty
    - sentencepiece::string_util::UnicodeTextToUTF8
    - RETURN_IF_ERROR
    - IsValidNormalizerData
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Builder::CompileCharsMap(const CharsMap& chars_map,\n
      \                                     std::string* output)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:253,1
    - Dst: Builder::CharsMap*::clear
      Src: /src/sentencepiece/src/builder.cc:254,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:259,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/builder.cc:259,1
    - Dst: Darts::DoubleArray::copy_array
      Src: /src/sentencepiece/src/builder.cc:264,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sentencepiece/src/builder.cc:264,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/builder.cc:264,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/builder.cc:265,1
    - Dst: Darts::DoubleArray::validate
      Src: /src/sentencepiece/src/builder.cc:267,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/builder.cc:268,1
    - Dst: std::string::push_back
      Src: /src/sentencepiece/src/builder.cc:286,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/builder.cc:286,1
    - Dst: Darts::DoubleArray::traverse
      Src: /src/sentencepiece/src/builder.cc:291,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/builder.cc:292,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/builder.cc:292,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/builder.cc:298,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/builder.cc:298,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/builder.cc:301,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/builder.cc:304,1
    - Dst: Chars::reserve
      Src: /src/sentencepiece/src/builder.cc:305,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:305,1
    - Dst: Chars::push_back
      Src: /src/sentencepiece/src/builder.cc:307,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/builder.cc:309,1
    - Dst: Chars::reserve
      Src: /src/sentencepiece/src/builder.cc:310,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:310,1
    - Dst: Chars::push_back
      Src: /src/sentencepiece/src/builder.cc:312,1
    - Dst: traverse
      Src: /src/sentencepiece/src/builder.cc:318,1
    - Dst: std::string::pop_back
      Src: /src/sentencepiece/src/builder.cc:320,1
    - Dst: traverse
      Src: /src/sentencepiece/src/builder.cc:324,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/builder.cc:327,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/builder.cc:332,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:335,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - blob
    - chars_map
    argTypes:
    - absl::string_view
    - Builder::CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 336
    functionName: sentencepiece::normalizer::Builder::DecompileCharsMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 17
    functionsReached:
    - absl::OkStatus
    - auto::size
    - std::string::size
    - Chars::push_back
    - Chars::reserve
    - Darts::DoubleArray::copy_array
    - std::string::data
    - std::string::push_back
    - std::string::pop_back
    - traverse
    - Builder::CharsMap*::clear
    - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    - absl::string_view::size
    - RET_CHECK
    - absl::InternalError
    - reinterpret_cast<const char*>
    - absl::string_view::data
    - Darts::DoubleArray::validate
    - sentencepiece::string_util::UTF8ToUnicodeText
    - static_cast<char>
    - Darts::DoubleArray::traverse
    - static_cast<size_t>
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Builder::DecompileCharsMap(absl::string_view blob,\n
      \                                       Builder::CharsMap* chars_map)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:341,1
    - Dst: std::string*::clear
      Src: /src/sentencepiece/src/builder.cc:344,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:345,1
    - Dst: std::all_of
      Src: /src/sentencepiece/src/builder.cc:348,1
    - Dst: absl::string_view::begin
      Src: /src/sentencepiece/src/builder.cc:348,1
    - Dst: absl::string_view::end
      Src: /src/sentencepiece/src/builder.cc:348,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/builder.cc:351,1
    - Dst: std::string*::assign
      Src: /src/sentencepiece/src/builder.cc:361,1
    - Dst: IsValidNormalizerData
      Src: /src/sentencepiece/src/builder.cc:362,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/builder.cc:368,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder.cc:368,1
    - Dst: GetDataDir
      Src: /src/sentencepiece/src/builder.cc:368,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/builder.cc:369,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/builder.cc:370,1
    - Dst: auto::ReadAll
      Src: /src/sentencepiece/src/builder.cc:371,1
    - Dst: IsValidNormalizerData
      Src: /src/sentencepiece/src/builder.cc:372,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/builder.cc:377,1
    - Dst: GetDataDir
      Src: /src/sentencepiece/src/builder.cc:379,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - name
    - output
    argTypes:
    - absl::string_view
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 380
    functionName: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 4
    functionsReached:
    - absl::OkStatus
    - sentencepiece::util::JoinPath
    - IsValidNormalizerData
    - auto::ReadAll
    - auto::status
    - absl::StrCat
    - std::all_of
    - GetDataDir
    - absl::StatusBuilder
    - absl::string_view::end
    - std::string*::assign
    - RET_CHECK
    - sentencepiece::filesystem::NewReadableFile
    - absl::string_view::begin
    - std::string*::clear
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Builder::GetPrecompiledCharsMap(absl::string_view name,\n
      \                                            std::string* output)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/sentencepiece/src/builder.cc:399,1
    - Dst: composer
      Src: /src/sentencepiece/src/builder.cc:403,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:404,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:404,1
    - Dst: decomposer
      Src: /src/sentencepiece/src/builder.cc:407,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:408,1
    - Dst: insert
      Src: /src/sentencepiece/src/builder.cc:410,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/src/builder.cc:413,1
    - Dst: composer
      Src: /src/sentencepiece/src/builder.cc:418,1
    - Dst: sentencepiece::normalizer::ExpandUnnormalized
      Src: /src/sentencepiece/src/builder.cc:425,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:432,1
    - Dst: sentencepiece::normalizer::Builder::RemoveRedundantMap
      Src: /src/sentencepiece/src/builder.cc:432,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:433,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:435,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - chars_map
    - composer
    - decomposer
    argTypes:
    - Builder::CharsMap*
    - std::function<Builder::Chars(const Builder::Chars&)>
    - std::function<Builder::Chars(const Builder::Chars&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 436
    functionName: sentencepiece::normalizer::BuildMapInternal
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - std::set::insert
    - auto::size
    - sentencepiece::normalizer::ExpandUnnormalized
    - sentencepiece::normalizer::Builder::RemoveRedundantMap
    - decomposer
    - std::move
    - insert
    - U_IS_UNICODE_CHAR
    - RETURN_IF_ERROR
    - composer
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status BuildMapInternal(\n    Builder::CharsMap* chars_map,\n
      \   std::function<Builder::Chars(const Builder::Chars&)> composer,\n    std::function<Builder::Chars(const
      Builder::Chars&)> decomposer)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/sentencepiece/src/builder.cc:399,1
    - Dst: composer
      Src: /src/sentencepiece/src/builder.cc:403,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:404,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:404,1
    - Dst: decomposer
      Src: /src/sentencepiece/src/builder.cc:407,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:408,1
    - Dst: insert
      Src: /src/sentencepiece/src/builder.cc:410,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/src/builder.cc:413,1
    - Dst: composer
      Src: /src/sentencepiece/src/builder.cc:418,1
    - Dst: sentencepiece::normalizer::ExpandUnnormalized
      Src: /src/sentencepiece/src/builder.cc:425,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:432,1
    - Dst: sentencepiece::normalizer::Builder::RemoveRedundantMap
      Src: /src/sentencepiece/src/builder.cc:432,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:433,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:435,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - chars_map
    - composer
    - decomposer
    argTypes:
    - Builder::CharsMap*
    - std::function<Builder::Chars(const Builder::Chars&)>
    - std::function<Builder::Chars(const Builder::Chars&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 436
    functionName: sentencepiece::normalizer::BuildMapInternal
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - std::set::insert
    - auto::size
    - sentencepiece::normalizer::ExpandUnnormalized
    - sentencepiece::normalizer::Builder::RemoveRedundantMap
    - decomposer
    - std::move
    - insert
    - U_IS_UNICODE_CHAR
    - RETURN_IF_ERROR
    - composer
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status BuildMapInternal(\n    Builder::CharsMap* chars_map,\n
      \   std::function<Builder::Chars(const Builder::Chars&)> composer,\n    std::function<Builder::Chars(const
      Builder::Chars&)> decomposer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:443,1
    - Dst: BuildMapInternal
      Src: /src/sentencepiece/src/builder.cc:444,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:446,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 450
    functionName: sentencepiece::normalizer::Builder::BuildNFKCMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 8
    functionsReached:
    - absl::OkStatus
    - BuildMapInternal
    - LOG
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFKCMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:455,1
    - Dst: BuildMapInternal
      Src: /src/sentencepiece/src/builder.cc:456,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:458,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 461
    functionName: sentencepiece::normalizer::Builder::BuildNFCMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - BuildMapInternal
    - LOG
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFCMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:465,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:468,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder.cc:468,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:469,1
    - Dst: sentencepiece::normalizer::Builder::MergeNmtMap
      Src: /src/sentencepiece/src/builder.cc:469,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:470,1
    - Dst: sentencepiece::normalizer::Builder::RemoveRedundantMap
      Src: /src/sentencepiece/src/builder.cc:470,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:472,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:474,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 478
    functionName: sentencepiece::normalizer::Builder::BuildNmtNFKCMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::RemoveRedundantMap
    - sentencepiece::normalizer::Builder::BuildNFKCMap
    - LOG
    - std::move
    - RETURN_IF_ERROR
    - sentencepiece::normalizer::Builder::MergeNmtMap
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNmtNFKCMap(CharsMap* chars_map)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/builder.cc:485,1
    - Dst: second::size
      Src: /src/sentencepiece/src/builder.cc:485,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:487,1
    - Dst: u_foldCase
      Src: /src/sentencepiece/src/builder.cc:487,1
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/sentencepiece/src/builder.cc:494,1
    - Dst: Builder::CharsMap*::find
      Src: /src/sentencepiece/src/builder.cc:497,1
    - Dst: Builder::CharsMap*::end
      Src: /src/sentencepiece/src/builder.cc:497,1
    - Dst: u_foldCase
      Src: /src/sentencepiece/src/builder.cc:498,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:502,1
    - Dst: sentencepiece::normalizer::Builder::RemoveRedundantMap
      Src: /src/sentencepiece/src/builder.cc:502,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:505,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - Builder::CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 506
    functionName: sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - Builder::CharsMap*::find
    - u_foldCase
    - second::size
    - sentencepiece::normalizer::Builder::RemoveRedundantMap
    - std::vector::push_back
    - std::vector::reserve
    - Builder::CharsMap*::end
    - U_IS_UNICODE_CHAR
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::MergeUnicodeCaseFoldMap(Builder::CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/sentencepiece/src/builder.cc:563,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - Builder::CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 566
    functionName: sentencepiece::normalizer::Builder::MergeNmtMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 1
    functionsReached:
    - erase
    - absl::OkStatus
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::MergeNmtMap(Builder::CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:572,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder.cc:572,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:573,1
    - Dst: sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
      Src: /src/sentencepiece/src/builder.cc:573,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:574,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:576,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 580
    functionName: sentencepiece::normalizer::Builder::BuildNFKC_CFMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
    - sentencepiece::normalizer::Builder::BuildNFKCMap
    - LOG
    - std::move
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFKC_CFMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:586,1
    - Dst: sentencepiece::normalizer::Builder::BuildNmtNFKCMap
      Src: /src/sentencepiece/src/builder.cc:586,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:587,1
    - Dst: sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
      Src: /src/sentencepiece/src/builder.cc:587,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:588,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:590,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 594
    functionName: sentencepiece::normalizer::Builder::BuildNmtNFKC_CFMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
    - LOG
    - std::move
    - sentencepiece::normalizer::Builder::BuildNmtNFKCMap
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNmtNFKC_CFMap(CharsMap* chars_map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/sentencepiece/src/builder.cc:601,1
    - Dst: ToNFKD
      Src: /src/sentencepiece/src/builder.cc:604,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:605,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:605,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:610,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:612,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 613
    functionName: sentencepiece::normalizer::Builder::BuildNFKDMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - auto::size
    - LOG
    - U_IS_UNICODE_CHAR
    - ToNFKD
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFKDMap(CharsMap* chars_map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/sentencepiece/src/builder.cc:620,1
    - Dst: ToNFD
      Src: /src/sentencepiece/src/builder.cc:623,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:624,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:624,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:630,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:632,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 633
    functionName: sentencepiece::normalizer::Builder::BuildNFDMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - ToNFD
    - auto::size
    - LOG
    - U_IS_UNICODE_CHAR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFDMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:639,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKDMap
      Src: /src/sentencepiece/src/builder.cc:639,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:640,1
    - Dst: sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
      Src: /src/sentencepiece/src/builder.cc:640,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:641,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:643,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 646
    functionName: sentencepiece::normalizer::Builder::BuildNFKD_CFMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::BuildNFKDMap
    - sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
    - LOG
    - std::move
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFKD_CFMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:652,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKDMap
      Src: /src/sentencepiece/src/builder.cc:652,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:653,1
    - Dst: sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
      Src: /src/sentencepiece/src/builder.cc:653,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:654,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:656,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 659
    functionName: sentencepiece::normalizer::Builder::BuildNFC_CFMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::BuildNFKDMap
    - sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
    - LOG
    - std::move
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFC_CFMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:665,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFDMap
      Src: /src/sentencepiece/src/builder.cc:665,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:666,1
    - Dst: sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
      Src: /src/sentencepiece/src/builder.cc:666,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:667,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:669,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 672
    functionName: sentencepiece::normalizer::Builder::BuildNFD_CFMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::Builder::BuildNFDMap
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
    - LOG
    - std::move
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFD_CFMap(CharsMap* chars_map)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:677,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/builder.cc:677,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:678,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/builder.cc:680,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:682,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/builder.cc:682,1
    - Dst: CharsMap*::clear
      Src: /src/sentencepiece/src/builder.cc:685,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/builder.cc:686,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/builder.cc:688,1
    - Dst: absl::AllowEmpty
      Src: /src/sentencepiece/src/builder.cc:688,1
    - Dst: CHECK_GE
      Src: /src/sentencepiece/src/builder.cc:689,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:689,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:690,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/builder.cc:691,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/builder.cc:695,1
    - Dst: empty
      Src: /src/sentencepiece/src/builder.cc:696,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/builder.cc:699,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:700,1
    - Dst: string_util::HexToInt<char32_t>
      Src: /src/sentencepiece/src/builder.cc:700,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/builder.cc:702,1
    - Dst: empty
      Src: /src/sentencepiece/src/builder.cc:703,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/builder.cc:706,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:707,1
    - Dst: string_util::HexToInt<char32_t>
      Src: /src/sentencepiece/src/builder.cc:707,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:709,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/builder.cc:709,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:713,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - filename
    - chars_map
    argTypes:
    - absl::string_view
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 714
    functionName: sentencepiece::normalizer::Builder::LoadCharsMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 8
    functionsReached:
    - absl::OkStatus
    - std::vector::size
    - absl::ConsumePrefix
    - empty
    - string_util::HexToInt<char32_t>
    - std::vector::push_back
    - std::vector::empty
    - LOG
    - absl::StrSplit
    - absl::AllowEmpty
    - std::vector::emplace_back
    - RET_CHECK
    - absl::string_view::data
    - auto::status
    - CHECK_GE
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - RETURN_IF_ERROR
    - CharsMap*::clear
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Builder::LoadCharsMap(absl::string_view filename,\n                                   CharsMap*
      chars_map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/builder.cc:719,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:720,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/builder.cc:720,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:728,1
    - Dst: sentencepiece::string_util::IntToHex
      Src: /src/sentencepiece/src/builder.cc:728,1
    - Dst: string_util::UnicodeText::push_back
      Src: /src/sentencepiece/src/builder.cc:729,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:732,1
    - Dst: sentencepiece::string_util::IntToHex
      Src: /src/sentencepiece/src/builder.cc:732,1
    - Dst: string_util::UnicodeText::push_back
      Src: /src/sentencepiece/src/builder.cc:733,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/builder.cc:735,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/builder.cc:736,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/builder.cc:737,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/builder.cc:738,1
    - Dst: absl::StrReplaceAll
      Src: /src/sentencepiece/src/builder.cc:739,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder.cc:742,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - filename
    - ' chars_map'
    argTypes:
    - absl::string_view
    - Builder::CharsMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 746
    functionName: sentencepiece::normalizer::Builder::SaveCharsMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 10
    functionsReached:
    - absl::OkStatus
    - absl::StrReplaceAll
    - string_util::UnicodeText::push_back
    - sentencepiece::string_util::IntToHex
    - auto::status
    - absl::StrJoin
    - std::vector::push_back
    - sentencepiece::string_util::UnicodeTextToUTF8
    - auto::WriteLine
    - RETURN_IF_ERROR
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Builder::SaveCharsMap(absl::string_view filename,\n                                   const
      Builder::CharsMap& chars_map)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:750,1
    - Dst: std::max
      Src: /src/sentencepiece/src/builder.cc:755,1
    - Dst: first::size
      Src: /src/sentencepiece/src/builder.cc:755,1
    - Dst: first::size
      Src: /src/sentencepiece/src/builder.cc:756,1
    - Dst: CharsMap::insert
      Src: /src/sentencepiece/src/builder.cc:757,1
    - Dst: RET_CHECK_GT
      Src: /src/sentencepiece/src/builder.cc:760,1
    - Dst: first::size
      Src: /src/sentencepiece/src/builder.cc:766,1
    - Dst: Normalize
      Src: /src/sentencepiece/src/builder.cc:767,1
    - Dst: CharsMap::insert
      Src: /src/sentencepiece/src/builder.cc:768,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/builder.cc:775,1
    - Dst: Normalize
      Src: /src/sentencepiece/src/builder.cc:775,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:778,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:780,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 781
    functionName: sentencepiece::normalizer::Builder::RemoveRedundantMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 8
    functionsReached:
    - first::size
    - absl::OkStatus
    - RET_CHECK_GT
    - RET_CHECK_EQ
    - std::move
    - RET_CHECK
    - Normalize
    - std::max
    - CharsMap::insert
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::RemoveRedundantMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/builder.cc:71,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/builder.cc:72,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/builder.cc:72,1
    - Dst: icu::UnicodeString::fromUTF8
      Src: /src/sentencepiece/src/builder.cc:74,1
    - Dst: std::string::c_str
      Src: /src/sentencepiece/src/builder.cc:74,1
    - Dst: icu::Normalizer::normalize
      Src: /src/sentencepiece/src/builder.cc:78,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/builder.cc:79,1
    - Dst: U_SUCCESS
      Src: /src/sentencepiece/src/builder.cc:79,1
    - Dst: std::string::reserve
      Src: /src/sentencepiece/src/builder.cc:81,1
    - Dst: icu::UnicodeString::length
      Src: /src/sentencepiece/src/builder.cc:81,1
    - Dst: icu::UnicodeString::toUTF8String
      Src: /src/sentencepiece/src/builder.cc:82,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/builder.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mode
    - ' input'
    argTypes:
    - UNormalizationMode
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: sentencepiece::normalizer::UnicodeNormalize
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 8
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - icu::UnicodeString::fromUTF8
    - icu::Normalizer::normalize
    - CHECK
    - std::string::reserve
    - std::string::empty
    - U_SUCCESS
    - sentencepiece::string_util::UnicodeTextToUTF8
    - icu::UnicodeString::length
    - icu::UnicodeString::toUTF8String
    - std::string::c_str
    linkageType: ''
    returnType: Builder::Chars
    signature: "Builder::Chars UnicodeNormalize(UNormalizationMode mode,\n                                const
      Builder::Chars& input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: sentencepiece::normalizer::ToNFKD
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFKD(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: sentencepiece::normalizer::ToNFKC
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFKC(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: sentencepiece::normalizer::ToNFC
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFC(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: sentencepiece::normalizer::ToNFD
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFD(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/sentencepiece/src/builder.cc:109,1
    - Dst: empty
      Src: /src/sentencepiece/src/builder.cc:109,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/builder.cc:111,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:112,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:114,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/builder.cc:115,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/builder.cc:119,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/builder.cc:120,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:123,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/builder.cc:125,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:125,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' nfkd'
    - "\n        norm2orig"
    argTypes:
    - Builder::Chars
    - absl::flat_hash_map<char32_t, absl::flat_hash_set<char32_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: sentencepiece::normalizer::ExpandUnnormalized
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 2
    functionsReached:
    - CHECK_EQ
    - size
    - CHECK
    - std::vector::emplace_back
    - std::vector::push_back
    - std::move
    - empty
    - sentencepiece::port::FindOrDie
    - std::vector::back
    linkageType: ''
    returnType: std::vector<Builder::Chars>
    signature: "std::vector<Builder::Chars> ExpandUnnormalized(\n    const Builder::Chars&
      nfkd,\n    const absl::flat_hash_map<char32_t, absl::flat_hash_set<char32_t>>&\n
      \       norm2orig)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_GE
      Src: /src/sentencepiece/src/builder.cc:134,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:137,1
    - Dst: end
      Src: /src/sentencepiece/src/builder.cc:138,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/builder.cc:139,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:139,1
    - Dst: begin
      Src: /src/sentencepiece/src/builder.cc:141,1
    - Dst: begin
      Src: /src/sentencepiece/src/builder.cc:141,1
    - Dst: Builder::Chars::empty
      Src: /src/sentencepiece/src/builder.cc:142,1
    - Dst: find
      Src: /src/sentencepiece/src/builder.cc:143,1
    - Dst: end
      Src: /src/sentencepiece/src/builder.cc:144,1
    - Dst: Builder::Chars::pop_back
      Src: /src/sentencepiece/src/builder.cc:147,1
    - Dst: end
      Src: /src/sentencepiece/src/builder.cc:151,1
    - Dst: Builder::Chars::push_back
      Src: /src/sentencepiece/src/builder.cc:152,1
    - Dst: std::copy
      Src: /src/sentencepiece/src/builder.cc:155,1
    - Dst: auto::second::begin
      Src: /src/sentencepiece/src/builder.cc:155,1
    - Dst: auto::second::end
      Src: /src/sentencepiece/src/builder.cc:155,1
    - Dst: std::back_inserter
      Src: /src/sentencepiece/src/builder.cc:156,1
    - Dst: auto::first::size
      Src: /src/sentencepiece/src/builder.cc:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - ' chars_map'
    - ' src'
    - max_len
    argTypes:
    - Builder::CharsMap
    - Builder::Chars
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 162
    functionName: sentencepiece::normalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - Builder::Chars::push_back
    - size
    - begin
    - auto::second::begin
    - auto::second::end
    - auto::first::size
    - Builder::Chars::pop_back
    - CHECK_GE
    - std::min<size_t>
    - end
    - find
    - std::copy
    - std::back_inserter
    - Builder::Chars::empty
    linkageType: ''
    returnType: Builder::Chars
    signature: "Builder::Chars Normalize(const Builder::CharsMap& chars_map,\n                         const
      Builder::Chars& src, int max_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/builder.cc:166,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/builder.cc:166,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/builder.cc:166,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/builder.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - blob_data
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: sentencepiece::normalizer::IsValidNormalizerData
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - Normalizer::status
    - NormalizerSpec::set_precompiled_charsmap
    - absl::string_view::size
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status IsValidNormalizerData(absl::string_view blob_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/builder.cc:71,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/builder.cc:72,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/builder.cc:72,1
    - Dst: icu::UnicodeString::fromUTF8
      Src: /src/sentencepiece/src/builder.cc:74,1
    - Dst: std::string::c_str
      Src: /src/sentencepiece/src/builder.cc:74,1
    - Dst: icu::Normalizer::normalize
      Src: /src/sentencepiece/src/builder.cc:78,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/builder.cc:79,1
    - Dst: U_SUCCESS
      Src: /src/sentencepiece/src/builder.cc:79,1
    - Dst: std::string::reserve
      Src: /src/sentencepiece/src/builder.cc:81,1
    - Dst: icu::UnicodeString::length
      Src: /src/sentencepiece/src/builder.cc:81,1
    - Dst: icu::UnicodeString::toUTF8String
      Src: /src/sentencepiece/src/builder.cc:82,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/builder.cc:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - mode
    - ' input'
    argTypes:
    - UNormalizationMode
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: sentencepiece::normalizer::UnicodeNormalize
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 12
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - icu::UnicodeString::fromUTF8
    - icu::Normalizer::normalize
    - CHECK
    - std::string::reserve
    - std::string::empty
    - U_SUCCESS
    - sentencepiece::string_util::UnicodeTextToUTF8
    - icu::UnicodeString::length
    - icu::UnicodeString::toUTF8String
    - std::string::c_str
    linkageType: ''
    returnType: Builder::Chars
    signature: "Builder::Chars UnicodeNormalize(UNormalizationMode mode,\n                                const
      Builder::Chars& input)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 3
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: sentencepiece::normalizer::ToNFKD
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFKD(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 3
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: sentencepiece::normalizer::ToNFKC
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFKC(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: sentencepiece::normalizer::ToNFC
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFC(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::UnicodeNormalize
      Src: /src/sentencepiece/src/builder.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - Builder::Chars
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 3
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: sentencepiece::normalizer::ToNFD
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::UnicodeNormalize
    linkageType: ''
    returnType: Builder::Chars
    signature: Builder::Chars ToNFD(const Builder::Chars& input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/sentencepiece/src/builder.cc:109,1
    - Dst: empty
      Src: /src/sentencepiece/src/builder.cc:109,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/builder.cc:111,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:112,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:114,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/builder.cc:115,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/builder.cc:119,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/src/builder.cc:120,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:123,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/builder.cc:125,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:125,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' nfkd'
    - "\n        norm2orig"
    argTypes:
    - Builder::Chars
    - absl::flat_hash_map<char32_t, absl::flat_hash_set<char32_t>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 127
    functionName: sentencepiece::normalizer::ExpandUnnormalized
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 2
    functionsReached:
    - CHECK_EQ
    - size
    - CHECK
    - std::vector::emplace_back
    - std::vector::push_back
    - std::move
    - empty
    - sentencepiece::port::FindOrDie
    - std::vector::back
    linkageType: ''
    returnType: std::vector<Builder::Chars>
    signature: "std::vector<Builder::Chars> ExpandUnnormalized(\n    const Builder::Chars&
      nfkd,\n    const absl::flat_hash_map<char32_t, absl::flat_hash_set<char32_t>>&\n
      \       norm2orig)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CHECK_GE
      Src: /src/sentencepiece/src/builder.cc:134,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:137,1
    - Dst: end
      Src: /src/sentencepiece/src/builder.cc:138,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/builder.cc:139,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:139,1
    - Dst: begin
      Src: /src/sentencepiece/src/builder.cc:141,1
    - Dst: begin
      Src: /src/sentencepiece/src/builder.cc:141,1
    - Dst: Builder::Chars::empty
      Src: /src/sentencepiece/src/builder.cc:142,1
    - Dst: find
      Src: /src/sentencepiece/src/builder.cc:143,1
    - Dst: end
      Src: /src/sentencepiece/src/builder.cc:144,1
    - Dst: Builder::Chars::pop_back
      Src: /src/sentencepiece/src/builder.cc:147,1
    - Dst: end
      Src: /src/sentencepiece/src/builder.cc:151,1
    - Dst: Builder::Chars::push_back
      Src: /src/sentencepiece/src/builder.cc:152,1
    - Dst: std::copy
      Src: /src/sentencepiece/src/builder.cc:155,1
    - Dst: auto::second::begin
      Src: /src/sentencepiece/src/builder.cc:155,1
    - Dst: auto::second::end
      Src: /src/sentencepiece/src/builder.cc:155,1
    - Dst: std::back_inserter
      Src: /src/sentencepiece/src/builder.cc:156,1
    - Dst: auto::first::size
      Src: /src/sentencepiece/src/builder.cc:157,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - ' chars_map'
    - ' src'
    - max_len
    argTypes:
    - Builder::CharsMap
    - Builder::Chars
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 162
    functionName: sentencepiece::normalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - Builder::Chars::push_back
    - size
    - begin
    - auto::second::begin
    - auto::second::end
    - auto::first::size
    - Builder::Chars::pop_back
    - CHECK_GE
    - std::min<size_t>
    - end
    - find
    - std::copy
    - std::back_inserter
    - Builder::Chars::empty
    linkageType: ''
    returnType: Builder::Chars
    signature: "Builder::Chars Normalize(const Builder::CharsMap& chars_map,\n                         const
      Builder::Chars& src, int max_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/builder.cc:166,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/builder.cc:166,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/builder.cc:166,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/builder.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - blob_data
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: sentencepiece::normalizer::IsValidNormalizerData
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::data
    - Normalizer::status
    - NormalizerSpec::set_precompiled_charsmap
    - absl::string_view::size
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status IsValidNormalizerData(absl::string_view blob_data)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:176,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:177,1
    - Dst: empty
      Src: /src/sentencepiece/src/builder.cc:177,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:179,1
    - Dst: size
      Src: /src/sentencepiece/src/builder.cc:179,1
    - Dst: first::empty
      Src: /src/sentencepiece/src/builder.cc:182,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/builder.cc:183,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/builder.cc:186,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/builder.cc:198,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/builder.cc:199,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:200,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/builder.cc:200,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/builder.cc:208,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:209,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/builder.cc:209,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:210,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/builder.cc:210,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/builder.cc:211,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/builder.cc:211,1
    - Dst: std::sort
      Src: /src/sentencepiece/src/builder.cc:214,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/builder.cc:214,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/builder.cc:214,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:215,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:216,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:217,1
    - Dst: first::c_str
      Src: /src/sentencepiece/src/builder.cc:218,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/builder.cc:223,1
    - Dst: Darts::DoubleArray::build
      Src: /src/sentencepiece/src/builder.cc:223,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:223,1
    - Dst: const_cast<char**>
      Src: /src/sentencepiece/src/builder.cc:223,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/builder.cc:223,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/builder.cc:224,1
    - Dst: Darts::DoubleArray::commonPrefixSearch
      Src: /src/sentencepiece/src/builder.cc:231,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/builder.cc:231,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:232,1
    - Dst: strlen
      Src: /src/sentencepiece/src/builder.cc:232,1
    - Dst: std::max
      Src: /src/sentencepiece/src/builder.cc:233,1
    - Dst: RET_CHECK_LT
      Src: /src/sentencepiece/src/builder.cc:235,1
    - Dst: static_cast<const char*>
      Src: /src/sentencepiece/src/builder.cc:240,1
    - Dst: Darts::DoubleArray::array
      Src: /src/sentencepiece/src/builder.cc:240,1
    - Dst: Darts::DoubleArray::size
      Src: /src/sentencepiece/src/builder.cc:241,1
    - Dst: Darts::DoubleArray::unit_size
      Src: /src/sentencepiece/src/builder.cc:241,1
    - Dst: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
      Src: /src/sentencepiece/src/builder.cc:242,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:243,1
    - Dst: IsValidNormalizerData
      Src: /src/sentencepiece/src/builder.cc:243,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:245,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/builder.cc:245,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:247,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 2
    argNames:
    - ' chars_map'
    - output
    argTypes:
    - CharsMap
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 248
    functionName: sentencepiece::normalizer::Builder::CompileCharsMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 17
    functionsReached:
    - absl::OkStatus
    - absl::InvalidArgumentError
    - std::string*::size
    - RET_CHECK_EQ
    - Darts::DoubleArray::size
    - Darts::DoubleArray::unit_size
    - std::string::size
    - std::vector::size
    - empty
    - sentencepiece::string_util::IsStructurallyValid
    - RET_CHECK_LT
    - first::c_str
    - sentencepiece::port::FindOrDie
    - size
    - first::empty
    - const_cast<char**>
    - LOG
    - std::sort
    - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    - Darts::DoubleArray::commonPrefixSearch
    - static_cast<const char*>
    - std::vector::emplace_back
    - strlen
    - RET_CHECK
    - Darts::DoubleArray::build
    - std::max
    - std::vector::begin
    - std::vector::data
    - Darts::DoubleArray::array
    - std::vector::end
    - std::string::empty
    - sentencepiece::string_util::UnicodeTextToUTF8
    - RETURN_IF_ERROR
    - IsValidNormalizerData
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Builder::CompileCharsMap(const CharsMap& chars_map,\n
      \                                     std::string* output)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:253,1
    - Dst: Builder::CharsMap*::clear
      Src: /src/sentencepiece/src/builder.cc:254,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:259,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/builder.cc:259,1
    - Dst: Darts::DoubleArray::copy_array
      Src: /src/sentencepiece/src/builder.cc:264,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sentencepiece/src/builder.cc:264,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/builder.cc:264,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/builder.cc:265,1
    - Dst: Darts::DoubleArray::validate
      Src: /src/sentencepiece/src/builder.cc:267,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/builder.cc:268,1
    - Dst: std::string::push_back
      Src: /src/sentencepiece/src/builder.cc:286,1
    - Dst: static_cast<char>
      Src: /src/sentencepiece/src/builder.cc:286,1
    - Dst: Darts::DoubleArray::traverse
      Src: /src/sentencepiece/src/builder.cc:291,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/builder.cc:292,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/builder.cc:292,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/builder.cc:298,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/builder.cc:298,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/builder.cc:301,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/builder.cc:304,1
    - Dst: Chars::reserve
      Src: /src/sentencepiece/src/builder.cc:305,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:305,1
    - Dst: Chars::push_back
      Src: /src/sentencepiece/src/builder.cc:307,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/builder.cc:309,1
    - Dst: Chars::reserve
      Src: /src/sentencepiece/src/builder.cc:310,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:310,1
    - Dst: Chars::push_back
      Src: /src/sentencepiece/src/builder.cc:312,1
    - Dst: traverse
      Src: /src/sentencepiece/src/builder.cc:318,1
    - Dst: std::string::pop_back
      Src: /src/sentencepiece/src/builder.cc:320,1
    - Dst: traverse
      Src: /src/sentencepiece/src/builder.cc:324,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/builder.cc:327,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/builder.cc:332,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:335,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - blob
    - chars_map
    argTypes:
    - absl::string_view
    - Builder::CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 336
    functionName: sentencepiece::normalizer::Builder::DecompileCharsMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 17
    functionsReached:
    - absl::OkStatus
    - auto::size
    - std::string::size
    - Chars::push_back
    - Chars::reserve
    - Darts::DoubleArray::copy_array
    - std::string::data
    - std::string::push_back
    - std::string::pop_back
    - traverse
    - Builder::CharsMap*::clear
    - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    - absl::string_view::size
    - RET_CHECK
    - absl::InternalError
    - reinterpret_cast<const char*>
    - absl::string_view::data
    - Darts::DoubleArray::validate
    - sentencepiece::string_util::UTF8ToUnicodeText
    - static_cast<char>
    - Darts::DoubleArray::traverse
    - static_cast<size_t>
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Builder::DecompileCharsMap(absl::string_view blob,\n
      \                                       Builder::CharsMap* chars_map)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:341,1
    - Dst: std::string*::clear
      Src: /src/sentencepiece/src/builder.cc:344,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:345,1
    - Dst: std::all_of
      Src: /src/sentencepiece/src/builder.cc:348,1
    - Dst: absl::string_view::begin
      Src: /src/sentencepiece/src/builder.cc:348,1
    - Dst: absl::string_view::end
      Src: /src/sentencepiece/src/builder.cc:348,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/builder.cc:351,1
    - Dst: std::string*::assign
      Src: /src/sentencepiece/src/builder.cc:361,1
    - Dst: IsValidNormalizerData
      Src: /src/sentencepiece/src/builder.cc:362,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/builder.cc:368,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/builder.cc:368,1
    - Dst: GetDataDir
      Src: /src/sentencepiece/src/builder.cc:368,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/builder.cc:369,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/builder.cc:370,1
    - Dst: auto::ReadAll
      Src: /src/sentencepiece/src/builder.cc:371,1
    - Dst: IsValidNormalizerData
      Src: /src/sentencepiece/src/builder.cc:372,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/builder.cc:377,1
    - Dst: GetDataDir
      Src: /src/sentencepiece/src/builder.cc:379,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - name
    - output
    argTypes:
    - absl::string_view
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 380
    functionName: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 4
    functionsReached:
    - absl::OkStatus
    - sentencepiece::util::JoinPath
    - IsValidNormalizerData
    - auto::ReadAll
    - auto::status
    - absl::StrCat
    - std::all_of
    - GetDataDir
    - absl::StatusBuilder
    - absl::string_view::end
    - std::string*::assign
    - RET_CHECK
    - sentencepiece::filesystem::NewReadableFile
    - absl::string_view::begin
    - std::string*::clear
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Builder::GetPrecompiledCharsMap(absl::string_view name,\n
      \                                            std::string* output)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/sentencepiece/src/builder.cc:399,1
    - Dst: composer
      Src: /src/sentencepiece/src/builder.cc:403,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:404,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:404,1
    - Dst: decomposer
      Src: /src/sentencepiece/src/builder.cc:407,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:408,1
    - Dst: insert
      Src: /src/sentencepiece/src/builder.cc:410,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/src/builder.cc:413,1
    - Dst: composer
      Src: /src/sentencepiece/src/builder.cc:418,1
    - Dst: sentencepiece::normalizer::ExpandUnnormalized
      Src: /src/sentencepiece/src/builder.cc:425,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:432,1
    - Dst: sentencepiece::normalizer::Builder::RemoveRedundantMap
      Src: /src/sentencepiece/src/builder.cc:432,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:433,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:435,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - chars_map
    - composer
    - decomposer
    argTypes:
    - Builder::CharsMap*
    - std::function<Builder::Chars(const Builder::Chars&)>
    - std::function<Builder::Chars(const Builder::Chars&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 436
    functionName: sentencepiece::normalizer::BuildMapInternal
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - std::set::insert
    - auto::size
    - sentencepiece::normalizer::ExpandUnnormalized
    - sentencepiece::normalizer::Builder::RemoveRedundantMap
    - decomposer
    - std::move
    - insert
    - U_IS_UNICODE_CHAR
    - RETURN_IF_ERROR
    - composer
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status BuildMapInternal(\n    Builder::CharsMap* chars_map,\n
      \   std::function<Builder::Chars(const Builder::Chars&)> composer,\n    std::function<Builder::Chars(const
      Builder::Chars&)> decomposer)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/sentencepiece/src/builder.cc:399,1
    - Dst: composer
      Src: /src/sentencepiece/src/builder.cc:403,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:404,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:404,1
    - Dst: decomposer
      Src: /src/sentencepiece/src/builder.cc:407,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:408,1
    - Dst: insert
      Src: /src/sentencepiece/src/builder.cc:410,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/src/builder.cc:413,1
    - Dst: composer
      Src: /src/sentencepiece/src/builder.cc:418,1
    - Dst: sentencepiece::normalizer::ExpandUnnormalized
      Src: /src/sentencepiece/src/builder.cc:425,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:432,1
    - Dst: sentencepiece::normalizer::Builder::RemoveRedundantMap
      Src: /src/sentencepiece/src/builder.cc:432,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:433,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:435,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - chars_map
    - composer
    - decomposer
    argTypes:
    - Builder::CharsMap*
    - std::function<Builder::Chars(const Builder::Chars&)>
    - std::function<Builder::Chars(const Builder::Chars&)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 436
    functionName: sentencepiece::normalizer::BuildMapInternal
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - std::set::insert
    - auto::size
    - sentencepiece::normalizer::ExpandUnnormalized
    - sentencepiece::normalizer::Builder::RemoveRedundantMap
    - decomposer
    - std::move
    - insert
    - U_IS_UNICODE_CHAR
    - RETURN_IF_ERROR
    - composer
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status BuildMapInternal(\n    Builder::CharsMap* chars_map,\n
      \   std::function<Builder::Chars(const Builder::Chars&)> composer,\n    std::function<Builder::Chars(const
      Builder::Chars&)> decomposer)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:443,1
    - Dst: BuildMapInternal
      Src: /src/sentencepiece/src/builder.cc:444,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:446,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 450
    functionName: sentencepiece::normalizer::Builder::BuildNFKCMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 10
    functionsReached:
    - absl::OkStatus
    - BuildMapInternal
    - LOG
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFKCMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:455,1
    - Dst: BuildMapInternal
      Src: /src/sentencepiece/src/builder.cc:456,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:458,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 461
    functionName: sentencepiece::normalizer::Builder::BuildNFCMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - BuildMapInternal
    - LOG
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFCMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:465,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:468,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder.cc:468,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:469,1
    - Dst: sentencepiece::normalizer::Builder::MergeNmtMap
      Src: /src/sentencepiece/src/builder.cc:469,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:470,1
    - Dst: sentencepiece::normalizer::Builder::RemoveRedundantMap
      Src: /src/sentencepiece/src/builder.cc:470,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:472,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:474,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 463
    functionDepth: 2
    functionLinenumber: 463
    functionLinenumberEnd: 478
    functionName: sentencepiece::normalizer::Builder::BuildNmtNFKCMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 1
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::RemoveRedundantMap
    - sentencepiece::normalizer::Builder::BuildNFKCMap
    - LOG
    - std::move
    - RETURN_IF_ERROR
    - sentencepiece::normalizer::Builder::MergeNmtMap
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNmtNFKCMap(CharsMap* chars_map)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/builder.cc:485,1
    - Dst: second::size
      Src: /src/sentencepiece/src/builder.cc:485,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:487,1
    - Dst: u_foldCase
      Src: /src/sentencepiece/src/builder.cc:487,1
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/sentencepiece/src/builder.cc:494,1
    - Dst: Builder::CharsMap*::find
      Src: /src/sentencepiece/src/builder.cc:497,1
    - Dst: Builder::CharsMap*::end
      Src: /src/sentencepiece/src/builder.cc:497,1
    - Dst: u_foldCase
      Src: /src/sentencepiece/src/builder.cc:498,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:502,1
    - Dst: sentencepiece::normalizer::Builder::RemoveRedundantMap
      Src: /src/sentencepiece/src/builder.cc:502,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:505,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - Builder::CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 506
    functionName: sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 5
    functionsReached:
    - absl::OkStatus
    - Builder::CharsMap*::find
    - u_foldCase
    - second::size
    - sentencepiece::normalizer::Builder::RemoveRedundantMap
    - std::vector::push_back
    - std::vector::reserve
    - Builder::CharsMap*::end
    - U_IS_UNICODE_CHAR
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::MergeUnicodeCaseFoldMap(Builder::CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/sentencepiece/src/builder.cc:563,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - Builder::CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 509
    functionDepth: 0
    functionLinenumber: 509
    functionLinenumberEnd: 566
    functionName: sentencepiece::normalizer::Builder::MergeNmtMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 2
    functionsReached:
    - erase
    - absl::OkStatus
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::MergeNmtMap(Builder::CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:572,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKCMap
      Src: /src/sentencepiece/src/builder.cc:572,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:573,1
    - Dst: sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
      Src: /src/sentencepiece/src/builder.cc:573,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:574,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:576,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 569
    functionDepth: 2
    functionLinenumber: 569
    functionLinenumberEnd: 580
    functionName: sentencepiece::normalizer::Builder::BuildNFKC_CFMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
    - sentencepiece::normalizer::Builder::BuildNFKCMap
    - LOG
    - std::move
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFKC_CFMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:586,1
    - Dst: sentencepiece::normalizer::Builder::BuildNmtNFKCMap
      Src: /src/sentencepiece/src/builder.cc:586,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:587,1
    - Dst: sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
      Src: /src/sentencepiece/src/builder.cc:587,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:588,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:590,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:593,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 583
    functionDepth: 2
    functionLinenumber: 583
    functionLinenumberEnd: 594
    functionName: sentencepiece::normalizer::Builder::BuildNmtNFKC_CFMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
    - LOG
    - std::move
    - sentencepiece::normalizer::Builder::BuildNmtNFKCMap
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNmtNFKC_CFMap(CharsMap* chars_map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/sentencepiece/src/builder.cc:601,1
    - Dst: ToNFKD
      Src: /src/sentencepiece/src/builder.cc:604,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:605,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:605,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:610,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:612,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 613
    functionName: sentencepiece::normalizer::Builder::BuildNFKDMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - auto::size
    - LOG
    - U_IS_UNICODE_CHAR
    - ToNFKD
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFKDMap(CharsMap* chars_map)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: U_IS_UNICODE_CHAR
      Src: /src/sentencepiece/src/builder.cc:620,1
    - Dst: ToNFD
      Src: /src/sentencepiece/src/builder.cc:623,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:624,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/builder.cc:624,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:630,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:632,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 633
    functionName: sentencepiece::normalizer::Builder::BuildNFDMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 1
    functionsReached:
    - absl::OkStatus
    - ToNFD
    - auto::size
    - LOG
    - U_IS_UNICODE_CHAR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFDMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:639,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKDMap
      Src: /src/sentencepiece/src/builder.cc:639,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:640,1
    - Dst: sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
      Src: /src/sentencepiece/src/builder.cc:640,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:641,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:643,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 636
    functionDepth: 2
    functionLinenumber: 636
    functionLinenumberEnd: 646
    functionName: sentencepiece::normalizer::Builder::BuildNFKD_CFMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::BuildNFKDMap
    - sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
    - LOG
    - std::move
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFKD_CFMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:652,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFKDMap
      Src: /src/sentencepiece/src/builder.cc:652,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:653,1
    - Dst: sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
      Src: /src/sentencepiece/src/builder.cc:653,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:654,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:656,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:658,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 649
    functionDepth: 2
    functionLinenumber: 649
    functionLinenumberEnd: 659
    functionName: sentencepiece::normalizer::Builder::BuildNFC_CFMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::BuildNFKDMap
    - sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
    - LOG
    - std::move
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFC_CFMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:665,1
    - Dst: sentencepiece::normalizer::Builder::BuildNFDMap
      Src: /src/sentencepiece/src/builder.cc:665,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:666,1
    - Dst: sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
      Src: /src/sentencepiece/src/builder.cc:666,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:667,1
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:669,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 662
    functionDepth: 2
    functionLinenumber: 662
    functionLinenumberEnd: 672
    functionName: sentencepiece::normalizer::Builder::BuildNFD_CFMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::Builder::BuildNFDMap
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
    - LOG
    - std::move
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::BuildNFD_CFMap(CharsMap* chars_map)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/builder.cc:677,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/builder.cc:677,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:678,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/builder.cc:680,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:682,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/builder.cc:682,1
    - Dst: CharsMap*::clear
      Src: /src/sentencepiece/src/builder.cc:685,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/builder.cc:686,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/builder.cc:688,1
    - Dst: absl::AllowEmpty
      Src: /src/sentencepiece/src/builder.cc:688,1
    - Dst: CHECK_GE
      Src: /src/sentencepiece/src/builder.cc:689,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:689,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/builder.cc:690,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/builder.cc:691,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/builder.cc:695,1
    - Dst: empty
      Src: /src/sentencepiece/src/builder.cc:696,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/builder.cc:699,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:700,1
    - Dst: string_util::HexToInt<char32_t>
      Src: /src/sentencepiece/src/builder.cc:700,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/builder.cc:702,1
    - Dst: empty
      Src: /src/sentencepiece/src/builder.cc:703,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/builder.cc:706,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:707,1
    - Dst: string_util::HexToInt<char32_t>
      Src: /src/sentencepiece/src/builder.cc:707,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:709,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/src/builder.cc:709,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:713,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - filename
    - chars_map
    argTypes:
    - absl::string_view
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 714
    functionName: sentencepiece::normalizer::Builder::LoadCharsMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 8
    functionsReached:
    - absl::OkStatus
    - std::vector::size
    - absl::ConsumePrefix
    - empty
    - string_util::HexToInt<char32_t>
    - std::vector::push_back
    - std::vector::empty
    - LOG
    - absl::StrSplit
    - absl::AllowEmpty
    - std::vector::emplace_back
    - RET_CHECK
    - absl::string_view::data
    - auto::status
    - CHECK_GE
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - RETURN_IF_ERROR
    - CharsMap*::clear
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Builder::LoadCharsMap(absl::string_view filename,\n                                   CharsMap*
      chars_map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/builder.cc:719,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/builder.cc:720,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/builder.cc:720,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:728,1
    - Dst: sentencepiece::string_util::IntToHex
      Src: /src/sentencepiece/src/builder.cc:728,1
    - Dst: string_util::UnicodeText::push_back
      Src: /src/sentencepiece/src/builder.cc:729,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/builder.cc:732,1
    - Dst: sentencepiece::string_util::IntToHex
      Src: /src/sentencepiece/src/builder.cc:732,1
    - Dst: string_util::UnicodeText::push_back
      Src: /src/sentencepiece/src/builder.cc:733,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/builder.cc:735,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/builder.cc:736,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/builder.cc:737,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/builder.cc:738,1
    - Dst: absl::StrReplaceAll
      Src: /src/sentencepiece/src/builder.cc:739,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/builder.cc:742,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - filename
    - ' chars_map'
    argTypes:
    - absl::string_view
    - Builder::CharsMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 746
    functionName: sentencepiece::normalizer::Builder::SaveCharsMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 10
    functionsReached:
    - absl::OkStatus
    - absl::StrReplaceAll
    - string_util::UnicodeText::push_back
    - sentencepiece::string_util::IntToHex
    - auto::status
    - absl::StrJoin
    - std::vector::push_back
    - sentencepiece::string_util::UnicodeTextToUTF8
    - auto::WriteLine
    - RETURN_IF_ERROR
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Builder::SaveCharsMap(absl::string_view filename,\n                                   const
      Builder::CharsMap& chars_map)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/builder.cc:750,1
    - Dst: std::max
      Src: /src/sentencepiece/src/builder.cc:755,1
    - Dst: first::size
      Src: /src/sentencepiece/src/builder.cc:755,1
    - Dst: first::size
      Src: /src/sentencepiece/src/builder.cc:756,1
    - Dst: CharsMap::insert
      Src: /src/sentencepiece/src/builder.cc:757,1
    - Dst: RET_CHECK_GT
      Src: /src/sentencepiece/src/builder.cc:760,1
    - Dst: first::size
      Src: /src/sentencepiece/src/builder.cc:766,1
    - Dst: Normalize
      Src: /src/sentencepiece/src/builder.cc:767,1
    - Dst: CharsMap::insert
      Src: /src/sentencepiece/src/builder.cc:768,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/builder.cc:775,1
    - Dst: Normalize
      Src: /src/sentencepiece/src/builder.cc:775,1
    - Dst: std::move
      Src: /src/sentencepiece/src/builder.cc:778,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/builder.cc:780,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - chars_map
    argTypes:
    - CharsMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 781
    functionName: sentencepiece::normalizer::Builder::RemoveRedundantMap
    functionSourceFile: /src/sentencepiece/src/builder.cc
    functionUses: 12
    functionsReached:
    - first::size
    - absl::OkStatus
    - RET_CHECK_GT
    - RET_CHECK_EQ
    - std::move
    - RET_CHECK
    - Normalize
    - std::max
    - CharsMap::insert
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Builder::RemoveRedundantMap(CharsMap* chars_map)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_util::IntToHex<char32_t>
      Src: /src/sentencepiece/src/util_test.cc:34,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/util_test.cc:35,1
    - Dst: string_util::HexToInt<char32_t>
      Src: /src/sentencepiece/src/util_test.cc:35,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/util_test.cc:38,1
    - Dst: sentencepiece::string_util::IntToHex
      Src: /src/sentencepiece/src/util_test.cc:38,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/util_test.cc:39,1
    - Dst: string_util::HexToInt<int>
      Src: /src/sentencepiece/src/util_test.cc:39,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/util_test.cc:40,1
    - Dst: string_util::HexToInt<int>
      Src: /src/sentencepiece/src/util_test.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - CHECK_EQ
    - sentencepiece::string_util::IntToHex
    - string_util::HexToInt<int>
    - string_util::IntToHex<char32_t>
    - string_util::HexToInt<char32_t>
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, Hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:45,1
    - Dst: absl::string_view::find
      Src: /src/sentencepiece/src/util_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::find
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, StringViewTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_util::EncodePOD<float>
      Src: /src/sentencepiece/src/util_test.cc:52,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:53,1
    - Dst: string_util::DecodePOD<float>
      Src: /src/sentencepiece/src/util_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:54,1
    - Dst: string_util::EncodePOD<double>
      Src: /src/sentencepiece/src/util_test.cc:59,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:60,1
    - Dst: string_util::DecodePOD<double>
      Src: /src/sentencepiece/src/util_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:61,1
    - Dst: string_util::EncodePOD<int32_t>
      Src: /src/sentencepiece/src/util_test.cc:66,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:67,1
    - Dst: string_util::DecodePOD<int32_t>
      Src: /src/sentencepiece/src/util_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:68,1
    - Dst: string_util::EncodePOD<int16_t>
      Src: /src/sentencepiece/src/util_test.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:74,1
    - Dst: string_util::DecodePOD<int16_t>
      Src: /src/sentencepiece/src/util_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:75,1
    - Dst: string_util::EncodePOD<int64_t>
      Src: /src/sentencepiece/src/util_test.cc:80,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:81,1
    - Dst: string_util::DecodePOD<int64_t>
      Src: /src/sentencepiece/src/util_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:82,1
    - Dst: string_util::EncodePOD<int64_t>
      Src: /src/sentencepiece/src/util_test.cc:88,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:89,1
    - Dst: string_util::DecodePOD<int32_t>
      Src: /src/sentencepiece/src/util_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 91
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - string_util::DecodePOD<int64_t>
    - string_util::EncodePOD<int32_t>
    - string_util::EncodePOD<double>
    - string_util::EncodePOD<int16_t>
    - string_util::EncodePOD<int64_t>
    - EXPECT_TRUE
    - EXPECT_EQ
    - string_util::DecodePOD<double>
    - EXPECT_FALSE
    - string_util::DecodePOD<int32_t>
    - string_util::DecodePOD<int16_t>
    - string_util::EncodePOD<float>
    - string_util::DecodePOD<float>
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, EncodePODTet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:94,1
    - Dst: sentencepiece::string_util::SimpleItoa
      Src: /src/sentencepiece/src/util_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:95,1
    - Dst: sentencepiece::string_util::SimpleItoa
      Src: /src/sentencepiece/src/util_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:96,1
    - Dst: sentencepiece::string_util::SimpleItoa
      Src: /src/sentencepiece/src/util_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:97,1
    - Dst: sentencepiece::string_util::SimpleItoa
      Src: /src/sentencepiece/src/util_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:98,1
    - Dst: sentencepiece::string_util::SimpleItoa
      Src: /src/sentencepiece/src/util_test.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::string_util::SimpleItoa
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, ItoaTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:102,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/util_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:103,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/util_test.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::string_util::OneCharLen
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, OneCharLenTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:111,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:116,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:121,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:126,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:131,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:136,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:141,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:147,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:153,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:159,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:175,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:176,1
    - Dst: strlen
      Src: /src/sentencepiece/src/util_test.cc:177,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:179,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:185,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:190,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:190,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:195,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:196,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 199
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::IsStructurallyValid
    - sentencepiece::string_util::DecodeUTF8
    - strlen
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, DecodeUTF8Test)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util_test.cc:204,1
    - Dst: sentencepiece::string_util::EncodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:205,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:212,1
    - Dst: sentencepiece::string_util::EncodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:213,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:217,1
    - Dst: sentencepiece::string_util::EncodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:218,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:221,1
    - Dst: sentencepiece::string_util::EncodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:222,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 224
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::IsValidCodepoint
    - sentencepiece::string_util::DecodeUTF8
    - EXPECT_EQ
    - sentencepiece::string_util::EncodeUTF8
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, EncodeUTF8Test)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util_test.cc:228,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/util_test.cc:229,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/util_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:231,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/util_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 234
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - sentencepiece::string_util::UnicodeCharToUTF8
    - auto::size
    - sentencepiece::string_util::IsValidCodepoint
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, UnicodeCharToUTF8Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:237,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:237,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:238,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:239,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/util_test.cc:239,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:240,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:240,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:241,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:241,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:242,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:242,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:243,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:243,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:244,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:244,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:245,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:245,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:246,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:246,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:247,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:247,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:248,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:248,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:249,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:249,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:250,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:250,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:251,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:251,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:252,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:252,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:253,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:253,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:254,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:254,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:255,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:255,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:256,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:256,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:257,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:257,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:258,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 259
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::IsStructurallyValid
    - EXPECT_FALSE
    - EXPECT_TRUE
    - absl::string_view
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, IsStructurallyValidTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/util_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:265,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/util_test.cc:265,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/util_test.cc:267,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:268,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/util_test.cc:268,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/util_test.cc:270,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:271,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/util_test.cc:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - EXPECT_EQ
    - sentencepiece::string_util::UnicodeTextToUTF8
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, UnicodeTextToUTF8Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:278,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/util_test.cc:278,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:279,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/util_test.cc:279,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:280,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/util_test.cc:280,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:281,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/util_test.cc:281,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:283,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/util_test.cc:283,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:284,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/util_test.cc:284,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:286,1
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/util_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:287,1
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/util_test.cc:287,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:288,1
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/util_test.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:290,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/util_test.cc:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 291
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::ContainsKey
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::port::FindWithDefault
    - EXPECT_FALSE
    - sentencepiece::port::FindOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, MapUtilTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/util_test.cc:301,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:302,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/util_test.cc:302,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/util_test.cc:303,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/util_test.cc:304,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/util_test.cc:309,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:310,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/util_test.cc:310,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/util_test.cc:312,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:313,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/util_test.cc:313,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:314,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:316,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/util_test.cc:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 318
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ::testing::TempDir
    - std::vector::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - auto::WriteLine
    - EXPECT_FALSE
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, InputOutputBufferTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/util_test.cc:321,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:322,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/util_test.cc:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::filesystem::NewReadableFile
    - auto::status
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, InputOutputBufferInvalidFileTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:327,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/util_test.cc:327,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:328,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/util_test.cc:328,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:329,1
    - Dst: std::string
      Src: /src/sentencepiece/src/util_test.cc:329,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/util_test.cc:329,1
    - Dst: std::string
      Src: /src/sentencepiece/src/util_test.cc:332,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:334,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/util_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:335,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/util_test.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:336,1
    - Dst: std::string
      Src: /src/sentencepiece/src/util_test.cc:336,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/util_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:337,1
    - Dst: std::string
      Src: /src/sentencepiece/src/util_test.cc:337,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/util_test.cc:337,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util_test.cc:339,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:340,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/util_test.cc:340,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:341,1
    - Dst: auto::code
      Src: /src/sentencepiece/src/util_test.cc:341,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:342,1
    - Dst: std::string
      Src: /src/sentencepiece/src/util_test.cc:342,1
    - Dst: auto::message
      Src: /src/sentencepiece/src/util_test.cc:342,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util_test.cc:344,1
    - Dst: static_cast<absl::StatusCode>
      Src: /src/sentencepiece/src/util_test.cc:346,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:347,1
    - Dst: absl::Status::ToString
      Src: /src/sentencepiece/src/util_test.cc:347,1
    - Dst: absl::Status::ToString
      Src: /src/sentencepiece/src/util_test.cc:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 350
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - absl::Status::ok
    - auto::ok
    - static_cast<absl::StatusCode>
    - absl::Status::message
    - absl::Status::ToString
    - EXPECT_TRUE
    - EXPECT_EQ
    - auto::code
    - absl::Status::code
    - std::string
    - auto::message
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, StatusTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:354,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:354,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:355,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:355,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:357,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:357,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:358,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:358,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:360,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:360,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:361,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 362
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, JoinPathTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random::ReservoirSampler::Add
      Src: /src/sentencepiece/src/util_test.cc:368,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:370,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/util_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:371,1
    - Dst: random::ReservoirSampler::total_size
      Src: /src/sentencepiece/src/util_test.cc:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - random::ReservoirSampler::total_size
    - random::ReservoirSampler::Add
    - EXPECT_EQ
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, ReservoirSamplerTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::StrSplitAsCSV
      Src: /src/sentencepiece/src/util_test.cc:376,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:377,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/util_test.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:378,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:379,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:380,1
    - Dst: sentencepiece::util::StrSplitAsCSV
      Src: /src/sentencepiece/src/util_test.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:385,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/util_test.cc:385,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:386,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:387,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:388,1
    - Dst: sentencepiece::util::StrSplitAsCSV
      Src: /src/sentencepiece/src/util_test.cc:392,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:393,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/util_test.cc:393,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:394,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 397
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::util::StrSplitAsCSV
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, StrSplitAsCSVTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SetDataDir
      Src: /src/sentencepiece/src/util_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:401,1
    - Dst: sentencepiece::GetDataDir
      Src: /src/sentencepiece/src/util_test.cc:401,1
    - Dst: sentencepiece::SetDataDir
      Src: /src/sentencepiece/src/util_test.cc:403,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:404,1
    - Dst: sentencepiece::GetDataDir
      Src: /src/sentencepiece/src/util_test.cc:404,1
    - Dst: sentencepiece::SetDataDir
      Src: /src/sentencepiece/src/util_test.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:407,1
    - Dst: sentencepiece::GetDataDir
      Src: /src/sentencepiece/src/util_test.cc:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 408
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::SetDataDir
    - sentencepiece::GetDataDir
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, DataDirTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/src/util_test.cc:412,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util_test.cc:412,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:413,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/util_test.cc:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::RunBatch
    - absl::OkStatus
    - EXPECT_TRUE
    - auto::ok
    linkageType: ''
    returnType: void
    signature: void TEST(BatchRunnerTest, EmptyTasks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/src/util_test.cc:421,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util_test.cc:425,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:429,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/util_test.cc:429,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 433
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - auto::ok
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::RunBatch
    linkageType: ''
    returnType: void
    signature: void TEST(BatchRunnerTest, AllSuccess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/src/util_test.cc:440,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/util_test.cc:445,1
    - Dst: absl::SleepFor
      Src: /src/sentencepiece/src/util_test.cc:447,1
    - Dst: absl::Milliseconds
      Src: /src/sentencepiece/src/util_test.cc:447,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util_test.cc:448,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:452,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/util_test.cc:452,1
    - Dst: EXPECT_LT
      Src: /src/sentencepiece/src/util_test.cc:453,1
    - Dst: std::atomic::load
      Src: /src/sentencepiece/src/util_test.cc:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 454
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - EXPECT_LT
    - absl::SleepFor
    - auto::ok
    - std::atomic::load
    - EXPECT_FALSE
    - sentencepiece::RunBatch
    - absl::InternalError
    - absl::Milliseconds
    linkageType: ''
    returnType: void
    signature: void TEST(BatchRunnerTest, EarlyAbortOnError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_util::IntToHex<char32_t>
      Src: /src/sentencepiece/src/util_test.cc:34,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/util_test.cc:35,1
    - Dst: string_util::HexToInt<char32_t>
      Src: /src/sentencepiece/src/util_test.cc:35,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/util_test.cc:38,1
    - Dst: sentencepiece::string_util::IntToHex
      Src: /src/sentencepiece/src/util_test.cc:38,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/util_test.cc:39,1
    - Dst: string_util::HexToInt<int>
      Src: /src/sentencepiece/src/util_test.cc:39,1
    - Dst: CHECK_EQ
      Src: /src/sentencepiece/src/util_test.cc:40,1
    - Dst: string_util::HexToInt<int>
      Src: /src/sentencepiece/src/util_test.cc:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - CHECK_EQ
    - sentencepiece::string_util::IntToHex
    - string_util::HexToInt<int>
    - string_util::IntToHex<char32_t>
    - string_util::HexToInt<char32_t>
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, Hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:45,1
    - Dst: absl::string_view::find
      Src: /src/sentencepiece/src/util_test.cc:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::find
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, StringViewTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string_util::EncodePOD<float>
      Src: /src/sentencepiece/src/util_test.cc:52,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:53,1
    - Dst: string_util::DecodePOD<float>
      Src: /src/sentencepiece/src/util_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:54,1
    - Dst: string_util::EncodePOD<double>
      Src: /src/sentencepiece/src/util_test.cc:59,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:60,1
    - Dst: string_util::DecodePOD<double>
      Src: /src/sentencepiece/src/util_test.cc:60,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:61,1
    - Dst: string_util::EncodePOD<int32_t>
      Src: /src/sentencepiece/src/util_test.cc:66,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:67,1
    - Dst: string_util::DecodePOD<int32_t>
      Src: /src/sentencepiece/src/util_test.cc:67,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:68,1
    - Dst: string_util::EncodePOD<int16_t>
      Src: /src/sentencepiece/src/util_test.cc:73,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:74,1
    - Dst: string_util::DecodePOD<int16_t>
      Src: /src/sentencepiece/src/util_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:75,1
    - Dst: string_util::EncodePOD<int64_t>
      Src: /src/sentencepiece/src/util_test.cc:80,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:81,1
    - Dst: string_util::DecodePOD<int64_t>
      Src: /src/sentencepiece/src/util_test.cc:81,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:82,1
    - Dst: string_util::EncodePOD<int64_t>
      Src: /src/sentencepiece/src/util_test.cc:88,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:89,1
    - Dst: string_util::DecodePOD<int32_t>
      Src: /src/sentencepiece/src/util_test.cc:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 91
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - string_util::DecodePOD<int64_t>
    - string_util::EncodePOD<int32_t>
    - string_util::EncodePOD<double>
    - string_util::EncodePOD<int16_t>
    - string_util::EncodePOD<int64_t>
    - EXPECT_TRUE
    - EXPECT_EQ
    - string_util::DecodePOD<double>
    - EXPECT_FALSE
    - string_util::DecodePOD<int32_t>
    - string_util::DecodePOD<int16_t>
    - string_util::EncodePOD<float>
    - string_util::DecodePOD<float>
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, EncodePODTet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:94,1
    - Dst: sentencepiece::string_util::SimpleItoa
      Src: /src/sentencepiece/src/util_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:95,1
    - Dst: sentencepiece::string_util::SimpleItoa
      Src: /src/sentencepiece/src/util_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:96,1
    - Dst: sentencepiece::string_util::SimpleItoa
      Src: /src/sentencepiece/src/util_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:97,1
    - Dst: sentencepiece::string_util::SimpleItoa
      Src: /src/sentencepiece/src/util_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:98,1
    - Dst: sentencepiece::string_util::SimpleItoa
      Src: /src/sentencepiece/src/util_test.cc:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 99
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::string_util::SimpleItoa
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, ItoaTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:102,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/util_test.cc:102,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:103,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/util_test.cc:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::string_util::OneCharLen
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, OneCharLenTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:111,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:116,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:116,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:117,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:121,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:122,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:126,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:126,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:127,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:131,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:131,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:132,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:136,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:136,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:137,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:141,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:141,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:142,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:147,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:148,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:153,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:154,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:155,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:159,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:160,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:161,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:175,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:176,1
    - Dst: strlen
      Src: /src/sentencepiece/src/util_test.cc:177,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:179,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:179,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:180,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:185,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:190,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:190,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:191,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:195,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:196,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 199
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::IsStructurallyValid
    - sentencepiece::string_util::DecodeUTF8
    - strlen
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, DecodeUTF8Test)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util_test.cc:204,1
    - Dst: sentencepiece::string_util::EncodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:205,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:208,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:209,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:212,1
    - Dst: sentencepiece::string_util::EncodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:213,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:217,1
    - Dst: sentencepiece::string_util::EncodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:217,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:218,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:218,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:219,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:221,1
    - Dst: sentencepiece::string_util::EncodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:221,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:222,1
    - Dst: sentencepiece::string_util::DecodeUTF8
      Src: /src/sentencepiece/src/util_test.cc:222,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:223,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 224
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::IsValidCodepoint
    - sentencepiece::string_util::DecodeUTF8
    - EXPECT_EQ
    - sentencepiece::string_util::EncodeUTF8
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, EncodeUTF8Test)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/util_test.cc:228,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/util_test.cc:229,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/util_test.cc:230,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:231,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/util_test.cc:231,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 234
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - sentencepiece::string_util::UnicodeCharToUTF8
    - auto::size
    - sentencepiece::string_util::IsValidCodepoint
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, UnicodeCharToUTF8Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:237,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:237,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:238,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:239,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/util_test.cc:239,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:240,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:240,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:241,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:241,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:242,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:242,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:243,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:243,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:244,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:244,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:245,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:245,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:246,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:246,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:247,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:247,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:248,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:248,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:249,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:249,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:250,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:250,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:251,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:251,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:252,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:252,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:253,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:253,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:254,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:254,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:255,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:255,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:256,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:256,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:257,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:257,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:258,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/util_test.cc:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 259
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::IsStructurallyValid
    - EXPECT_FALSE
    - EXPECT_TRUE
    - absl::string_view
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, IsStructurallyValidTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/util_test.cc:264,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:265,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/util_test.cc:265,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/util_test.cc:267,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:268,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/util_test.cc:268,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/util_test.cc:270,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:271,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/util_test.cc:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 272
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - EXPECT_EQ
    - sentencepiece::string_util::UnicodeTextToUTF8
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, UnicodeTextToUTF8Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:278,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/util_test.cc:278,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:279,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/util_test.cc:279,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:280,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/util_test.cc:280,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:281,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/util_test.cc:281,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:283,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/util_test.cc:283,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:284,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/util_test.cc:284,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:286,1
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/util_test.cc:286,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:287,1
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/util_test.cc:287,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:288,1
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/util_test.cc:288,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:290,1
    - Dst: sentencepiece::port::FindOrDie
      Src: /src/sentencepiece/src/util_test.cc:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 291
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::ContainsKey
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::port::FindWithDefault
    - EXPECT_FALSE
    - sentencepiece::port::FindOrDie
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, MapUtilTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/util_test.cc:301,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:302,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/util_test.cc:302,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/util_test.cc:303,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/util_test.cc:304,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/util_test.cc:309,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:310,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/util_test.cc:310,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/util_test.cc:312,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:313,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/util_test.cc:313,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:314,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:316,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/util_test.cc:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 318
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ::testing::TempDir
    - std::vector::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - auto::WriteLine
    - EXPECT_FALSE
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, InputOutputBufferTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/util_test.cc:321,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:322,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/util_test.cc:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 323
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::filesystem::NewReadableFile
    - auto::status
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, InputOutputBufferInvalidFileTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:327,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/util_test.cc:327,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:328,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/util_test.cc:328,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:329,1
    - Dst: std::string
      Src: /src/sentencepiece/src/util_test.cc:329,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/util_test.cc:329,1
    - Dst: std::string
      Src: /src/sentencepiece/src/util_test.cc:332,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:334,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/util_test.cc:334,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:335,1
    - Dst: absl::Status::code
      Src: /src/sentencepiece/src/util_test.cc:335,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:336,1
    - Dst: std::string
      Src: /src/sentencepiece/src/util_test.cc:336,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/util_test.cc:336,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:337,1
    - Dst: std::string
      Src: /src/sentencepiece/src/util_test.cc:337,1
    - Dst: absl::Status::message
      Src: /src/sentencepiece/src/util_test.cc:337,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util_test.cc:339,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:340,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/util_test.cc:340,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:341,1
    - Dst: auto::code
      Src: /src/sentencepiece/src/util_test.cc:341,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:342,1
    - Dst: std::string
      Src: /src/sentencepiece/src/util_test.cc:342,1
    - Dst: auto::message
      Src: /src/sentencepiece/src/util_test.cc:342,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util_test.cc:344,1
    - Dst: static_cast<absl::StatusCode>
      Src: /src/sentencepiece/src/util_test.cc:346,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:347,1
    - Dst: absl::Status::ToString
      Src: /src/sentencepiece/src/util_test.cc:347,1
    - Dst: absl::Status::ToString
      Src: /src/sentencepiece/src/util_test.cc:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 350
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - absl::Status::ok
    - auto::ok
    - static_cast<absl::StatusCode>
    - absl::Status::message
    - absl::Status::ToString
    - EXPECT_TRUE
    - EXPECT_EQ
    - auto::code
    - absl::Status::code
    - std::string
    - auto::message
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, StatusTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:354,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:354,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:355,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:355,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:357,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:357,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:358,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:358,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:360,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:360,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:361,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/util_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 362
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, JoinPathTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random::ReservoirSampler::Add
      Src: /src/sentencepiece/src/util_test.cc:368,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:370,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/util_test.cc:370,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:371,1
    - Dst: random::ReservoirSampler::total_size
      Src: /src/sentencepiece/src/util_test.cc:371,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 372
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - random::ReservoirSampler::total_size
    - random::ReservoirSampler::Add
    - EXPECT_EQ
    - std::vector::size
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, ReservoirSamplerTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::StrSplitAsCSV
      Src: /src/sentencepiece/src/util_test.cc:376,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:377,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/util_test.cc:377,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:378,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:379,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:380,1
    - Dst: sentencepiece::util::StrSplitAsCSV
      Src: /src/sentencepiece/src/util_test.cc:384,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:385,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/util_test.cc:385,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:386,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:387,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:388,1
    - Dst: sentencepiece::util::StrSplitAsCSV
      Src: /src/sentencepiece/src/util_test.cc:392,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:393,1
    - Dst: auto::size
      Src: /src/sentencepiece/src/util_test.cc:393,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:394,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 397
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::util::StrSplitAsCSV
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, StrSplitAsCSVTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SetDataDir
      Src: /src/sentencepiece/src/util_test.cc:400,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:401,1
    - Dst: sentencepiece::GetDataDir
      Src: /src/sentencepiece/src/util_test.cc:401,1
    - Dst: sentencepiece::SetDataDir
      Src: /src/sentencepiece/src/util_test.cc:403,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:404,1
    - Dst: sentencepiece::GetDataDir
      Src: /src/sentencepiece/src/util_test.cc:404,1
    - Dst: sentencepiece::SetDataDir
      Src: /src/sentencepiece/src/util_test.cc:406,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:407,1
    - Dst: sentencepiece::GetDataDir
      Src: /src/sentencepiece/src/util_test.cc:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 399
    functionDepth: 2
    functionLinenumber: 399
    functionLinenumberEnd: 408
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::SetDataDir
    - sentencepiece::GetDataDir
    linkageType: ''
    returnType: void
    signature: void TEST(SentencePieceTrainerTest, DataDirTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/src/util_test.cc:412,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util_test.cc:412,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:413,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/util_test.cc:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 414
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::RunBatch
    - absl::OkStatus
    - EXPECT_TRUE
    - auto::ok
    linkageType: ''
    returnType: void
    signature: void TEST(BatchRunnerTest, EmptyTasks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/src/util_test.cc:421,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util_test.cc:425,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/util_test.cc:429,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/util_test.cc:429,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/util_test.cc:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 433
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - auto::ok
    - EXPECT_TRUE
    - EXPECT_EQ
    - sentencepiece::RunBatch
    linkageType: ''
    returnType: void
    signature: void TEST(BatchRunnerTest, AllSuccess)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/src/util_test.cc:440,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/util_test.cc:445,1
    - Dst: absl::SleepFor
      Src: /src/sentencepiece/src/util_test.cc:447,1
    - Dst: absl::Milliseconds
      Src: /src/sentencepiece/src/util_test.cc:447,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/util_test.cc:448,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/util_test.cc:452,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/util_test.cc:452,1
    - Dst: EXPECT_LT
      Src: /src/sentencepiece/src/util_test.cc:453,1
    - Dst: std::atomic::load
      Src: /src/sentencepiece/src/util_test.cc:453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 454
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/util_test.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - EXPECT_LT
    - absl::SleepFor
    - auto::ok
    - std::atomic::load
    - EXPECT_FALSE
    - sentencepiece::RunBatch
    - absl::InternalError
    - absl::Milliseconds
    linkageType: ''
    returnType: void
    signature: void TEST(BatchRunnerTest, EarlyAbortOnError)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:52,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' kwargs'
    - conflicting_key
    argTypes:
    - std::unordered_map<std::string, std::string>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: sentencepiece::ContainsNormalizerKeys
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: "bool ContainsNormalizerKeys(\n    const std::unordered_map<std::string,
      std::string>& kwargs,\n    std::string* conflicting_key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:52,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' kwargs'
    - conflicting_key
    argTypes:
    - std::unordered_map<std::string, std::string>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: sentencepiece::ContainsNormalizerKeys
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: "bool ContainsNormalizerKeys(\n    const std::unordered_map<std::string,
      std::string>& kwargs,\n    std::string* conflicting_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Impl>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: sentencepiece::TrainerComponents::TrainerComponents
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Impl>
    linkageType: ''
    returnType: void
    signature: void TrainerComponents::TrainerComponents()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: TrainerComponents::~TrainerComponents()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerComponents::~TrainerComponents()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Impl>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:78,1
    - Dst: std::make_unique<Impl>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TrainerComponents
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: sentencepiece::TrainerComponents::TrainerComponents
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Impl>
    linkageType: ''
    returnType: void
    signature: void TrainerComponents::TrainerComponents(const TrainerComponents&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TrainerComponents
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: sentencepiece::TrainerComponents::TrainerComponents
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerComponents::TrainerComponents(TrainerComponents&& other)
      noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Impl>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:88,1
    - Dst: std::make_unique<Impl>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TrainerComponents
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 99
    functionName: "& TrainerComponents::operator=(\n    const TrainerComponents& other)"
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Impl>
    linkageType: ''
    returnType: TrainerComponents
    signature: "TrainerComponents & TrainerComponents::operator=(\n    const TrainerComponents&
      other)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: sentencepiece::TrainerComponents::mutable_trainer_spec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TrainerSpec
    signature: TrainerSpec * TrainerComponents::mutable_trainer_spec()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: '& TrainerComponents::trainer_spec() const'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TrainerSpec
    signature: TrainerSpec & TrainerComponents::trainer_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: sentencepiece::TrainerComponents::mutable_normalizer_spec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec * TrainerComponents::mutable_normalizer_spec()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: '& TrainerComponents::normalizer_spec() const'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec & TrainerComponents::normalizer_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: sentencepiece::TrainerComponents::mutable_denormalizer_spec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec * TrainerComponents::mutable_denormalizer_spec()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: '& TrainerComponents::denormalizer_spec() const'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec & TrainerComponents::denormalizer_spec() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:131,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:132,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:132,1
    - Dst: denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:133,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:134,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:134,1
    - Dst: sentencepiece::TrainerFactory::Create
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:136,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:136,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:139,1
    - Dst: PrintProto
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:139,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:139,1
    - Dst: PrintProto
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:140,1
    - Dst: auto::precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:141,1
    - Dst: PrintProto
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:142,1
    - Dst: LOG
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:147,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:151,1
    - Dst: auto::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:151,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:152,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:154,1
    - Dst: auto::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:154,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ' components'
    - serialized_model_proto
    argTypes:
    - TrainerComponents
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 158
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 61
    functionsReached:
    - auto::precompiled_charsmap
    - absl::OkStatus
    - absl::StrCat
    - auto::Train
    - sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
    - LOG
    - trainer_spec
    - normalizer_spec
    - ModelProto::SerializeAsString
    - sentencepiece::TrainerFactory::Create
    - PrintProto
    - denormalizer_spec
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(const TrainerComponents&
      components,\n                                         std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:164,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:164,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:166,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:166,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - args
    - ' components'
    - serialized_model_proto
    argTypes:
    - absl::string_view
    - TrainerComponents
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 62
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - sentencepiece::SentencePieceTrainer::Train
    - LOG
    - absl::string_view::data
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(absl::string_view args,\n
      \                                        const TrainerComponents& components,\n
      \                                        std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:175,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:175,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' kwargs'
    - ' components'
    - serialized_model_proto
    argTypes:
    - std::unordered_map<std::string, std::string>
    - TrainerComponents
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 63
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - sentencepiece::SentencePieceTrainer::Train
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(\n    const std::unordered_map<std::string,
      std::string>& kwargs,\n    const TrainerComponents& components, std::string*
      serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerComponents::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:184,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' trainer_spec'
    - sentence_iterator
    - serialized_model_proto
    argTypes:
    - TrainerSpec
    - SentenceIterator*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 64
    functionsReached:
    - sentencepiece::SentencePieceTrainer::Train
    - TrainerComponents::mutable_trainer_spec
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(const TrainerSpec& trainer_spec,\n
      \                                        SentenceIterator* sentence_iterator,\n
      \                                        std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerComponents::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:194,1
    - Dst: TrainerComponents::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:195,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - sentence_iterator
    - serialized_model_proto
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - SentenceIterator*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 65
    functionsReached:
    - TrainerComponents::mutable_normalizer_spec
    - sentencepiece::SentencePieceTrainer::Train
    - TrainerComponents::mutable_trainer_spec
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(const TrainerSpec& trainer_spec,\n
      \                                        const NormalizerSpec& normalizer_spec,\n
      \                                        SentenceIterator* sentence_iterator,\n
      \                                        std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerComponents::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:206,1
    - Dst: TrainerComponents::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:207,1
    - Dst: TrainerComponents::mutable_denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:208,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    - sentence_iterator
    - serialized_model_proto
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    - SentenceIterator*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 66
    functionsReached:
    - TrainerComponents::mutable_denormalizer_spec
    - TrainerComponents::mutable_normalizer_spec
    - sentencepiece::SentencePieceTrainer::Train
    - TrainerComponents::mutable_trainer_spec
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(\n    const TrainerSpec&
      trainer_spec, const NormalizerSpec& normalizer_spec,\n    const NormalizerSpec&
      denormalizer_spec,\n    SentenceIterator* sentence_iterator, std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - args
    - sentence_iterator
    - serialized_model_proto
    argTypes:
    - absl::string_view
    - SentenceIterator*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 67
    functionsReached:
    - sentencepiece::SentencePieceTrainer::Train
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(absl::string_view args,\n
      \                                        SentenceIterator* sentence_iterator,\n
      \                                        std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' kwargs'
    - sentence_iterator
    - serialized_model_proto
    argTypes:
    - std::unordered_map<std::string, std::string>
    - SentenceIterator*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 68
    functionsReached:
    - sentencepiece::SentencePieceTrainer::Train
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(\n    const std::unordered_map<std::string,
      std::string>& kwargs,\n    SentenceIterator* sentence_iterator, std::string*
      serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:234,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:234,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:234,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:235,1
    - Dst: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:235,1
    - Dst: NormalizerSpec::name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:236,1
    - Dst: NormalizerSpec::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 8
    functionsReached:
    - sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
    - CHECK_OK
    - NormalizerSpec::name
    - NormalizerSpec::mutable_precompiled_charsmap
    - absl::string_view::size
    - absl::string_view::data
    - NormalizerSpec::set_name
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec SentencePieceTrainer::GetNormalizerSpec(absl::string_view
      name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:244,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:245,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:246,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:248,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:248,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:251,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:252,1
    - Dst: find
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:254,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:256,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:258,1
    - Dst: substr
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:258,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:259,1
    - Dst: substr
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:259,1
    - Dst: std::unordered_map::emplace
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:261,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - args
    - trainer_spec
    - normalizer_spec
    - denormalizer_spec
    argTypes:
    - absl::string_view
    - TrainerSpec*
    - NormalizerSpec*
    - NormalizerSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 266
    functionName: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 11
    functionsReached:
    - absl::OkStatus
    - substr
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - absl::string_view::empty
    - RET_CHECK
    - std::unordered_map::emplace
    - absl::ConsumePrefix
    - absl::StrSplit
    - std::string
    - find
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::MergeSpecsFromArgs(\n    absl::string_view
      args, TrainerSpec* trainer_spec,\n    NormalizerSpec* normalizer_spec, NormalizerSpec*
      denormalizer_spec)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:273,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:274,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:275,1
    - Dst: find
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:277,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:278,1
    - Dst: ContainsNormalizerKeys
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:282,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:283,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:284,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:291,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:293,1
    - Dst: sentencepiece::NormalizerSpec::ParseFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:293,1
    - Dst: NormalizerSpec*::set_name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:304,1
    - Dst: NormalizerSpec*::set_normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:307,1
    - Dst: NormalizerSpec*::set_add_dummy_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:308,1
    - Dst: NormalizerSpec*::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:309,1
    - Dst: NormalizerSpec*::set_escape_whitespaces
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:310,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:314,1
    - Dst: absl::SimpleAtoi
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:314,1
    - Dst: SetMinLogLevel
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:315,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:319,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:320,1
    - Dst: absl::IsNotFound
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:321,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:323,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:324,1
    - Dst: absl::IsNotFound
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:325,1
    - Dst: absl::IsNotFound
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:328,1
    - Dst: absl::IsNotFound
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:328,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:333,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 4
    argNames:
    - ' kwargs'
    - trainer_spec
    - normalizer_spec
    - denormalizer_spec
    argTypes:
    - std::unordered_map<std::string, std::string>
    - TrainerSpec*
    - NormalizerSpec*
    - NormalizerSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 334
    functionName: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 11
    functionsReached:
    - absl::OkStatus
    - absl::InvalidArgumentError
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - sentencepiece::NormalizerSpec::ParseFromString
    - NormalizerSpec*::set_escape_whitespaces
    - SetMinLogLevel
    - NormalizerSpec*::set_name
    - absl::SimpleAtoi
    - absl::IsNotFound
    - absl::StrCat
    - auto::ok
    - NormalizerSpec*::set_remove_extra_whitespaces
    - RET_CHECK
    - end
    - ContainsNormalizerKeys
    - find
    - NormalizerSpec*::set_normalization_rule_tsv
    - NormalizerSpec*::set_add_dummy_prefix
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::MergeSpecsFromArgs(\n    const
      std::unordered_map<std::string, std::string>& kwargs,\n    TrainerSpec* trainer_spec,
      NormalizerSpec* normalizer_spec,\n    NormalizerSpec* denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:340,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:341,1
    - Dst: TrainerComponents*::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:341,1
    - Dst: TrainerComponents*::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:342,1
    - Dst: TrainerComponents*::mutable_denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' kwargs'
    - components
    argTypes:
    - std::unordered_map<std::string, std::string>
    - TrainerComponents*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 12
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - TrainerComponents*::mutable_denormalizer_spec
    - TrainerComponents*::mutable_trainer_spec
    - TrainerComponents*::mutable_normalizer_spec
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::MergeSpecsFromArgs(\n    const
      std::unordered_map<std::string, std::string>& kwargs,\n    TrainerComponents*
      components)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:349,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:350,1
    - Dst: TrainerComponents*::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:350,1
    - Dst: TrainerComponents*::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:351,1
    - Dst: TrainerComponents*::mutable_denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - args
    - components
    argTypes:
    - absl::string_view
    - TrainerComponents*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 13
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - TrainerComponents*::mutable_denormalizer_spec
    - TrainerComponents*::mutable_trainer_spec
    - TrainerComponents*::mutable_normalizer_spec
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::MergeSpecsFromArgs(\n    absl::string_view
      args, TrainerComponents* components)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:359,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' values'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: sentencepiece::VectorSentenceIterator::VectorSentenceIterator
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void VectorSentenceIterator(const std::vector<std::string>& values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: ~VectorSentenceIterator()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~VectorSentenceIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: sentencepiece::VectorSentenceIterator::done
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    functionName: sentencepiece::VectorSentenceIterator::Next
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: '& value() const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: sentencepiece::VectorSentenceIterator::status
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:359,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' values'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: sentencepiece::VectorSentenceIterator::VectorSentenceIterator
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void VectorSentenceIterator(const std::vector<std::string>& values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: ~VectorSentenceIterator()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~VectorSentenceIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: sentencepiece::VectorSentenceIterator::done
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    functionName: sentencepiece::VectorSentenceIterator::Next
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: '& value() const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: sentencepiece::VectorSentenceIterator::status
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - ' sentences'
    - serialized_model_proto
    argTypes:
    - absl::string_view
    - std::vector<std::string>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 378
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 69
    functionsReached:
    - sentencepiece::SentencePieceTrainer::Train
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(\n    absl::string_view args,
      const std::vector<std::string>& sentences,\n    std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' kwargs'
    - ' sentences'
    - serialized_model_proto
    argTypes:
    - std::unordered_map<std::string, std::string>
    - std::vector<std::string>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 387
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 70
    functionsReached:
    - sentencepiece::SentencePieceTrainer::Train
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(\n    const std::unordered_map<std::string,
      std::string>& kwargs,\n    const std::vector<std::string>& sentences,\n    std::string*
      serialized_model_proto)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:392,1
    - Dst: NormalizerSpec*::normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:394,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:395,1
    - Dst: NormalizerSpec*::precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:395,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:398,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:398,1
    - Dst: NormalizerSpec*::normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:399,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:400,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:400,1
    - Dst: NormalizerSpec*::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:401,1
    - Dst: NormalizerSpec*::set_name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:402,1
    - Dst: NormalizerSpec*::name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:404,1
    - Dst: NormalizerSpec*::set_name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:405,1
    - Dst: NormalizerSpec*::precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:407,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:408,1
    - Dst: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:408,1
    - Dst: NormalizerSpec*::name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:409,1
    - Dst: NormalizerSpec*::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:410,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:414,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - normalizer_spec
    - is_denormalizer
    argTypes:
    - NormalizerSpec*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 415
    functionName: sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
    - NormalizerSpec*::mutable_precompiled_charsmap
    - NormalizerSpec*::normalization_rule_tsv
    - NormalizerSpec*::set_name
    - sentencepiece::normalizer::Builder::LoadCharsMap
    - NormalizerSpec*::precompiled_charsmap
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - RET_CHECK
    - NormalizerSpec*::name
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::PopulateNormalizerSpec(\n    NormalizerSpec*
      normalizer_spec, bool is_denormalizer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unordered_map::find
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:425,1
    - Dst: absl::AsciiStrToLower
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:425,1
    - Dst: std::unordered_map::end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:426,1
    - Dst: TrainerSpec*::set_model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:427,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:428,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - spec
    argTypes:
    - absl::string_view
    - TrainerSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 433
    functionName: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 4
    functionsReached:
    - absl::OkStatus
    - std::unordered_map::end
    - absl::AsciiStrToLower
    - absl::StatusBuilder
    - std::unordered_map::find
    - TrainerSpec*::set_model_type
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::PopulateModelTypeFromString(\n
      \   absl::string_view type, TrainerSpec* spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NormalizerSpec>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 436
    functionName: sentencepiece::SentencePieceNormalizer::SentencePieceNormalizer
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<NormalizerSpec>
    linkageType: ''
    returnType: void
    signature: void SentencePieceNormalizer::SentencePieceNormalizer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 437
    functionName: SentencePieceNormalizer::~SentencePieceNormalizer()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SentencePieceNormalizer::~SentencePieceNormalizer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:441,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:442,1
    - Dst: std::make_unique<NormalizerSpec>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:442,1
    - Dst: std::unique_ptr<ModelProto>::normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - model_proto
    argTypes:
    - std::unique_ptr<ModelProto>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: sentencepiece::SentencePieceNormalizer::Load
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::SentencePieceNormalizer::Load
    - std::make_unique<NormalizerSpec>
    - std::unique_ptr<ModelProto>::normalizer_spec
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::Load(\n    std::unique_ptr<ModelProto>
      model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:447,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:448,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:449,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:450,1
    - Dst: status
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - normalizer_spec
    argTypes:
    - std::unique_ptr<NormalizerSpec>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 452
    functionName: sentencepiece::SentencePieceNormalizer::Load
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 1
    functionsReached:
    - status
    - std::make_unique<normalizer::Normalizer>
    - std::move
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::Load(\n    std::unique_ptr<NormalizerSpec>
      normalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:455,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:456,1
    - Dst: sentencepiece::io::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:456,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:456,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:457,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 458
    functionName: sentencepiece::SentencePieceNormalizer::Load
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 2
    functionsReached:
    - auto::get
    - sentencepiece::io::LoadModelProto
    - std::make_unique<ModelProto>
    - std::move
    - sentencepiece::SentencePieceNormalizer::Load
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status SentencePieceNormalizer::Load(absl::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:462,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:463,1
    - Dst: auto::ParseFromArray
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:463,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:463,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:463,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:464,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - serialized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: sentencepiece::SentencePieceNormalizer::LoadFromSerializedProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<ModelProto>
    - std::move
    - sentencepiece::SentencePieceNormalizer::Load
    - absl::string_view::size
    - RET_CHECK
    - absl::string_view::data
    - auto::ParseFromArray
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::LoadFromSerializedProto(\n    absl::string_view
      serialized)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NormalizerSpec>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:469,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:470,1
    - Dst: auto::ParseFromArray
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:470,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:470,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:470,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:471,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - serialized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 472
    functionName: sentencepiece::SentencePieceNormalizer::LoadFromSerializedNormalizerSpec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - std::move
    - sentencepiece::SentencePieceNormalizer::Load
    - std::make_unique<NormalizerSpec>
    - absl::string_view::size
    - RET_CHECK
    - absl::string_view::data
    - auto::ParseFromArray
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::LoadFromSerializedNormalizerSpec(\n
      \   absl::string_view serialized)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NormalizerSpec>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:476,1
    - Dst: auto::set_normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:477,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:477,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:477,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:478,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:478,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:478,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:479,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 474
    functionDepth: 4
    functionLinenumber: 474
    functionLinenumberEnd: 480
    functionName: sentencepiece::SentencePieceNormalizer::LoadFromRuleTSV
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
    - std::move
    - sentencepiece::SentencePieceNormalizer::Load
    - std::make_unique<NormalizerSpec>
    - absl::string_view::size
    - absl::string_view::data
    - RETURN_IF_ERROR
    - auto::set_normalization_rule_tsv
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::LoadFromRuleTSV(\n    absl::string_view
      filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NormalizerSpec>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:483,1
    - Dst: auto::set_name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:484,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:484,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:484,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:485,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:485,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:485,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:486,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 482
    functionDepth: 4
    functionLinenumber: 482
    functionLinenumberEnd: 487
    functionName: sentencepiece::SentencePieceNormalizer::LoadFromRuleName
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
    - std::move
    - sentencepiece::SentencePieceNormalizer::Load
    - std::make_unique<NormalizerSpec>
    - absl::string_view::size
    - auto::set_name
    - absl::string_view::data
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status SentencePieceNormalizer::LoadFromRuleName(absl::string_view
      name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:493,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:494,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:495,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:497,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:498,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:499,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:501,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:502,1
    - Dst: normalizer::Builder::CharsMap::emplace
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:503,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:503,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:503,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:504,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:505,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:509,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:509,1
    - Dst: std::make_unique<NormalizerSpec>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:510,1
    - Dst: auto::set_precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:511,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:512,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - norm_map
    argTypes:
    - absl::Span<const std::pair<std::string, std::string>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 513
    functionName: sentencepiece::SentencePieceNormalizer::LoadFromMap
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - absl::InvalidArgumentError
    - auto::set_precompiled_charsmap
    - absl::StrCat
    - std::move
    - sentencepiece::SentencePieceNormalizer::Load
    - std::make_unique<NormalizerSpec>
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - sentencepiece::string_util::IsStructurallyValid
    - normalizer::Builder::CharsMap::emplace
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::LoadFromMap(\n    absl::Span<const
      std::pair<std::string, std::string>> norm_map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:517,1
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:518,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:519,1
    - Dst: empty
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:519,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:521,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:521,1
    - Dst: std::vector<std::pair<std::string, std::string>>*::clear
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:522,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:524,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:525,1
    - Dst: std::vector<std::pair<std::string, std::string>>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:526,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:526,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:526,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - norm_map
    argTypes:
    - std::vector<std::pair<std::string, std::string>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 529
    functionName: sentencepiece::SentencePieceNormalizer::Decompile
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - std::vector<std::pair<std::string, std::string>>*::clear
    - std::move
    - empty
    - precompiled_charsmap
    - sentencepiece::string_util::UnicodeTextToUTF8
    - RET_CHECK
    - RETURN_IF_ERROR
    - std::vector<std::pair<std::string, std::string>>*::emplace_back
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::Decompile(\n    std::vector<std::pair<std::string,
      std::string>>* norm_map) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:533,1
    - Dst: sentencepiece::SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - normalized
    argTypes:
    - absl::string_view
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 536
    functionName: sentencepiece::SentencePieceNormalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::SentencePieceNormalizer::Normalize
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::Normalize(absl::string_view
      input,\n                                                std::string* normalized)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:541,1
    - Dst: sentencepiece::SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - input
    - normalized
    - norm_to_orig
    argTypes:
    - absl::string_view
    - std::string*
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: sentencepiece::SentencePieceNormalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::SentencePieceNormalizer::Normalize
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::Normalize(\n    absl::string_view
      input, std::string* normalized,\n    std::vector<size_t>* norm_to_orig) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: sentencepiece::SentencePieceNormalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::SentencePieceNormalizer::Normalize
    linkageType: ''
    returnType: std::string
    signature: std::string SentencePieceNormalizer::Normalize(absl::string_view input)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 553
    functionName: sentencepiece::SentencePieceNormalizer::mutable_normalizer_spec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec * SentencePieceNormalizer::mutable_normalizer_spec()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:558,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: sentencepiece::SentencePieceNormalizer::serialized_model_proto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - ModelProto::SerializeAsString
    - ModelProto::mutable_normalizer_spec
    linkageType: ''
    returnType: std::string
    signature: std::string SentencePieceNormalizer::serialized_model_proto() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 564
    functionName: sentencepiece::SentencePieceNormalizer::serialized_normalizer_spec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - SerializeAsString
    linkageType: ''
    returnType: std::string
    signature: std::string SentencePieceNormalizer::serialized_normalizer_spec() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:569,1
    - Dst: empty
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:572,1
    - Dst: std::min
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:574,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:574,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:574,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:574,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:575,1
    - Dst: data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:575,1
    - Dst: remove_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:581,1
    - Dst: utf8_to_unicode_offsets
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:587,1
    - Dst: utf8_to_unicode_offsets
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:588,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:589,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:589,1
    - Dst: auto::back
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:591,1
    - Dst: std::vector<size_t>*::size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:592,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:595,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - orig
    - norm
    - norm_to_orig
    argTypes:
    - absl::string_view
    - absl::string_view
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 596
    functionName: sentencepiece::ConvertToUnicodeAlignment
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 4
    functionsReached:
    - auto::back
    - size
    - auto::empty
    - std::vector<size_t>*::size
    - remove_prefix
    - std::max<int>
    - std::move
    - empty
    - static_cast<size_t>
    - sentencepiece::string_util::OneCharLen
    - utf8_to_unicode_offsets
    - data
    - std::min
    linkageType: ''
    returnType: void
    signature: "void ConvertToUnicodeAlignment(absl::string_view orig, absl::string_view
      norm,\n                               std::vector<size_t>* norm_to_orig)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:52,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' kwargs'
    - conflicting_key
    argTypes:
    - std::unordered_map<std::string, std::string>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: sentencepiece::ContainsNormalizerKeys
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: "bool ContainsNormalizerKeys(\n    const std::unordered_map<std::string,
      std::string>& kwargs,\n    std::string* conflicting_key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:52,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' kwargs'
    - conflicting_key
    argTypes:
    - std::unordered_map<std::string, std::string>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 60
    functionName: sentencepiece::ContainsNormalizerKeys
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - find
    linkageType: ''
    returnType: bool
    signature: "bool ContainsNormalizerKeys(\n    const std::unordered_map<std::string,
      std::string>& kwargs,\n    std::string* conflicting_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Impl>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: sentencepiece::TrainerComponents::TrainerComponents
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Impl>
    linkageType: ''
    returnType: void
    signature: void TrainerComponents::TrainerComponents()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: TrainerComponents::~TrainerComponents()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerComponents::~TrainerComponents()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Impl>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:78,1
    - Dst: std::make_unique<Impl>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TrainerComponents
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: sentencepiece::TrainerComponents::TrainerComponents
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Impl>
    linkageType: ''
    returnType: void
    signature: void TrainerComponents::TrainerComponents(const TrainerComponents&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TrainerComponents
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: sentencepiece::TrainerComponents::TrainerComponents
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerComponents::TrainerComponents(TrainerComponents&& other)
      noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Impl>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:88,1
    - Dst: std::make_unique<Impl>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:91,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TrainerComponents
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 99
    functionName: "& TrainerComponents::operator=(\n    const TrainerComponents& other)"
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Impl>
    linkageType: ''
    returnType: TrainerComponents
    signature: "TrainerComponents & TrainerComponents::operator=(\n    const TrainerComponents&
      other)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: sentencepiece::TrainerComponents::mutable_trainer_spec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TrainerSpec
    signature: TrainerSpec * TrainerComponents::mutable_trainer_spec()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: '& TrainerComponents::trainer_spec() const'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: TrainerSpec
    signature: TrainerSpec & TrainerComponents::trainer_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: sentencepiece::TrainerComponents::mutable_normalizer_spec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec * TrainerComponents::mutable_normalizer_spec()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: '& TrainerComponents::normalizer_spec() const'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec & TrainerComponents::normalizer_spec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 122
    functionName: sentencepiece::TrainerComponents::mutable_denormalizer_spec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec * TrainerComponents::mutable_denormalizer_spec()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: '& TrainerComponents::denormalizer_spec() const'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec & TrainerComponents::denormalizer_spec() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:131,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:132,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:132,1
    - Dst: denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:133,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:134,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:134,1
    - Dst: sentencepiece::TrainerFactory::Create
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:136,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:136,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:139,1
    - Dst: PrintProto
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:139,1
    - Dst: trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:139,1
    - Dst: PrintProto
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:140,1
    - Dst: auto::precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:141,1
    - Dst: PrintProto
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:142,1
    - Dst: LOG
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:147,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:151,1
    - Dst: auto::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:151,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:152,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:154,1
    - Dst: auto::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:154,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - ' components'
    - serialized_model_proto
    argTypes:
    - TrainerComponents
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 158
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 70
    functionsReached:
    - auto::precompiled_charsmap
    - absl::OkStatus
    - absl::StrCat
    - auto::Train
    - sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
    - LOG
    - trainer_spec
    - normalizer_spec
    - ModelProto::SerializeAsString
    - sentencepiece::TrainerFactory::Create
    - PrintProto
    - denormalizer_spec
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(const TrainerComponents&
      components,\n                                         std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:164,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:164,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:166,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:166,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - args
    - ' components'
    - serialized_model_proto
    argTypes:
    - absl::string_view
    - TrainerComponents
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 168
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 71
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - sentencepiece::SentencePieceTrainer::Train
    - LOG
    - absl::string_view::data
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(absl::string_view args,\n
      \                                        const TrainerComponents& components,\n
      \                                        std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:175,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:175,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' kwargs'
    - ' components'
    - serialized_model_proto
    argTypes:
    - std::unordered_map<std::string, std::string>
    - TrainerComponents
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 72
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - sentencepiece::SentencePieceTrainer::Train
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(\n    const std::unordered_map<std::string,
      std::string>& kwargs,\n    const TrainerComponents& components, std::string*
      serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerComponents::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:184,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' trainer_spec'
    - sentence_iterator
    - serialized_model_proto
    argTypes:
    - TrainerSpec
    - SentenceIterator*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 73
    functionsReached:
    - sentencepiece::SentencePieceTrainer::Train
    - TrainerComponents::mutable_trainer_spec
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(const TrainerSpec& trainer_spec,\n
      \                                        SentenceIterator* sentence_iterator,\n
      \                                        std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerComponents::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:194,1
    - Dst: TrainerComponents::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:195,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - sentence_iterator
    - serialized_model_proto
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - SentenceIterator*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 198
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 74
    functionsReached:
    - TrainerComponents::mutable_normalizer_spec
    - sentencepiece::SentencePieceTrainer::Train
    - TrainerComponents::mutable_trainer_spec
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(const TrainerSpec& trainer_spec,\n
      \                                        const NormalizerSpec& normalizer_spec,\n
      \                                        SentenceIterator* sentence_iterator,\n
      \                                        std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TrainerComponents::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:206,1
    - Dst: TrainerComponents::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:207,1
    - Dst: TrainerComponents::mutable_denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:208,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - ' trainer_spec'
    - ' normalizer_spec'
    - ' denormalizer_spec'
    - sentence_iterator
    - serialized_model_proto
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    - SentenceIterator*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 211
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 75
    functionsReached:
    - TrainerComponents::mutable_denormalizer_spec
    - TrainerComponents::mutable_normalizer_spec
    - sentencepiece::SentencePieceTrainer::Train
    - TrainerComponents::mutable_trainer_spec
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(\n    const TrainerSpec&
      trainer_spec, const NormalizerSpec& normalizer_spec,\n    const NormalizerSpec&
      denormalizer_spec,\n    SentenceIterator* sentence_iterator, std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - args
    - sentence_iterator
    - serialized_model_proto
    argTypes:
    - absl::string_view
    - SentenceIterator*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 76
    functionsReached:
    - sentencepiece::SentencePieceTrainer::Train
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(absl::string_view args,\n
      \                                        SentenceIterator* sentence_iterator,\n
      \                                        std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' kwargs'
    - sentence_iterator
    - serialized_model_proto
    argTypes:
    - std::unordered_map<std::string, std::string>
    - SentenceIterator*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 229
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 77
    functionsReached:
    - sentencepiece::SentencePieceTrainer::Train
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(\n    const std::unordered_map<std::string,
      std::string>& kwargs,\n    SentenceIterator* sentence_iterator, std::string*
      serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:234,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:234,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:234,1
    - Dst: CHECK_OK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:235,1
    - Dst: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:235,1
    - Dst: NormalizerSpec::name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:236,1
    - Dst: NormalizerSpec::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 238
    functionName: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 8
    functionsReached:
    - sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
    - CHECK_OK
    - NormalizerSpec::name
    - NormalizerSpec::mutable_precompiled_charsmap
    - absl::string_view::size
    - absl::string_view::data
    - NormalizerSpec::set_name
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec SentencePieceTrainer::GetNormalizerSpec(absl::string_view
      name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:244,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:245,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:246,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:248,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:248,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:251,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:252,1
    - Dst: find
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:254,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:256,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:258,1
    - Dst: substr
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:258,1
    - Dst: std::string
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:259,1
    - Dst: substr
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:259,1
    - Dst: std::unordered_map::emplace
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:261,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:264,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - args
    - trainer_spec
    - normalizer_spec
    - denormalizer_spec
    argTypes:
    - absl::string_view
    - TrainerSpec*
    - NormalizerSpec*
    - NormalizerSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 266
    functionName: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 16
    functionsReached:
    - absl::OkStatus
    - substr
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - absl::string_view::empty
    - RET_CHECK
    - std::unordered_map::emplace
    - absl::ConsumePrefix
    - absl::StrSplit
    - std::string
    - find
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::MergeSpecsFromArgs(\n    absl::string_view
      args, TrainerSpec* trainer_spec,\n    NormalizerSpec* normalizer_spec, NormalizerSpec*
      denormalizer_spec)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:273,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:274,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:275,1
    - Dst: find
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:277,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:278,1
    - Dst: ContainsNormalizerKeys
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:282,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:283,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:284,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:291,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:293,1
    - Dst: sentencepiece::NormalizerSpec::ParseFromString
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:293,1
    - Dst: NormalizerSpec*::set_name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:304,1
    - Dst: NormalizerSpec*::set_normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:307,1
    - Dst: NormalizerSpec*::set_add_dummy_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:308,1
    - Dst: NormalizerSpec*::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:309,1
    - Dst: NormalizerSpec*::set_escape_whitespaces
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:310,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:314,1
    - Dst: absl::SimpleAtoi
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:314,1
    - Dst: SetMinLogLevel
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:315,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:319,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:320,1
    - Dst: absl::IsNotFound
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:321,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:323,1
    - Dst: auto::ok
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:324,1
    - Dst: absl::IsNotFound
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:325,1
    - Dst: absl::IsNotFound
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:328,1
    - Dst: absl::IsNotFound
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:328,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:333,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 45
    argCount: 4
    argNames:
    - ' kwargs'
    - trainer_spec
    - normalizer_spec
    - denormalizer_spec
    argTypes:
    - std::unordered_map<std::string, std::string>
    - TrainerSpec*
    - NormalizerSpec*
    - NormalizerSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 334
    functionName: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 16
    functionsReached:
    - absl::OkStatus
    - absl::InvalidArgumentError
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - sentencepiece::NormalizerSpec::ParseFromString
    - NormalizerSpec*::set_escape_whitespaces
    - SetMinLogLevel
    - NormalizerSpec*::set_name
    - absl::SimpleAtoi
    - absl::IsNotFound
    - absl::StrCat
    - auto::ok
    - NormalizerSpec*::set_remove_extra_whitespaces
    - RET_CHECK
    - end
    - ContainsNormalizerKeys
    - find
    - NormalizerSpec*::set_normalization_rule_tsv
    - NormalizerSpec*::set_add_dummy_prefix
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::MergeSpecsFromArgs(\n    const
      std::unordered_map<std::string, std::string>& kwargs,\n    TrainerSpec* trainer_spec,
      NormalizerSpec* normalizer_spec,\n    NormalizerSpec* denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:340,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:341,1
    - Dst: TrainerComponents*::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:341,1
    - Dst: TrainerComponents*::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:342,1
    - Dst: TrainerComponents*::mutable_denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' kwargs'
    - components
    argTypes:
    - std::unordered_map<std::string, std::string>
    - TrainerComponents*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 344
    functionName: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 17
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - TrainerComponents*::mutable_denormalizer_spec
    - TrainerComponents*::mutable_trainer_spec
    - TrainerComponents*::mutable_normalizer_spec
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::MergeSpecsFromArgs(\n    const
      std::unordered_map<std::string, std::string>& kwargs,\n    TrainerComponents*
      components)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:349,1
    - Dst: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:350,1
    - Dst: TrainerComponents*::mutable_trainer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:350,1
    - Dst: TrainerComponents*::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:351,1
    - Dst: TrainerComponents*::mutable_denormalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - args
    - components
    argTypes:
    - absl::string_view
    - TrainerComponents*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 18
    functionsReached:
    - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
    - TrainerComponents*::mutable_denormalizer_spec
    - TrainerComponents*::mutable_trainer_spec
    - TrainerComponents*::mutable_normalizer_spec
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::MergeSpecsFromArgs(\n    absl::string_view
      args, TrainerComponents* components)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:359,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' values'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: sentencepiece::VectorSentenceIterator::VectorSentenceIterator
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void VectorSentenceIterator(const std::vector<std::string>& values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: ~VectorSentenceIterator()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~VectorSentenceIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: sentencepiece::VectorSentenceIterator::done
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    functionName: sentencepiece::VectorSentenceIterator::Next
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: '& value() const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: sentencepiece::VectorSentenceIterator::status
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:359,1
    - Dst: end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' values'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: sentencepiece::VectorSentenceIterator::VectorSentenceIterator
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void VectorSentenceIterator(const std::vector<std::string>& values)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 360
    functionName: ~VectorSentenceIterator()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~VectorSentenceIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    functionName: sentencepiece::VectorSentenceIterator::done
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    functionName: sentencepiece::VectorSentenceIterator::Next
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: '& value() const override'
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 364
    functionName: sentencepiece::VectorSentenceIterator::status
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - args
    - ' sentences'
    - serialized_model_proto
    argTypes:
    - absl::string_view
    - std::vector<std::string>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 378
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 78
    functionsReached:
    - sentencepiece::SentencePieceTrainer::Train
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(\n    absl::string_view args,
      const std::vector<std::string>& sentences,\n    std::string* serialized_model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' kwargs'
    - ' sentences'
    - serialized_model_proto
    argTypes:
    - std::unordered_map<std::string, std::string>
    - std::vector<std::string>
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 387
    functionName: sentencepiece::SentencePieceTrainer::Train
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 79
    functionsReached:
    - sentencepiece::SentencePieceTrainer::Train
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::Train(\n    const std::unordered_map<std::string,
      std::string>& kwargs,\n    const std::vector<std::string>& sentences,\n    std::string*
      serialized_model_proto)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:392,1
    - Dst: NormalizerSpec*::normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:394,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:395,1
    - Dst: NormalizerSpec*::precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:395,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:398,1
    - Dst: sentencepiece::normalizer::Builder::LoadCharsMap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:398,1
    - Dst: NormalizerSpec*::normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:399,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:400,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:400,1
    - Dst: NormalizerSpec*::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:401,1
    - Dst: NormalizerSpec*::set_name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:402,1
    - Dst: NormalizerSpec*::name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:404,1
    - Dst: NormalizerSpec*::set_name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:405,1
    - Dst: NormalizerSpec*::precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:407,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:408,1
    - Dst: sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:408,1
    - Dst: NormalizerSpec*::name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:409,1
    - Dst: NormalizerSpec*::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:410,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:414,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - normalizer_spec
    - is_denormalizer
    argTypes:
    - NormalizerSpec*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 415
    functionName: sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 5
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
    - NormalizerSpec*::mutable_precompiled_charsmap
    - NormalizerSpec*::normalization_rule_tsv
    - NormalizerSpec*::set_name
    - sentencepiece::normalizer::Builder::LoadCharsMap
    - NormalizerSpec*::precompiled_charsmap
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - RET_CHECK
    - NormalizerSpec*::name
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::PopulateNormalizerSpec(\n    NormalizerSpec*
      normalizer_spec, bool is_denormalizer)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unordered_map::find
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:425,1
    - Dst: absl::AsciiStrToLower
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:425,1
    - Dst: std::unordered_map::end
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:426,1
    - Dst: TrainerSpec*::set_model_type
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:427,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:428,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - spec
    argTypes:
    - absl::string_view
    - TrainerSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 433
    functionName: sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 4
    functionsReached:
    - absl::OkStatus
    - std::unordered_map::end
    - absl::AsciiStrToLower
    - absl::StatusBuilder
    - std::unordered_map::find
    - TrainerSpec*::set_model_type
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::PopulateModelTypeFromString(\n
      \   absl::string_view type, TrainerSpec* spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NormalizerSpec>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:436,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 436
    functionName: sentencepiece::SentencePieceNormalizer::SentencePieceNormalizer
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<NormalizerSpec>
    linkageType: ''
    returnType: void
    signature: void SentencePieceNormalizer::SentencePieceNormalizer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 437
    functionName: SentencePieceNormalizer::~SentencePieceNormalizer()
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SentencePieceNormalizer::~SentencePieceNormalizer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:441,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:442,1
    - Dst: std::make_unique<NormalizerSpec>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:442,1
    - Dst: std::unique_ptr<ModelProto>::normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - model_proto
    argTypes:
    - std::unique_ptr<ModelProto>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 443
    functionName: sentencepiece::SentencePieceNormalizer::Load
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 8
    functionsReached:
    - sentencepiece::SentencePieceNormalizer::Load
    - std::make_unique<NormalizerSpec>
    - std::unique_ptr<ModelProto>::normalizer_spec
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::Load(\n    std::unique_ptr<ModelProto>
      model_proto)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:447,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:448,1
    - Dst: std::make_unique<normalizer::Normalizer>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:449,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:450,1
    - Dst: status
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - normalizer_spec
    argTypes:
    - std::unique_ptr<NormalizerSpec>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 452
    functionName: sentencepiece::SentencePieceNormalizer::Load
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 8
    functionsReached:
    - status
    - std::make_unique<normalizer::Normalizer>
    - std::move
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::Load(\n    std::unique_ptr<NormalizerSpec>
      normalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:455,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:456,1
    - Dst: sentencepiece::io::LoadModelProto
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:456,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:456,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:457,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 454
    functionDepth: 2
    functionLinenumber: 454
    functionLinenumberEnd: 458
    functionName: sentencepiece::SentencePieceNormalizer::Load
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 9
    functionsReached:
    - auto::get
    - sentencepiece::io::LoadModelProto
    - std::make_unique<ModelProto>
    - std::move
    - sentencepiece::SentencePieceNormalizer::Load
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status SentencePieceNormalizer::Load(absl::string_view filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ModelProto>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:462,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:463,1
    - Dst: auto::ParseFromArray
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:463,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:463,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:463,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:464,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - serialized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 460
    functionDepth: 2
    functionLinenumber: 460
    functionLinenumberEnd: 465
    functionName: sentencepiece::SentencePieceNormalizer::LoadFromSerializedProto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<ModelProto>
    - std::move
    - sentencepiece::SentencePieceNormalizer::Load
    - absl::string_view::size
    - RET_CHECK
    - absl::string_view::data
    - auto::ParseFromArray
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::LoadFromSerializedProto(\n    absl::string_view
      serialized)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NormalizerSpec>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:469,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:470,1
    - Dst: auto::ParseFromArray
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:470,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:470,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:470,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:471,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - serialized
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 472
    functionName: sentencepiece::SentencePieceNormalizer::LoadFromSerializedNormalizerSpec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - std::move
    - sentencepiece::SentencePieceNormalizer::Load
    - std::make_unique<NormalizerSpec>
    - absl::string_view::size
    - RET_CHECK
    - absl::string_view::data
    - auto::ParseFromArray
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::LoadFromSerializedNormalizerSpec(\n
      \   absl::string_view serialized)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NormalizerSpec>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:476,1
    - Dst: auto::set_normalization_rule_tsv
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:477,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:477,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:477,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:478,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:478,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:478,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:479,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 474
    functionDepth: 4
    functionLinenumber: 474
    functionLinenumberEnd: 480
    functionName: sentencepiece::SentencePieceNormalizer::LoadFromRuleTSV
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
    - std::move
    - sentencepiece::SentencePieceNormalizer::Load
    - std::make_unique<NormalizerSpec>
    - absl::string_view::size
    - absl::string_view::data
    - RETURN_IF_ERROR
    - auto::set_normalization_rule_tsv
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::LoadFromRuleTSV(\n    absl::string_view
      filename)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<NormalizerSpec>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:483,1
    - Dst: auto::set_name
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:484,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:484,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:484,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:485,1
    - Dst: sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:485,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:485,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:486,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - name
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 482
    functionDepth: 4
    functionLinenumber: 482
    functionLinenumberEnd: 487
    functionName: sentencepiece::SentencePieceNormalizer::LoadFromRuleName
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - auto::get
    - sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
    - std::move
    - sentencepiece::SentencePieceNormalizer::Load
    - std::make_unique<NormalizerSpec>
    - absl::string_view::size
    - auto::set_name
    - absl::string_view::data
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status SentencePieceNormalizer::LoadFromRuleName(absl::string_view
      name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:493,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:494,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:495,1
    - Dst: sentencepiece::string_util::IsStructurallyValid
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:497,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:498,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:499,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:501,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:502,1
    - Dst: normalizer::Builder::CharsMap::emplace
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:503,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:503,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:503,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:504,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:505,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:509,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:509,1
    - Dst: std::make_unique<NormalizerSpec>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:510,1
    - Dst: auto::set_precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:511,1
    - Dst: sentencepiece::SentencePieceNormalizer::Load
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:512,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - norm_map
    argTypes:
    - absl::Span<const std::pair<std::string, std::string>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 513
    functionName: sentencepiece::SentencePieceNormalizer::LoadFromMap
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - absl::InvalidArgumentError
    - auto::set_precompiled_charsmap
    - absl::StrCat
    - std::move
    - sentencepiece::SentencePieceNormalizer::Load
    - std::make_unique<NormalizerSpec>
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - sentencepiece::string_util::IsStructurallyValid
    - normalizer::Builder::CharsMap::emplace
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::LoadFromMap(\n    absl::Span<const
      std::pair<std::string, std::string>> norm_map)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:517,1
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:518,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:519,1
    - Dst: empty
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:519,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:521,1
    - Dst: sentencepiece::normalizer::Builder::DecompileCharsMap
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:521,1
    - Dst: std::vector<std::pair<std::string, std::string>>*::clear
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:522,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:524,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:525,1
    - Dst: std::vector<std::pair<std::string, std::string>>*::emplace_back
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:526,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:526,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:526,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - norm_map
    argTypes:
    - std::vector<std::pair<std::string, std::string>>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 529
    functionName: sentencepiece::SentencePieceNormalizer::Decompile
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Builder::DecompileCharsMap
    - std::vector<std::pair<std::string, std::string>>*::clear
    - std::move
    - empty
    - precompiled_charsmap
    - sentencepiece::string_util::UnicodeTextToUTF8
    - RET_CHECK
    - RETURN_IF_ERROR
    - std::vector<std::pair<std::string, std::string>>*::emplace_back
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::Decompile(\n    std::vector<std::pair<std::string,
      std::string>>* norm_map) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:533,1
    - Dst: sentencepiece::SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - normalized
    argTypes:
    - absl::string_view
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 536
    functionName: sentencepiece::SentencePieceNormalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 4
    functionsReached:
    - sentencepiece::SentencePieceNormalizer::Normalize
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::Normalize(absl::string_view
      input,\n                                                std::string* normalized)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:541,1
    - Dst: sentencepiece::SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - input
    - normalized
    - norm_to_orig
    argTypes:
    - absl::string_view
    - std::string*
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 543
    functionName: sentencepiece::SentencePieceNormalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 5
    functionsReached:
    - sentencepiece::SentencePieceNormalizer::Normalize
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceNormalizer::Normalize(\n    absl::string_view
      input, std::string* normalized,\n    std::vector<size_t>* norm_to_orig) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceNormalizer::Normalize
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 549
    functionName: sentencepiece::SentencePieceNormalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 6
    functionsReached:
    - sentencepiece::SentencePieceNormalizer::Normalize
    linkageType: ''
    returnType: std::string
    signature: std::string SentencePieceNormalizer::Normalize(absl::string_view input)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 551
    functionDepth: 0
    functionLinenumber: 551
    functionLinenumberEnd: 553
    functionName: sentencepiece::SentencePieceNormalizer::mutable_normalizer_spec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec * SentencePieceNormalizer::mutable_normalizer_spec()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::mutable_normalizer_spec
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:558,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:559,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: sentencepiece::SentencePieceNormalizer::serialized_model_proto
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - ModelProto::SerializeAsString
    - ModelProto::mutable_normalizer_spec
    linkageType: ''
    returnType: std::string
    signature: std::string SentencePieceNormalizer::serialized_model_proto() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SerializeAsString
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 564
    functionName: sentencepiece::SentencePieceNormalizer::serialized_normalizer_spec
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 0
    functionsReached:
    - SerializeAsString
    linkageType: ''
    returnType: std::string
    signature: std::string SentencePieceNormalizer::serialized_normalizer_spec() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:569,1
    - Dst: empty
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:572,1
    - Dst: std::min
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:574,1
    - Dst: size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:574,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:574,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:574,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:575,1
    - Dst: data
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:575,1
    - Dst: remove_prefix
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:581,1
    - Dst: utf8_to_unicode_offsets
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:587,1
    - Dst: utf8_to_unicode_offsets
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:588,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:589,1
    - Dst: auto::empty
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:589,1
    - Dst: auto::back
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:591,1
    - Dst: std::vector<size_t>*::size
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:592,1
    - Dst: std::move
      Src: /src/sentencepiece/src/sentencepiece_trainer.cc:595,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 3
    argNames:
    - orig
    - norm
    - norm_to_orig
    argTypes:
    - absl::string_view
    - absl::string_view
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 596
    functionName: sentencepiece::ConvertToUnicodeAlignment
    functionSourceFile: /src/sentencepiece/src/sentencepiece_trainer.cc
    functionUses: 4
    functionsReached:
    - auto::back
    - size
    - auto::empty
    - std::vector<size_t>*::size
    - remove_prefix
    - std::max<int>
    - std::move
    - empty
    - static_cast<size_t>
    - sentencepiece::string_util::OneCharLen
    - utf8_to_unicode_offsets
    - data
    - std::min
    linkageType: ''
    returnType: void
    signature: "void ConvertToUnicodeAlignment(absl::string_view orig, absl::string_view
      norm,\n                               std::vector<size_t>* norm_to_orig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:33,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:36,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:37,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:38,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:39,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:40,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: sentencepiece::word::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:48,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:49,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/word_model_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: sentencepiece::word::AddPiece
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:54,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:56,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:57,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:58,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:59,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:60,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:61,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:62,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:75,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult::empty
    - Model::Encode
    - sentencepiece::word::AddPiece
    - EncodeResult::size
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_EQ
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:33,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:36,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:37,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:38,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:39,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:40,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: sentencepiece::word::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 2
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:48,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:49,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/word_model_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: sentencepiece::word::AddPiece
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 1
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:54,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:56,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:57,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:58,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:59,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:60,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:61,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:62,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:75,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult::empty
    - Model::Encode
    - sentencepiece::word::AddPiece
    - EncodeResult::size
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_EQ
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:33,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:36,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:37,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:38,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:39,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:40,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: sentencepiece::word::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 4
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:48,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:49,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/word_model_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: sentencepiece::word::AddPiece
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 2
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:54,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:56,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:57,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:58,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:59,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:60,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:61,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:62,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:75,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult::empty
    - Model::Encode
    - sentencepiece::word::AddPiece
    - EncodeResult::size
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_EQ
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:33,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:36,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:37,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:38,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:39,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:40,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: sentencepiece::word::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 6
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:48,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:49,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/word_model_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: sentencepiece::word::AddPiece
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 3
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:54,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:56,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:57,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:58,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:59,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:60,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:61,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:62,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:75,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult::empty
    - Model::Encode
    - sentencepiece::word::AddPiece
    - EncodeResult::size
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_EQ
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:33,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:36,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:37,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:38,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:39,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:40,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: sentencepiece::word::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 8
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:48,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:49,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/word_model_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: sentencepiece::word::AddPiece
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 4
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:54,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:56,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:57,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:58,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:59,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:60,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:61,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:62,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:75,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult::empty
    - Model::Encode
    - sentencepiece::word::AddPiece
    - EncodeResult::size
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_EQ
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:33,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:36,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:37,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:38,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:39,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:40,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: sentencepiece::word::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 10
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:48,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:49,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/word_model_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: sentencepiece::word::AddPiece
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 5
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:54,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:56,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:57,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:58,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:59,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:60,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:61,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:62,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:75,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult::empty
    - Model::Encode
    - sentencepiece::word::AddPiece
    - EncodeResult::size
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_EQ
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:33,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:36,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:37,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:38,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:39,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:40,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: sentencepiece::word::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 12
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:48,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:49,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/word_model_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: sentencepiece::word::AddPiece
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 6
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:54,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:56,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:57,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:58,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:59,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:60,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:61,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:62,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:75,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult::empty
    - Model::Encode
    - sentencepiece::word::AddPiece
    - EncodeResult::size
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_EQ
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, NotSupportedTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:32,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:33,1
    - Dst: ModelProto::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:34,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:36,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:37,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:38,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:39,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/word_model_test.cc:40,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: sentencepiece::word::MakeBaseModelProto
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 14
    functionsReached:
    - auto*::set_type
    - auto*::set_piece
    - ModelProto::add_pieces
    linkageType: ''
    returnType: ModelProto
    signature: ModelProto MakeBaseModelProto()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/word_model_test.cc:48,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/word_model_test.cc:49,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/word_model_test.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - model_proto
    - piece
    argTypes:
    - ModelProto*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: sentencepiece::word::AddPiece
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 7
    functionsReached:
    - ModelProto*::add_pieces
    - auto*::set_score
    - auto*::set_piece
    linkageType: ''
    returnType: void
    signature: "void AddPiece(ModelProto *model_proto, const std::string &piece,\n
      \             float score = 0.0)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:54,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:56,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:57,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:58,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:59,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:60,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:61,1
    - Dst: sentencepiece::word::AddPiece
      Src: /src/sentencepiece/src/word_model_test.cc:62,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:68,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: EncodeResult::empty
      Src: /src/sentencepiece/src/word_model_test.cc:69,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:73,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:75,1
    - Dst: Model::Encode
      Src: /src/sentencepiece/src/word_model_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EncodeResult::size
      Src: /src/sentencepiece/src/word_model_test.cc:78,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:79,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:80,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult::empty
    - Model::Encode
    - sentencepiece::word::AddPiece
    - EncodeResult::size
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_TRUE
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, EncodeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::word::MakeBaseModelProto
      Src: /src/sentencepiece/src/word_model_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: NBestEncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: Model::NBestEncode
      Src: /src/sentencepiece/src/word_model_test.cc:87,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: EncodeResult
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    - Dst: Model::SampleEncode
      Src: /src/sentencepiece/src/word_model_test.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_test.cc
    functionUses: 0
    functionsReached:
    - EncodeResult
    - NBestEncodeResult
    - Model::SampleEncode
    - sentencepiece::word::MakeBaseModelProto
    - EXPECT_EQ
    - Model::NBestEncode
    linkageType: ''
    returnType: void
    signature: void TEST(WordModelTest, NotSupportedTest)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:31,1
    - Dst: sentencepiece::ParseCommandLineFlags
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:32,1
    - Dst: sentencepiece::SentencePieceProcessor::SentencePieceProcessor
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:34,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:35,1
    - Dst: sentencepiece::SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:35,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:35,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:38,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:38,1
    - Dst: QCHECK_OK
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:39,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:39,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:41,1
    - Dst: sentencepiece::SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:42,1
    - Dst: piece
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:44,1
    - Dst: score
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:44,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:45,1
    - Dst: std::ostringstream::str
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:45,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:47,1
    - Dst: sentencepiece::SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:48,1
    - Dst: sentencepiece::SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:50,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:51,1
    - Dst: std::ostringstream::str
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:51,1
    - Dst: LOG
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:54,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_export_vocab_main.cc:55,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 59
    functionName: main
    functionSourceFile: /src/sentencepiece/src/spm_export_vocab_main.cc
    functionUses: 0
    functionsReached:
    - score
    - std::ostringstream::str
    - auto::status
    - piece
    - sentencepiece::SentencePieceProcessor::Load
    - LOG
    - sentencepiece::SentencePieceProcessor::model_proto
    - auto::WriteLine
    - sentencepiece::SentencePieceProcessor::SentencePieceProcessor
    - sentencepiece::ParseCommandLineFlags
    - sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
    - absl::GetFlag
    - QCHECK_OK
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Trainer::Symbol::ToString() const
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeTextToUTF8
    linkageType: ''
    returnType: std::string
    signature: std::string Trainer::Symbol::ToString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:43,1
    - Dst: CHECK_GT
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:44,1
    - Dst: find
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:45,1
    - Dst: end
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:46,1
    - Dst: std::make_unique<Symbol>
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:49,1
    - Dst: auto::chars::push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:52,1
    - Dst: sentencepiece::port::InsertOrDie
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:54,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:54,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:55,1
    - Dst: push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:56,1
    - Dst: std::move
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: sentencepiece::bpe::Trainer::GetCharSymbol
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Symbol>
    - auto::get
    - std::move
    - push_back
    - sentencepiece::port::FindWithDefault
    - CHECK_GT
    - auto::chars::push_back
    - end
    - find
    - sentencepiece::port::InsertOrDie
    linkageType: ''
    returnType: Trainer::Symbol
    signature: Trainer::Symbol * Trainer::GetCharSymbol(char32_t c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::HashOf
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:66,1
    - Dst: find
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:67,1
    - Dst: end
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:68,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:72,1
    - Dst: Symbol*::chars::empty
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:72,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:73,1
    - Dst: Symbol*::chars::empty
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:73,1
    - Dst: string_util::UnicodeText::push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:76,1
    - Dst: string_util::UnicodeText::push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:79,1
    - Dst: IsValidSentencePiece
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:83,1
    - Dst: std::make_unique<Symbol>
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:87,1
    - Dst: sentencepiece::port::InsertOrDie
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:92,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:92,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:93,1
    - Dst: push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:94,1
    - Dst: std::move
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:94,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - Symbol*
    - Symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 96
    functionName: sentencepiece::bpe::Trainer::GetPairSymbol
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 0
    functionsReached:
    - IsValidSentencePiece
    - string_util::UnicodeText::push_back
    - std::make_unique<Symbol>
    - CHECK
    - auto::get
    - std::move
    - push_back
    - absl::HashOf
    - end
    - find
    - Symbol*::chars::empty
    - sentencepiece::port::InsertOrDie
    linkageType: ''
    returnType: Trainer::Symbol
    signature: "Trainer::Symbol * Trainer::GetPairSymbol(const Symbol* left,\n                                        const
      Symbol* right)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Symbol*::positions::begin
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:103,1
    - Dst: Symbol*::positions::end
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:103,1
    - Dst: sentencepiece::bpe::Trainer::DecodePos
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:104,1
    - Dst: Symbol*::positions::erase
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - Symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: sentencepiece::bpe::Trainer::ComputeFreq
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 0
    functionsReached:
    - Symbol*::positions::begin
    - Symbol*::positions::erase
    - Symbol*::positions::end
    - sentencepiece::bpe::Trainer::DecodePos
    linkageType: ''
    returnType: void
    signature: void Trainer::ComputeFreq(Symbol* symbol) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - sid
    - index
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: sentencepiece::bpe::Trainer::GetNextIndex
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int Trainer::GetNextIndex(int sid, int index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - sid
    - index
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: sentencepiece::bpe::Trainer::GetPrevIndex
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Trainer::GetPrevIndex(int sid, int index) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::Trainer::GetPairSymbol
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:142,1
    - Dst: auto*::positions::insert
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:144,1
    - Dst: sentencepiece::bpe::Trainer::EncodePos
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:144,1
    - Dst: push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - sid
    - left
    - right
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: sentencepiece::bpe::Trainer::AddNewPair
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::Trainer::EncodePos
    - push_back
    - auto*::positions::insert
    - sentencepiece::bpe::Trainer::GetPairSymbol
    linkageType: ''
    returnType: void
    signature: void Trainer::AddNewPair(int sid, int left, int right)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::Trainer::GetPairSymbol
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - sid
    - left
    - right
    - best
    argTypes:
    - int
    - int
    - int
    - Symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: sentencepiece::bpe::Trainer::ResetFreq
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::bpe::Trainer::GetPairSymbol
    linkageType: ''
    returnType: void
    signature: void Trainer::ResetFreq(int sid, int left, int right, const Symbol*
      best)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::Trainer::DecodePos
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:167,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:174,1
    - Dst: sentencepiece::bpe::Trainer::GetNextIndex
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:178,1
    - Dst: sentencepiece::bpe::Trainer::GetPrevIndex
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:179,1
    - Dst: sentencepiece::bpe::Trainer::ResetFreq
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:182,1
    - Dst: sentencepiece::bpe::Trainer::ResetFreq
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:183,1
    - Dst: sentencepiece::bpe::Trainer::AddNewPair
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:190,1
    - Dst: sentencepiece::bpe::Trainer::AddNewPair
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:191,1
    - Dst: erase
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:195,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - Symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 199
    functionName: sentencepiece::bpe::Trainer::AcceptSymbol
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - erase
    - sentencepiece::bpe::Trainer::DecodePos
    - sentencepiece::bpe::Trainer::GetPrevIndex
    - RET_CHECK
    - sentencepiece::bpe::Trainer::ResetFreq
    - sentencepiece::bpe::Trainer::AddNewPair
    - sentencepiece::bpe::Trainer::GetNextIndex
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::AcceptSymbol(Symbol* symbol)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:202,1
    - Dst: status
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:202,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:205,1
    - Dst: sentencepiece::bpe::Trainer::TrainFast
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:206,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:210,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:210,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:211,1
    - Dst: model_type
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:211,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:213,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:214,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:215,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:217,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:220,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:220,1
    - Dst: split_by_whitespace
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:221,1
    - Dst: SplitSentencesByWhitespace
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:222,1
    - Dst: resize
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:226,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:226,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:227,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:229,1
    - Dst: push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:230,1
    - Dst: sentencepiece::bpe::Trainer::GetCharSymbol
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:230,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:235,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:236,1
    - Dst: sentencepiece::bpe::Trainer::AddNewPair
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:237,1
    - Dst: sentencepiece::bpe::Trainer::ComputeFreq
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:243,1
    - Dst: push
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:244,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:246,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:249,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:249,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:249,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:250,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:258,1
    - Dst: empty
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:258,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:259,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:259,1
    - Dst: empty
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:261,1
    - Dst: top
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:262,1
    - Dst: pop
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:265,1
    - Dst: pop
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:269,1
    - Dst: pop
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:273,1
    - Dst: sentencepiece::bpe::Trainer::ComputeFreq
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:274,1
    - Dst: push
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:275,1
    - Dst: pop
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:279,1
    - Dst: LOG
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:284,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:288,1
    - Dst: Symbol*::ToString
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:288,1
    - Dst: erase
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:290,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:296,1
    - Dst: Symbol*::ToString
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:296,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:297,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:297,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:299,1
    - Dst: LOG
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:300,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:301,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:302,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:302,1
    - Dst: Symbol*::ToString
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:303,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:306,1
    - Dst: sentencepiece::bpe::Trainer::AcceptSymbol
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:306,1
    - Dst: sentencepiece::bpe::Trainer::ComputeFreq
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:311,1
    - Dst: push
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:312,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:315,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:319,1
    - Dst: sentencepiece::bpe::Trainer::GetCharSymbol
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:320,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:321,1
    - Dst: Symbol*::ToString
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:321,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:322,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:322,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:325,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:326,1
    - Dst: Save
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:328,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 201
    functionDepth: 5
    functionLinenumber: 201
    functionLinenumberEnd: 329
    functionName: sentencepiece::bpe::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 0
    functionsReached:
    - RET_CHECK_GE
    - erase
    - RET_CHECK_EQ
    - empty
    - model_type
    - sentencepiece::bpe::Trainer::AddNewPair
    - LoadSentences
    - size
    - status
    - LOG
    - sentencepiece::bpe::Trainer::GetCharSymbol
    - top
    - Save
    - Symbol*::ToString
    - push
    - clear
    - split_by_whitespace
    - sentencepiece::bpe::Trainer::ComputeFreq
    - emplace_back
    - push_back
    - RET_CHECK
    - pop
    - absl::flat_hash_set::insert
    - sentencepiece::string_util::UTF8ToUnicodeText
    - resize
    - vocab_size
    - RETURN_IF_ERROR
    - Sorted
    - static_cast<float>
    - sentencepiece::bpe::Trainer::AcceptSymbol
    - sentencepiece::bpe::Trainer::TrainFast
    - static_cast<size_t>
    - escape_whitespaces
    - SplitSentencesByWhitespace
    - absl::GetFlag
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:333,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:333,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:334,1
    - Dst: model_type
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:334,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:336,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:336,1
    - Dst: PretokenizeSentences
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:337,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:340,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:340,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:340,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:341,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:342,1
    - Dst: empty
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:342,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:344,1
    - Dst: sentencepiece::nlcodec::RunFastBPEMerges
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:345,1
    - Dst: IsValidSentencePiece
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:347,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:351,1
    - Dst: sentencepiece::bpe::Trainer::GetCharSymbol
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:352,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:353,1
    - Dst: Symbol*::ToString
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:353,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:354,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:354,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:357,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:358,1
    - Dst: Save
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 361
    functionName: sentencepiece::bpe::Trainer::TrainFast
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 1
    functionsReached:
    - RET_CHECK_GE
    - IsValidSentencePiece
    - RET_CHECK_EQ
    - empty
    - model_type
    - LoadSentences
    - size
    - sentencepiece::nlcodec::RunFastBPEMerges
    - sentencepiece::bpe::Trainer::GetCharSymbol
    - Save
    - Symbol*::ToString
    - PretokenizeSentences
    - clear
    - RET_CHECK
    - vocab_size
    - RETURN_IF_ERROR
    - Sorted
    - static_cast<float>
    - escape_whitespaces
    - emplace_back
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::TrainFast()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Trainer::Symbol::ToString() const
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UnicodeTextToUTF8
    linkageType: ''
    returnType: std::string
    signature: std::string Trainer::Symbol::ToString() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:43,1
    - Dst: CHECK_GT
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:44,1
    - Dst: find
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:45,1
    - Dst: end
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:46,1
    - Dst: std::make_unique<Symbol>
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:49,1
    - Dst: auto::chars::push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:52,1
    - Dst: sentencepiece::port::InsertOrDie
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:54,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:54,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:55,1
    - Dst: push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:56,1
    - Dst: std::move
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 58
    functionName: sentencepiece::bpe::Trainer::GetCharSymbol
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 2
    functionsReached:
    - std::make_unique<Symbol>
    - auto::get
    - std::move
    - push_back
    - sentencepiece::port::FindWithDefault
    - CHECK_GT
    - auto::chars::push_back
    - end
    - find
    - sentencepiece::port::InsertOrDie
    linkageType: ''
    returnType: Trainer::Symbol
    signature: Trainer::Symbol * Trainer::GetCharSymbol(char32_t c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: absl::HashOf
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:66,1
    - Dst: find
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:67,1
    - Dst: end
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:68,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:72,1
    - Dst: Symbol*::chars::empty
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:72,1
    - Dst: CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:73,1
    - Dst: Symbol*::chars::empty
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:73,1
    - Dst: string_util::UnicodeText::push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:76,1
    - Dst: string_util::UnicodeText::push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:79,1
    - Dst: IsValidSentencePiece
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:83,1
    - Dst: std::make_unique<Symbol>
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:87,1
    - Dst: sentencepiece::port::InsertOrDie
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:92,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:92,1
    - Dst: auto::get
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:93,1
    - Dst: push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:94,1
    - Dst: std::move
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:94,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - Symbol*
    - Symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 96
    functionName: sentencepiece::bpe::Trainer::GetPairSymbol
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 2
    functionsReached:
    - IsValidSentencePiece
    - string_util::UnicodeText::push_back
    - std::make_unique<Symbol>
    - CHECK
    - auto::get
    - std::move
    - push_back
    - absl::HashOf
    - end
    - find
    - Symbol*::chars::empty
    - sentencepiece::port::InsertOrDie
    linkageType: ''
    returnType: Trainer::Symbol
    signature: "Trainer::Symbol * Trainer::GetPairSymbol(const Symbol* left,\n                                        const
      Symbol* right)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Symbol*::positions::begin
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:103,1
    - Dst: Symbol*::positions::end
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:103,1
    - Dst: sentencepiece::bpe::Trainer::DecodePos
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:104,1
    - Dst: Symbol*::positions::erase
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - Symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 116
    functionName: sentencepiece::bpe::Trainer::ComputeFreq
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 1
    functionsReached:
    - Symbol*::positions::begin
    - Symbol*::positions::erase
    - Symbol*::positions::end
    - sentencepiece::bpe::Trainer::DecodePos
    linkageType: ''
    returnType: void
    signature: void Trainer::ComputeFreq(Symbol* symbol) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:119,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - sid
    - index
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: sentencepiece::bpe::Trainer::GetNextIndex
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: int
    signature: int Trainer::GetNextIndex(int sid, int index) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - sid
    - index
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 136
    functionName: sentencepiece::bpe::Trainer::GetPrevIndex
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int Trainer::GetPrevIndex(int sid, int index) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::Trainer::GetPairSymbol
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:142,1
    - Dst: auto*::positions::insert
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:144,1
    - Dst: sentencepiece::bpe::Trainer::EncodePos
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:144,1
    - Dst: push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - sid
    - left
    - right
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 138
    functionDepth: 3
    functionLinenumber: 138
    functionLinenumberEnd: 150
    functionName: sentencepiece::bpe::Trainer::AddNewPair
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::bpe::Trainer::EncodePos
    - push_back
    - auto*::positions::insert
    - sentencepiece::bpe::Trainer::GetPairSymbol
    linkageType: ''
    returnType: void
    signature: void Trainer::AddNewPair(int sid, int left, int right)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::Trainer::GetPairSymbol
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:156,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 4
    argNames:
    - sid
    - left
    - right
    - best
    argTypes:
    - int
    - int
    - int
    - Symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 160
    functionName: sentencepiece::bpe::Trainer::ResetFreq
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::bpe::Trainer::GetPairSymbol
    linkageType: ''
    returnType: void
    signature: void Trainer::ResetFreq(int sid, int left, int right, const Symbol*
      best)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::bpe::Trainer::DecodePos
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:167,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:174,1
    - Dst: sentencepiece::bpe::Trainer::GetNextIndex
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:178,1
    - Dst: sentencepiece::bpe::Trainer::GetPrevIndex
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:179,1
    - Dst: sentencepiece::bpe::Trainer::ResetFreq
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:182,1
    - Dst: sentencepiece::bpe::Trainer::ResetFreq
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:183,1
    - Dst: sentencepiece::bpe::Trainer::AddNewPair
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:190,1
    - Dst: sentencepiece::bpe::Trainer::AddNewPair
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:191,1
    - Dst: erase
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:195,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:198,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - symbol
    argTypes:
    - Symbol*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 199
    functionName: sentencepiece::bpe::Trainer::AcceptSymbol
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 1
    functionsReached:
    - absl::OkStatus
    - erase
    - sentencepiece::bpe::Trainer::DecodePos
    - sentencepiece::bpe::Trainer::GetPrevIndex
    - RET_CHECK
    - sentencepiece::bpe::Trainer::ResetFreq
    - sentencepiece::bpe::Trainer::AddNewPair
    - sentencepiece::bpe::Trainer::GetNextIndex
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::AcceptSymbol(Symbol* symbol)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:202,1
    - Dst: status
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:202,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:205,1
    - Dst: sentencepiece::bpe::Trainer::TrainFast
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:206,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:210,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:210,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:211,1
    - Dst: model_type
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:211,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:213,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:214,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:215,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:217,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:220,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:220,1
    - Dst: split_by_whitespace
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:221,1
    - Dst: SplitSentencesByWhitespace
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:222,1
    - Dst: resize
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:226,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:226,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:227,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:229,1
    - Dst: push_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:230,1
    - Dst: sentencepiece::bpe::Trainer::GetCharSymbol
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:230,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:235,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:236,1
    - Dst: sentencepiece::bpe::Trainer::AddNewPair
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:237,1
    - Dst: sentencepiece::bpe::Trainer::ComputeFreq
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:243,1
    - Dst: push
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:244,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:246,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:249,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:249,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:249,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:250,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:258,1
    - Dst: empty
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:258,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:259,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:259,1
    - Dst: empty
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:261,1
    - Dst: top
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:262,1
    - Dst: pop
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:265,1
    - Dst: pop
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:269,1
    - Dst: pop
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:273,1
    - Dst: sentencepiece::bpe::Trainer::ComputeFreq
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:274,1
    - Dst: push
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:275,1
    - Dst: pop
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:279,1
    - Dst: LOG
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:284,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:288,1
    - Dst: Symbol*::ToString
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:288,1
    - Dst: erase
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:290,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:296,1
    - Dst: Symbol*::ToString
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:296,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:297,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:297,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:299,1
    - Dst: LOG
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:300,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:301,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:302,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:302,1
    - Dst: Symbol*::ToString
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:303,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:306,1
    - Dst: sentencepiece::bpe::Trainer::AcceptSymbol
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:306,1
    - Dst: sentencepiece::bpe::Trainer::ComputeFreq
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:311,1
    - Dst: push
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:312,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:315,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:319,1
    - Dst: sentencepiece::bpe::Trainer::GetCharSymbol
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:320,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:321,1
    - Dst: Symbol*::ToString
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:321,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:322,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:322,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:325,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:326,1
    - Dst: Save
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:328,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 201
    functionDepth: 5
    functionLinenumber: 201
    functionLinenumberEnd: 329
    functionName: sentencepiece::bpe::Trainer::Train
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 0
    functionsReached:
    - RET_CHECK_GE
    - erase
    - RET_CHECK_EQ
    - empty
    - model_type
    - sentencepiece::bpe::Trainer::AddNewPair
    - LoadSentences
    - size
    - status
    - LOG
    - sentencepiece::bpe::Trainer::GetCharSymbol
    - top
    - Save
    - Symbol*::ToString
    - push
    - clear
    - split_by_whitespace
    - sentencepiece::bpe::Trainer::ComputeFreq
    - emplace_back
    - push_back
    - RET_CHECK
    - pop
    - absl::flat_hash_set::insert
    - sentencepiece::string_util::UTF8ToUnicodeText
    - resize
    - vocab_size
    - RETURN_IF_ERROR
    - Sorted
    - static_cast<float>
    - sentencepiece::bpe::Trainer::AcceptSymbol
    - sentencepiece::bpe::Trainer::TrainFast
    - static_cast<size_t>
    - escape_whitespaces
    - SplitSentencesByWhitespace
    - absl::GetFlag
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::Train()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:333,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:333,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:334,1
    - Dst: model_type
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:334,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:336,1
    - Dst: LoadSentences
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:336,1
    - Dst: PretokenizeSentences
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:337,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:340,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:340,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:340,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:341,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:342,1
    - Dst: empty
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:342,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:344,1
    - Dst: sentencepiece::nlcodec::RunFastBPEMerges
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:345,1
    - Dst: IsValidSentencePiece
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:347,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:351,1
    - Dst: sentencepiece::bpe::Trainer::GetCharSymbol
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:352,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:353,1
    - Dst: Symbol*::ToString
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:353,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:354,1
    - Dst: size
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:354,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:357,1
    - Dst: clear
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:358,1
    - Dst: Save
      Src: /src/sentencepiece/src/bpe_model_trainer.cc:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 361
    functionName: sentencepiece::bpe::Trainer::TrainFast
    functionSourceFile: /src/sentencepiece/src/bpe_model_trainer.cc
    functionUses: 2
    functionsReached:
    - RET_CHECK_GE
    - IsValidSentencePiece
    - RET_CHECK_EQ
    - empty
    - model_type
    - LoadSentences
    - size
    - sentencepiece::nlcodec::RunFastBPEMerges
    - sentencepiece::bpe::Trainer::GetCharSymbol
    - Save
    - Symbol*::ToString
    - PretokenizeSentences
    - clear
    - RET_CHECK
    - vocab_size
    - RETURN_IF_ERROR
    - Sorted
    - static_cast<float>
    - escape_whitespaces
    - emplace_back
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status Trainer::TrainFast()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: sentencepiece::normalizer::MakeDefaultSpec
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec MakeDefaultSpec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: sentencepiece::normalizer::MakeDefaultSpec
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec MakeDefaultSpec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:48,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:49,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:50,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:53,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:54,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:55,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:56,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:57,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:58,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:59,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:62,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:65,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:68,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:70,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:74,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:74,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:75,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:75,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:76,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:76,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:77,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:77,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:79,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:79,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 81
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - sentencepiece::string_util::UnicodeCharToUTF8
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:84,1
    - Dst: auto::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:89,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:90,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:91,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:94,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:95,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:96,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:97,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:98,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:99,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:100,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - auto::set_add_dummy_prefix
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeWithoutDummyPrefixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:104,1
    - Dst: TrainerSpec::set_treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/normalizer_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:109,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:110,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:111,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:113,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:114,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:115,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:116,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - TrainerSpec::set_treat_whitespace_as_suffix
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeTreatWSAsSuffixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:120,1
    - Dst: auto::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:125,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:125,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - EXPECT_EQ
    - Normalizer::Normalize
    - auto::set_remove_extra_whitespaces
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeWithoutRemoveExtraWhitespacesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:137,1
    - Dst: auto::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:138,1
    - Dst: auto::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:139,1
    - Dst: auto::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:144,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:145,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:146,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:149,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:150,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:151,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:152,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - auto::set_remove_extra_whitespaces
    - auto::set_add_dummy_prefix
    - EXPECT_EQ
    - Normalizer::Normalize
    - sentencepiece::normalizer::MakeDefaultSpec
    - auto::set_escape_whitespaces
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeWithoutEscapeWhitespacesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/normalizer_test.cc:160,1
    - Dst: Builder::Chars::push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:161,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/normalizer_test.cc:163,1
    - Dst: push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:164,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:170,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:171,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:172,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:173,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:176,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:177,1
    - Dst: NormalizerSpec::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:183,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:184,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:185,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:186,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:187,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:187,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:188,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:188,1
    - Dst: NormalizerSpec::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:191,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:193,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:194,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:197,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:197,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:198,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:199,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:200,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:200,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:201,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:201,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:202,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:202,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:206,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:210,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:211,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:212,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:213,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:213,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:214,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:215,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:215,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:219,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:223,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:224,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:225,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:226,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:227,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:228,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:228,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:232,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:233,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:236,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:237,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:238,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:239,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:239,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:240,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:241,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:241,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:264,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:265,1
    - Dst: NormalizerSpec::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:268,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 270
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - Builder::Chars::push_back
    - NormalizerSpec::set_add_dummy_prefix
    - NormalizerSpec::mutable_precompiled_charsmap
    - NormalizerSpec::set_escape_whitespaces
    - push_back
    - EXPECT_TRUE
    - AddRule
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - EXPECT_EQ
    - Normalizer::Normalize
    - NormalizerSpec::set_remove_extra_whitespaces
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizeTest, NomalizeWithSpaceContainedRules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:273,1
    - Dst: auto::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:274,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:276,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:277,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:278,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:279,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:279,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:280,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - auto::set_add_dummy_prefix
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeReplacementChar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:287,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:292,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:292,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:303,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:308,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:308,1
    - Dst: LOG
      Src: /src/sentencepiece/src/normalizer_test.cc:309,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:320,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:325,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:325,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:326,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:333,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:338,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:338,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:339,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:345,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:350,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:350,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:351,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 363
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - LOG
    - EXPECT_TRUE
    - EXPECT_EQ
    - Normalizer::Normalize
    - sentencepiece::normalizer::MakeDefaultSpec
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeFullTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:387,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:391,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:393,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/normalizer_test.cc:393,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:394,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:395,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:396,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 399
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - absl::Status::ok
    - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    - EXPECT_EQ
    - EXPECT_FALSE
    - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, EncodeDecodePrecompiledCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/normalizer_test.cc:411,1
    - Dst: std::string
      Src: /src/sentencepiece/src/normalizer_test.cc:411,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:413,1
    - Dst: c_str
      Src: /src/sentencepiece/src/normalizer_test.cc:413,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:414,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: Darts::DoubleArray::build
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: const_cast<char**>
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer_test.cc:419,1
    - Dst: static_cast<const char*>
      Src: /src/sentencepiece/src/normalizer_test.cc:420,1
    - Dst: Darts::DoubleArray::array
      Src: /src/sentencepiece/src/normalizer_test.cc:420,1
    - Dst: Darts::DoubleArray::size
      Src: /src/sentencepiece/src/normalizer_test.cc:421,1
    - Dst: Darts::DoubleArray::unit_size
      Src: /src/sentencepiece/src/normalizer_test.cc:421,1
    - Dst: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:429,1
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer_test.cc:432,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:433,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:434,1
    - Dst: NormalizerSpec::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:435,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:438,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:438,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:442,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:443,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/normalizer_test.cc:443,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:444,1
    - Dst: std::string
      Src: /src/sentencepiece/src/normalizer_test.cc:444,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/normalizer_test.cc:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 445
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Darts::DoubleArray::size
    - Darts::DoubleArray::unit_size
    - std::string::size
    - std::vector::size
    - NormalizerSpec::set_precompiled_charsmap
    - EXPECT_FALSE
    - const_cast<char**>
    - std::vector::push_back
    - EXPECT_EQ
    - c_str
    - std::string
    - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    - NormalizerSpec::set_remove_extra_whitespaces
    - Normalizer::status
    - static_cast<const char*>
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - NormalizerSpec::set_escape_whitespaces
    - Darts::DoubleArray::build
    - std::vector::data
    - Darts::DoubleArray::array
    - ASSERT_TRUE
    - std::string::empty
    - Normalizer::Normalize
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, ManySharedPrefixesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/normalizer_test.cc:451,1
    - Dst: std::string
      Src: /src/sentencepiece/src/normalizer_test.cc:451,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/normalizer_test.cc:452,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/normalizer_test.cc:452,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:457,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:458,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/normalizer_test.cc:459,1
    - Dst: EXPECT_LE
      Src: /src/sentencepiece/src/normalizer_test.cc:460,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/normalizer_test.cc:460,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/normalizer_test.cc:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 461
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::vector::end
    - EXPECT_GT
    - std::vector::emplace_back
    - EXPECT_LE
    - std::string::size
    - PrefixMatcher::PrefixMatch
    - EXPECT_TRUE
    - std::string
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixMatcherTest, ManySharedPrefixesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:467,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:467,1
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer_test.cc:471,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:473,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:473,1
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:476,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:479,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 481
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Normalizer::status
    - EXPECT_TRUE
    - sentencepiece::normalizer::MakeDefaultSpec
    - NormalizerSpec::set_precompiled_charsmap
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, StatusTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:486,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:486,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:487,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:488,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:488,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:490,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:490,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:492,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:492,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:494,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:494,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:495,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:496,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:496,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:498,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:498,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:499,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:501,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:501,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:502,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:502,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:503,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 504
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - PrefixMatcher::GlobalReplace
    - PrefixMatcher::PrefixMatch
    - EXPECT_TRUE
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, PrefixMatcherTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:509,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:509,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:510,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:511,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:511,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:512,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:513,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:513,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:514,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:515,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:515,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:516,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:517,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:517,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:518,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:519,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:519,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:520,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:521,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:521,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:522,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:524,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:524,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:525,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 526
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - PrefixMatcher::PrefixMatch
    - EXPECT_EQ
    - PrefixMatcher::GlobalReplace
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, PrefixMatcherWithEmptyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: sentencepiece::normalizer::MakeDefaultSpec
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 8
    functionsReached:
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec MakeDefaultSpec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: sentencepiece::normalizer::MakeDefaultSpec
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 8
    functionsReached:
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec MakeDefaultSpec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:48,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:49,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:50,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:53,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:54,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:55,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:56,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:57,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:58,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:59,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:62,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:65,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:68,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:70,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:74,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:74,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:75,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:75,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:76,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:76,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:77,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:77,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:79,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:79,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 81
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - sentencepiece::string_util::UnicodeCharToUTF8
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:84,1
    - Dst: auto::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:89,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:90,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:91,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:94,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:95,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:96,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:97,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:98,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:99,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:100,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - auto::set_add_dummy_prefix
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeWithoutDummyPrefixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:104,1
    - Dst: TrainerSpec::set_treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/normalizer_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:109,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:110,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:111,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:113,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:114,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:115,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:116,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - TrainerSpec::set_treat_whitespace_as_suffix
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeTreatWSAsSuffixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:120,1
    - Dst: auto::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:125,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:125,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - EXPECT_EQ
    - Normalizer::Normalize
    - auto::set_remove_extra_whitespaces
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeWithoutRemoveExtraWhitespacesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:137,1
    - Dst: auto::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:138,1
    - Dst: auto::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:139,1
    - Dst: auto::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:144,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:145,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:146,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:149,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:150,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:151,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:152,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - auto::set_remove_extra_whitespaces
    - auto::set_add_dummy_prefix
    - EXPECT_EQ
    - Normalizer::Normalize
    - sentencepiece::normalizer::MakeDefaultSpec
    - auto::set_escape_whitespaces
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeWithoutEscapeWhitespacesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/normalizer_test.cc:160,1
    - Dst: Builder::Chars::push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:161,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/normalizer_test.cc:163,1
    - Dst: push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:164,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:170,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:171,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:172,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:173,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:176,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:177,1
    - Dst: NormalizerSpec::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:183,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:184,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:185,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:186,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:187,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:187,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:188,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:188,1
    - Dst: NormalizerSpec::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:191,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:193,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:194,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:197,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:197,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:198,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:199,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:200,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:200,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:201,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:201,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:202,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:202,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:206,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:210,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:211,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:212,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:213,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:213,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:214,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:215,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:215,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:219,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:223,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:224,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:225,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:226,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:227,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:228,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:228,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:232,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:233,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:236,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:237,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:238,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:239,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:239,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:240,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:241,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:241,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:264,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:265,1
    - Dst: NormalizerSpec::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:268,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 270
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - Builder::Chars::push_back
    - NormalizerSpec::set_add_dummy_prefix
    - NormalizerSpec::mutable_precompiled_charsmap
    - NormalizerSpec::set_escape_whitespaces
    - push_back
    - EXPECT_TRUE
    - AddRule
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - EXPECT_EQ
    - Normalizer::Normalize
    - NormalizerSpec::set_remove_extra_whitespaces
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizeTest, NomalizeWithSpaceContainedRules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:273,1
    - Dst: auto::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:274,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:276,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:277,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:278,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:279,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:279,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:280,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - auto::set_add_dummy_prefix
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeReplacementChar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:287,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:292,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:292,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:303,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:308,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:308,1
    - Dst: LOG
      Src: /src/sentencepiece/src/normalizer_test.cc:309,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:320,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:325,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:325,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:326,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:333,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:338,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:338,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:339,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:345,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:350,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:350,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:351,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 363
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - LOG
    - EXPECT_TRUE
    - EXPECT_EQ
    - Normalizer::Normalize
    - sentencepiece::normalizer::MakeDefaultSpec
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeFullTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:387,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:391,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:393,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/normalizer_test.cc:393,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:394,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:395,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:396,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 399
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - absl::Status::ok
    - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    - EXPECT_EQ
    - EXPECT_FALSE
    - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, EncodeDecodePrecompiledCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/normalizer_test.cc:411,1
    - Dst: std::string
      Src: /src/sentencepiece/src/normalizer_test.cc:411,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:413,1
    - Dst: c_str
      Src: /src/sentencepiece/src/normalizer_test.cc:413,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:414,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: Darts::DoubleArray::build
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: const_cast<char**>
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer_test.cc:419,1
    - Dst: static_cast<const char*>
      Src: /src/sentencepiece/src/normalizer_test.cc:420,1
    - Dst: Darts::DoubleArray::array
      Src: /src/sentencepiece/src/normalizer_test.cc:420,1
    - Dst: Darts::DoubleArray::size
      Src: /src/sentencepiece/src/normalizer_test.cc:421,1
    - Dst: Darts::DoubleArray::unit_size
      Src: /src/sentencepiece/src/normalizer_test.cc:421,1
    - Dst: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:429,1
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer_test.cc:432,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:433,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:434,1
    - Dst: NormalizerSpec::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:435,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:438,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:438,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:442,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:443,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/normalizer_test.cc:443,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:444,1
    - Dst: std::string
      Src: /src/sentencepiece/src/normalizer_test.cc:444,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/normalizer_test.cc:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 445
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Darts::DoubleArray::size
    - Darts::DoubleArray::unit_size
    - std::string::size
    - std::vector::size
    - NormalizerSpec::set_precompiled_charsmap
    - EXPECT_FALSE
    - const_cast<char**>
    - std::vector::push_back
    - EXPECT_EQ
    - c_str
    - std::string
    - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    - NormalizerSpec::set_remove_extra_whitespaces
    - Normalizer::status
    - static_cast<const char*>
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - NormalizerSpec::set_escape_whitespaces
    - Darts::DoubleArray::build
    - std::vector::data
    - Darts::DoubleArray::array
    - ASSERT_TRUE
    - std::string::empty
    - Normalizer::Normalize
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, ManySharedPrefixesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/normalizer_test.cc:451,1
    - Dst: std::string
      Src: /src/sentencepiece/src/normalizer_test.cc:451,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/normalizer_test.cc:452,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/normalizer_test.cc:452,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:457,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:458,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/normalizer_test.cc:459,1
    - Dst: EXPECT_LE
      Src: /src/sentencepiece/src/normalizer_test.cc:460,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/normalizer_test.cc:460,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/normalizer_test.cc:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 461
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::vector::end
    - EXPECT_GT
    - std::vector::emplace_back
    - EXPECT_LE
    - std::string::size
    - PrefixMatcher::PrefixMatch
    - EXPECT_TRUE
    - std::string
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixMatcherTest, ManySharedPrefixesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:467,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:467,1
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer_test.cc:471,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:473,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:473,1
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:476,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:479,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 481
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Normalizer::status
    - EXPECT_TRUE
    - sentencepiece::normalizer::MakeDefaultSpec
    - NormalizerSpec::set_precompiled_charsmap
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, StatusTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:486,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:486,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:487,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:488,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:488,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:490,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:490,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:492,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:492,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:494,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:494,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:495,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:496,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:496,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:498,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:498,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:499,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:501,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:501,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:502,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:502,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:503,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 504
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - PrefixMatcher::GlobalReplace
    - PrefixMatcher::PrefixMatch
    - EXPECT_TRUE
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, PrefixMatcherTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:509,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:509,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:510,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:511,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:511,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:512,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:513,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:513,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:514,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:515,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:515,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:516,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:517,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:517,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:518,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:519,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:519,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:520,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:521,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:521,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:522,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:524,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:524,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:525,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 526
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - PrefixMatcher::PrefixMatch
    - EXPECT_EQ
    - PrefixMatcher::GlobalReplace
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, PrefixMatcherWithEmptyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: sentencepiece::normalizer::MakeDefaultSpec
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 16
    functionsReached:
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec MakeDefaultSpec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: sentencepiece::normalizer::MakeDefaultSpec
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 16
    functionsReached:
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec MakeDefaultSpec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:48,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:49,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:50,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:53,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:54,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:55,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:56,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:57,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:58,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:59,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:62,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:65,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:68,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:70,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:74,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:74,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:75,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:75,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:76,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:76,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:77,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:77,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:79,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:79,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 81
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - sentencepiece::string_util::UnicodeCharToUTF8
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:84,1
    - Dst: auto::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:89,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:90,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:91,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:94,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:95,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:96,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:97,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:98,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:99,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:100,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - auto::set_add_dummy_prefix
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeWithoutDummyPrefixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:104,1
    - Dst: TrainerSpec::set_treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/normalizer_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:109,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:110,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:111,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:113,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:114,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:115,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:116,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - TrainerSpec::set_treat_whitespace_as_suffix
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeTreatWSAsSuffixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:120,1
    - Dst: auto::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:125,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:125,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - EXPECT_EQ
    - Normalizer::Normalize
    - auto::set_remove_extra_whitespaces
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeWithoutRemoveExtraWhitespacesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:137,1
    - Dst: auto::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:138,1
    - Dst: auto::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:139,1
    - Dst: auto::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:144,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:145,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:146,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:149,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:150,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:151,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:152,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - auto::set_remove_extra_whitespaces
    - auto::set_add_dummy_prefix
    - EXPECT_EQ
    - Normalizer::Normalize
    - sentencepiece::normalizer::MakeDefaultSpec
    - auto::set_escape_whitespaces
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeWithoutEscapeWhitespacesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/normalizer_test.cc:160,1
    - Dst: Builder::Chars::push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:161,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/normalizer_test.cc:163,1
    - Dst: push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:164,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:170,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:171,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:172,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:173,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:176,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:177,1
    - Dst: NormalizerSpec::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:183,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:184,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:185,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:186,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:187,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:187,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:188,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:188,1
    - Dst: NormalizerSpec::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:191,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:193,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:194,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:197,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:197,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:198,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:199,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:200,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:200,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:201,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:201,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:202,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:202,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:206,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:210,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:211,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:212,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:213,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:213,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:214,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:215,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:215,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:219,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:223,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:224,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:225,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:226,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:227,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:228,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:228,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:232,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:233,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:236,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:237,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:238,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:239,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:239,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:240,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:241,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:241,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:264,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:265,1
    - Dst: NormalizerSpec::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:268,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 270
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - Builder::Chars::push_back
    - NormalizerSpec::set_add_dummy_prefix
    - NormalizerSpec::mutable_precompiled_charsmap
    - NormalizerSpec::set_escape_whitespaces
    - push_back
    - EXPECT_TRUE
    - AddRule
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - EXPECT_EQ
    - Normalizer::Normalize
    - NormalizerSpec::set_remove_extra_whitespaces
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizeTest, NomalizeWithSpaceContainedRules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:273,1
    - Dst: auto::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:274,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:276,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:277,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:278,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:279,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:279,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:280,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - auto::set_add_dummy_prefix
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeReplacementChar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:287,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:292,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:292,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:303,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:308,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:308,1
    - Dst: LOG
      Src: /src/sentencepiece/src/normalizer_test.cc:309,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:320,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:325,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:325,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:326,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:333,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:338,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:338,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:339,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:345,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:350,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:350,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:351,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 363
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - LOG
    - EXPECT_TRUE
    - EXPECT_EQ
    - Normalizer::Normalize
    - sentencepiece::normalizer::MakeDefaultSpec
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeFullTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:387,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:391,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:393,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/normalizer_test.cc:393,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:394,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:395,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:396,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 399
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - absl::Status::ok
    - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    - EXPECT_EQ
    - EXPECT_FALSE
    - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, EncodeDecodePrecompiledCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/normalizer_test.cc:411,1
    - Dst: std::string
      Src: /src/sentencepiece/src/normalizer_test.cc:411,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:413,1
    - Dst: c_str
      Src: /src/sentencepiece/src/normalizer_test.cc:413,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:414,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: Darts::DoubleArray::build
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: const_cast<char**>
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer_test.cc:419,1
    - Dst: static_cast<const char*>
      Src: /src/sentencepiece/src/normalizer_test.cc:420,1
    - Dst: Darts::DoubleArray::array
      Src: /src/sentencepiece/src/normalizer_test.cc:420,1
    - Dst: Darts::DoubleArray::size
      Src: /src/sentencepiece/src/normalizer_test.cc:421,1
    - Dst: Darts::DoubleArray::unit_size
      Src: /src/sentencepiece/src/normalizer_test.cc:421,1
    - Dst: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:429,1
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer_test.cc:432,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:433,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:434,1
    - Dst: NormalizerSpec::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:435,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:438,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:438,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:442,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:443,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/normalizer_test.cc:443,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:444,1
    - Dst: std::string
      Src: /src/sentencepiece/src/normalizer_test.cc:444,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/normalizer_test.cc:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 445
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Darts::DoubleArray::size
    - Darts::DoubleArray::unit_size
    - std::string::size
    - std::vector::size
    - NormalizerSpec::set_precompiled_charsmap
    - EXPECT_FALSE
    - const_cast<char**>
    - std::vector::push_back
    - EXPECT_EQ
    - c_str
    - std::string
    - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    - NormalizerSpec::set_remove_extra_whitespaces
    - Normalizer::status
    - static_cast<const char*>
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - NormalizerSpec::set_escape_whitespaces
    - Darts::DoubleArray::build
    - std::vector::data
    - Darts::DoubleArray::array
    - ASSERT_TRUE
    - std::string::empty
    - Normalizer::Normalize
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, ManySharedPrefixesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/normalizer_test.cc:451,1
    - Dst: std::string
      Src: /src/sentencepiece/src/normalizer_test.cc:451,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/normalizer_test.cc:452,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/normalizer_test.cc:452,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:457,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:458,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/normalizer_test.cc:459,1
    - Dst: EXPECT_LE
      Src: /src/sentencepiece/src/normalizer_test.cc:460,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/normalizer_test.cc:460,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/normalizer_test.cc:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 461
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::vector::end
    - EXPECT_GT
    - std::vector::emplace_back
    - EXPECT_LE
    - std::string::size
    - PrefixMatcher::PrefixMatch
    - EXPECT_TRUE
    - std::string
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixMatcherTest, ManySharedPrefixesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:467,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:467,1
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer_test.cc:471,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:473,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:473,1
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:476,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:479,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 481
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Normalizer::status
    - EXPECT_TRUE
    - sentencepiece::normalizer::MakeDefaultSpec
    - NormalizerSpec::set_precompiled_charsmap
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, StatusTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:486,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:486,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:487,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:488,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:488,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:490,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:490,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:492,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:492,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:494,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:494,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:495,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:496,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:496,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:498,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:498,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:499,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:501,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:501,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:502,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:502,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:503,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 504
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - PrefixMatcher::GlobalReplace
    - PrefixMatcher::PrefixMatch
    - EXPECT_TRUE
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, PrefixMatcherTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:509,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:509,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:510,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:511,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:511,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:512,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:513,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:513,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:514,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:515,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:515,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:516,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:517,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:517,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:518,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:519,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:519,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:520,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:521,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:521,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:522,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:524,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:524,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:525,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 526
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - PrefixMatcher::PrefixMatch
    - EXPECT_EQ
    - PrefixMatcher::GlobalReplace
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, PrefixMatcherWithEmptyTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: sentencepiece::normalizer::MakeDefaultSpec
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 24
    functionsReached:
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec MakeDefaultSpec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentencePieceTrainer::GetNormalizerSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: sentencepiece::normalizer::MakeDefaultSpec
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 24
    functionsReached:
    - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
    linkageType: ''
    returnType: NormalizerSpec
    signature: NormalizerSpec MakeDefaultSpec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:44,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:48,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:48,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:49,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:49,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:50,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:50,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:53,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:53,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:54,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:54,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:55,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:55,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:56,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:56,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:57,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:57,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:58,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:58,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:59,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:59,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:62,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:62,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:65,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:65,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:68,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:68,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:70,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:71,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:74,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:74,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:74,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:75,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:75,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:75,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:76,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:76,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:76,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:77,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:77,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:77,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:79,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:79,1
    - Dst: sentencepiece::string_util::UnicodeCharToUTF8
      Src: /src/sentencepiece/src/normalizer_test.cc:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 43
    functionDepth: 4
    functionLinenumber: 43
    functionLinenumberEnd: 81
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - sentencepiece::string_util::UnicodeCharToUTF8
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:84,1
    - Dst: auto::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:85,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:89,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:90,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:90,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:91,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:91,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:94,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:94,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:95,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:95,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:96,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:96,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:97,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:97,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:98,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:98,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:99,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:99,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:100,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 83
    functionDepth: 4
    functionLinenumber: 83
    functionLinenumberEnd: 101
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - auto::set_add_dummy_prefix
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeWithoutDummyPrefixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:104,1
    - Dst: TrainerSpec::set_treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/normalizer_test.cc:106,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:109,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:109,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:110,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:110,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:111,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:111,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:113,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:114,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:115,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:115,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:116,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - TrainerSpec::set_treat_whitespace_as_suffix
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeTreatWSAsSuffixTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:120,1
    - Dst: auto::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:121,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:125,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:125,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 4
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - EXPECT_EQ
    - Normalizer::Normalize
    - auto::set_remove_extra_whitespaces
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeWithoutRemoveExtraWhitespacesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:137,1
    - Dst: auto::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:138,1
    - Dst: auto::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:139,1
    - Dst: auto::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:140,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:144,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:144,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:145,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:145,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:146,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:146,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:149,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:149,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:150,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:150,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:151,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:151,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:152,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 4
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - auto::set_remove_extra_whitespaces
    - auto::set_add_dummy_prefix
    - EXPECT_EQ
    - Normalizer::Normalize
    - sentencepiece::normalizer::MakeDefaultSpec
    - auto::set_escape_whitespaces
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeWithoutEscapeWhitespacesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/normalizer_test.cc:160,1
    - Dst: Builder::Chars::push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:161,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/normalizer_test.cc:163,1
    - Dst: push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:164,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:170,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:171,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:172,1
    - Dst: AddRule
      Src: /src/sentencepiece/src/normalizer_test.cc:173,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:176,1
    - Dst: sentencepiece::normalizer::Builder::CompileCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:177,1
    - Dst: NormalizerSpec::mutable_precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer_test.cc:177,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:183,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:183,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:184,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:184,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:185,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:185,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:186,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:186,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:187,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:187,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:188,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:188,1
    - Dst: NormalizerSpec::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:191,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:193,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:194,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:197,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:197,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:198,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:198,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:199,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:199,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:200,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:200,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:201,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:201,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:202,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:202,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:206,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:207,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:210,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:210,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:211,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:211,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:212,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:212,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:213,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:213,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:214,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:214,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:215,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:215,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:219,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:220,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:223,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:223,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:224,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:224,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:225,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:225,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:226,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:226,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:227,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:227,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:228,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:228,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:232,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:233,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:236,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:236,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:237,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:237,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:238,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:238,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:239,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:239,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:240,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:240,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:241,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:241,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:264,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:265,1
    - Dst: NormalizerSpec::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:266,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:268,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 270
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::string_util::UTF8ToUnicodeText
    - Builder::Chars::push_back
    - NormalizerSpec::set_add_dummy_prefix
    - NormalizerSpec::mutable_precompiled_charsmap
    - NormalizerSpec::set_escape_whitespaces
    - push_back
    - EXPECT_TRUE
    - AddRule
    - sentencepiece::normalizer::Builder::CompileCharsMap
    - EXPECT_EQ
    - Normalizer::Normalize
    - NormalizerSpec::set_remove_extra_whitespaces
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizeTest, NomalizeWithSpaceContainedRules)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:273,1
    - Dst: auto::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:274,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:276,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:276,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:277,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:277,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:278,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:278,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:279,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:279,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:280,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 272
    functionDepth: 4
    functionLinenumber: 272
    functionLinenumberEnd: 281
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::MakeDefaultSpec
    - auto::set_add_dummy_prefix
    - EXPECT_EQ
    - Normalizer::Normalize
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeReplacementChar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:287,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:292,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:292,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:293,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:303,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:308,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:308,1
    - Dst: LOG
      Src: /src/sentencepiece/src/normalizer_test.cc:309,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:310,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:320,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:325,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:325,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:326,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:333,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:338,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:338,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:339,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:345,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:350,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:350,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:351,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 283
    functionDepth: 4
    functionLinenumber: 283
    functionLinenumberEnd: 363
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - LOG
    - EXPECT_TRUE
    - EXPECT_EQ
    - Normalizer::Normalize
    - sentencepiece::normalizer::MakeDefaultSpec
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, NormalizeFullTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:387,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:391,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:393,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/src/normalizer_test.cc:393,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:394,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:395,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:396,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:396,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 399
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - ASSERT_TRUE
    - absl::Status::ok
    - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    - EXPECT_EQ
    - EXPECT_FALSE
    - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, EncodeDecodePrecompiledCharsMapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/normalizer_test.cc:411,1
    - Dst: std::string
      Src: /src/sentencepiece/src/normalizer_test.cc:411,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:413,1
    - Dst: c_str
      Src: /src/sentencepiece/src/normalizer_test.cc:413,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer_test.cc:414,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: Darts::DoubleArray::build
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: const_cast<char**>
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer_test.cc:418,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer_test.cc:419,1
    - Dst: static_cast<const char*>
      Src: /src/sentencepiece/src/normalizer_test.cc:420,1
    - Dst: Darts::DoubleArray::array
      Src: /src/sentencepiece/src/normalizer_test.cc:420,1
    - Dst: Darts::DoubleArray::size
      Src: /src/sentencepiece/src/normalizer_test.cc:421,1
    - Dst: Darts::DoubleArray::unit_size
      Src: /src/sentencepiece/src/normalizer_test.cc:421,1
    - Dst: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer_test.cc:429,1
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer_test.cc:432,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer_test.cc:433,1
    - Dst: NormalizerSpec::set_remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:434,1
    - Dst: NormalizerSpec::set_escape_whitespaces
      Src: /src/sentencepiece/src/normalizer_test.cc:435,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:438,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:438,1
    - Dst: Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer_test.cc:442,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:443,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/normalizer_test.cc:443,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:444,1
    - Dst: std::string
      Src: /src/sentencepiece/src/normalizer_test.cc:444,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/normalizer_test.cc:444,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 445
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Darts::DoubleArray::size
    - Darts::DoubleArray::unit_size
    - std::string::size
    - std::vector::size
    - NormalizerSpec::set_precompiled_charsmap
    - EXPECT_FALSE
    - const_cast<char**>
    - std::vector::push_back
    - EXPECT_EQ
    - c_str
    - std::string
    - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    - NormalizerSpec::set_remove_extra_whitespaces
    - Normalizer::status
    - static_cast<const char*>
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - NormalizerSpec::set_escape_whitespaces
    - Darts::DoubleArray::build
    - std::vector::data
    - Darts::DoubleArray::array
    - ASSERT_TRUE
    - std::string::empty
    - Normalizer::Normalize
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, ManySharedPrefixesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/normalizer_test.cc:451,1
    - Dst: std::string
      Src: /src/sentencepiece/src/normalizer_test.cc:451,1
    - Dst: std::vector::begin
      Src: /src/sentencepiece/src/normalizer_test.cc:452,1
    - Dst: std::vector::end
      Src: /src/sentencepiece/src/normalizer_test.cc:452,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:457,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:458,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/src/normalizer_test.cc:459,1
    - Dst: EXPECT_LE
      Src: /src/sentencepiece/src/normalizer_test.cc:460,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/normalizer_test.cc:460,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/normalizer_test.cc:460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 461
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::vector::end
    - EXPECT_GT
    - std::vector::emplace_back
    - EXPECT_LE
    - std::string::size
    - PrefixMatcher::PrefixMatch
    - EXPECT_TRUE
    - std::string
    - std::vector::begin
    linkageType: ''
    returnType: void
    signature: void TEST(PrefixMatcherTest, ManySharedPrefixesTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:467,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:467,1
    - Dst: NormalizerSpec::set_precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer_test.cc:471,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:473,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:473,1
    - Dst: sentencepiece::normalizer::MakeDefaultSpec
      Src: /src/sentencepiece/src/normalizer_test.cc:476,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:479,1
    - Dst: Normalizer::status
      Src: /src/sentencepiece/src/normalizer_test.cc:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 463
    functionDepth: 4
    functionLinenumber: 463
    functionLinenumberEnd: 481
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - Normalizer::status
    - EXPECT_TRUE
    - sentencepiece::normalizer::MakeDefaultSpec
    - NormalizerSpec::set_precompiled_charsmap
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, StatusTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:486,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:486,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:487,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:488,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:488,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:489,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:490,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:490,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:491,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:492,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:492,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:493,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:494,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:494,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:495,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:496,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:496,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/normalizer_test.cc:497,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:498,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:498,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:499,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:501,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:501,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:502,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:502,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:503,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 504
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - PrefixMatcher::GlobalReplace
    - PrefixMatcher::PrefixMatch
    - EXPECT_TRUE
    - EXPECT_EQ
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, PrefixMatcherTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:509,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:509,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:510,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:511,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:511,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:512,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:513,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:513,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:514,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:515,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:515,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:516,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:517,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:517,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:518,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:519,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:519,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:520,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:521,1
    - Dst: PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer_test.cc:521,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/normalizer_test.cc:522,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:524,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:524,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/normalizer_test.cc:525,1
    - Dst: PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/normalizer_test.cc:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 526
    functionName: sentencepiece::normalizer::TEST
    functionSourceFile: /src/sentencepiece/src/normalizer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - PrefixMatcher::PrefixMatch
    - EXPECT_EQ
    - PrefixMatcher::GlobalReplace
    linkageType: ''
    returnType: void
    signature: void TEST(NormalizerTest, PrefixMatcherWithEmptyTest)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
      Src: /src/sentencepiece/src/spm_eval_main.cc:20,1
    - Dst: sentencepiece::ParseCommandLineFlags
      Src: /src/sentencepiece/src/spm_eval_main.cc:21,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_eval_main.cc:23,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/spm_eval_main.cc:24,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/spm_eval_main.cc:26,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/spm_eval_main.cc:26,1
    - Dst: sentencepiece::SentencePieceProcessor::SentencePieceProcessor
      Src: /src/sentencepiece/src/spm_eval_main.cc:31,1
    - Dst: sentencepiece::SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/spm_eval_main.cc:32,1
    - Dst: std::getline
      Src: /src/sentencepiece/src/spm_eval_main.cc:51,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/spm_eval_main.cc:52,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/spm_eval_main.cc:55,1
    - Dst: sentencepiece::SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/spm_eval_main.cc:58,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/spm_eval_main.cc:63,1
    - Dst: sentencepiece::SentencePieceProcessor::GetScore
      Src: /src/sentencepiece/src/spm_eval_main.cc:65,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/spm_eval_main.cc:74,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/src/spm_eval_main.cc:76,1
    - Dst: std::log
      Src: /src/sentencepiece/src/spm_eval_main.cc:77,1
    - Dst: sentencepiece::SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/spm_eval_main.cc:81,1
    - Dst: safe_div
      Src: /src/sentencepiece/src/spm_eval_main.cc:91,1
    - Dst: safe_div
      Src: /src/sentencepiece/src/spm_eval_main.cc:92,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/spm_eval_main.cc:93,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/spm_eval_main.cc:94,1
    - Dst: safe_div
      Src: /src/sentencepiece/src/spm_eval_main.cc:96,1
    - Dst: std::exp
      Src: /src/sentencepiece/src/spm_eval_main.cc:97,1
    - Dst: safe_div
      Src: /src/sentencepiece/src/spm_eval_main.cc:99,1
    - Dst: safe_div
      Src: /src/sentencepiece/src/spm_eval_main.cc:100,1
    - Dst: sentencepiece::SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/src/spm_eval_main.cc:103,1
    - Dst: absl::flat_hash_map::size
      Src: /src/sentencepiece/src/spm_eval_main.cc:104,1
    - Dst: safe_div
      Src: /src/sentencepiece/src/spm_eval_main.cc:105,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/spm_eval_main.cc:118,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/spm_eval_main.cc:122,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/spm_eval_main.cc:124,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/spm_eval_main.cc:126,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/spm_eval_main.cc:131,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/spm_eval_main.cc:134,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/spm_eval_main.cc:136,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/spm_eval_main.cc:138,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/spm_eval_main.cc:140,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/spm_eval_main.cc:142,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 62
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 146
    functionName: main
    functionSourceFile: /src/sentencepiece/src/spm_eval_main.cc
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::vector::size
    - std::log
    - static_cast<double>
    - sentencepiece::ParseCommandLineFlags
    - sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
    - sentencepiece::SentencePieceProcessor::model_proto
    - std::exp
    - absl::StrFormat
    - sentencepiece::SentencePieceProcessor::GetPieceSize
    - absl::flat_hash_map::size
    - sentencepiece::SentencePieceProcessor::SentencePieceProcessor
    - std::getline
    - sentencepiece::SentencePieceProcessor::Encode
    - safe_div
    - sentencepiece::SentencePieceProcessor::Load
    - std::string::empty
    - sentencepiece::SentencePieceProcessor::GetScore
    - absl::GetFlag
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_GT
      Src: /src/sentencepiece/src/trainer_interface.cc:82,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:82,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:84,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:85,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:86,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/trainer_interface.cc:86,1
    - Dst: seed_sentencepieces_file
      Src: /src/sentencepiece/src/trainer_interface.cc:90,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:91,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:91,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:98,1
    - Dst: character_coverage
      Src: /src/sentencepiece/src/trainer_interface.cc:98,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:99,1
    - Dst: max_sentencepiece_length
      Src: /src/sentencepiece/src/trainer_interface.cc:99,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:100,1
    - Dst: num_sub_iterations
      Src: /src/sentencepiece/src/trainer_interface.cc:100,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:101,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/trainer_interface.cc:101,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:102,1
    - Dst: self_test_sample_size
      Src: /src/sentencepiece/src/trainer_interface.cc:102,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:103,1
    - Dst: shrinking_factor
      Src: /src/sentencepiece/src/trainer_interface.cc:103,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:104,1
    - Dst: max_sentence_length
      Src: /src/sentencepiece/src/trainer_interface.cc:104,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:107,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:107,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:108,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:110,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:110,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:111,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:111,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:112,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:112,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:113,1
    - Dst: pad_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:113,1
    - Dst: pretokenization_delimiter
      Src: /src/sentencepiece/src/trainer_interface.cc:116,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:117,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:117,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:118,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:120,1
    - Dst: pretokenization_delimiter
      Src: /src/sentencepiece/src/trainer_interface.cc:121,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/trainer_interface.cc:126,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:127,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:127,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:129,1
    - Dst: byte_fallback
      Src: /src/sentencepiece/src/trainer_interface.cc:129,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:131,1
    - Dst: required_chars
      Src: /src/sentencepiece/src/trainer_interface.cc:131,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - ' trainer_spec'
    - ' components'
    argTypes:
    - TrainerSpec
    - TrainerComponents
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 137
    functionName: sentencepiece::VerifySpec
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - num_sub_iterations
    - eos_piece
    - required_chars
    - byte_fallback
    - model_type
    - shrinking_factor
    - bos_piece
    - input_sentence_size
    - pad_piece
    - use_all_vocab
    - pretokenization_delimiter
    - character_coverage
    - RET_CHECK_GT
    - unk_piece
    - max_sentence_length
    - seed_sentencepieces_file
    - RET_CHECK
    - CHECK_RANGE
    - vocab_size
    - max_sentencepiece_length
    - self_test_sample_size
    - absl::GetFlag
    - num_threads
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status VerifySpec(const TrainerSpec& trainer_spec,\n                        const
      TrainerComponents& components)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - variable
    - ','
    - minval
    - ','
    - maxval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: CHECK_RANGE
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_RANGE(variable, minval, maxval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: sentencepiece::is_unicode_decimal_number
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_unicode_decimal_number(char32_t c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:152,1
    - Dst: shuffle_input_sentence
      Src: /src/sentencepiece/src/trainer_interface.cc:153,1
    - Dst: std::make_unique<Sampler>
      Src: /src/sentencepiece/src/trainer_interface.cc:155,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:156,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:158,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sentences
    - ' spec'
    argTypes:
    - TrainerInterface::Sentences*
    - TrainerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: sentencepiece::SentenceSelector::SentenceSelector
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Sampler>
    - shuffle_input_sentence
    - input_sentence_size
    - LOG
    linkageType: ''
    returnType: void
    signature: "void SentenceSelector(TrainerInterface::Sentences* sentences,\n                   const
      TrainerSpec& spec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:166,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:167,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:167,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:169,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: sentencepiece::SentenceSelector::Finish
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - size
    - LOG
    linkageType: ''
    returnType: void
    signature: void Finish() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:178,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/trainer_interface.cc:179,1
    - Dst: shuffle_input_sentence
      Src: /src/sentencepiece/src/trainer_interface.cc:181,1
    - Dst: sentencepiece::SentenceSelector::Add
      Src: /src/sentencepiece/src/trainer_interface.cc:182,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/trainer_interface.cc:184,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:185,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:185,1
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:191,1
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:191,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:192,1
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' sentence'
    argTypes:
    - std::pair<std::string, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: sentencepiece::SentenceSelector::Add
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 1
    functionsReached:
    - size
    - shuffle_input_sentence
    - input_sentence_size
    - LOG
    - sentencepiece::SentenceSelector::total_size
    - sentencepiece::SentenceSelector::Add
    - emplace_back
    linkageType: ''
    returnType: bool
    signature: bool Add(const std::pair<std::string, int64_t>& sentence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:199,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: sentencepiece::SentenceSelector::total_size
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::SentenceSelector::total_size
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t total_size() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_GT
      Src: /src/sentencepiece/src/trainer_interface.cc:82,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:82,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:84,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:85,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:86,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/trainer_interface.cc:86,1
    - Dst: seed_sentencepieces_file
      Src: /src/sentencepiece/src/trainer_interface.cc:90,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:91,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:91,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:98,1
    - Dst: character_coverage
      Src: /src/sentencepiece/src/trainer_interface.cc:98,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:99,1
    - Dst: max_sentencepiece_length
      Src: /src/sentencepiece/src/trainer_interface.cc:99,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:100,1
    - Dst: num_sub_iterations
      Src: /src/sentencepiece/src/trainer_interface.cc:100,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:101,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/trainer_interface.cc:101,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:102,1
    - Dst: self_test_sample_size
      Src: /src/sentencepiece/src/trainer_interface.cc:102,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:103,1
    - Dst: shrinking_factor
      Src: /src/sentencepiece/src/trainer_interface.cc:103,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:104,1
    - Dst: max_sentence_length
      Src: /src/sentencepiece/src/trainer_interface.cc:104,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:107,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:107,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:108,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:110,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:110,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:111,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:111,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:112,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:112,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:113,1
    - Dst: pad_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:113,1
    - Dst: pretokenization_delimiter
      Src: /src/sentencepiece/src/trainer_interface.cc:116,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:117,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:117,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:118,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:120,1
    - Dst: pretokenization_delimiter
      Src: /src/sentencepiece/src/trainer_interface.cc:121,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/trainer_interface.cc:126,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:127,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:127,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:129,1
    - Dst: byte_fallback
      Src: /src/sentencepiece/src/trainer_interface.cc:129,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:131,1
    - Dst: required_chars
      Src: /src/sentencepiece/src/trainer_interface.cc:131,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - ' trainer_spec'
    - ' components'
    argTypes:
    - TrainerSpec
    - TrainerComponents
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 137
    functionName: sentencepiece::VerifySpec
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - num_sub_iterations
    - eos_piece
    - required_chars
    - byte_fallback
    - model_type
    - shrinking_factor
    - bos_piece
    - input_sentence_size
    - pad_piece
    - use_all_vocab
    - pretokenization_delimiter
    - character_coverage
    - RET_CHECK_GT
    - unk_piece
    - max_sentence_length
    - seed_sentencepieces_file
    - RET_CHECK
    - CHECK_RANGE
    - vocab_size
    - max_sentencepiece_length
    - self_test_sample_size
    - absl::GetFlag
    - num_threads
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status VerifySpec(const TrainerSpec& trainer_spec,\n                        const
      TrainerComponents& components)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - variable
    - ','
    - minval
    - ','
    - maxval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: CHECK_RANGE
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_RANGE(variable, minval, maxval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: sentencepiece::is_unicode_decimal_number
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_unicode_decimal_number(char32_t c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:152,1
    - Dst: shuffle_input_sentence
      Src: /src/sentencepiece/src/trainer_interface.cc:153,1
    - Dst: std::make_unique<Sampler>
      Src: /src/sentencepiece/src/trainer_interface.cc:155,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:156,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:158,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sentences
    - ' spec'
    argTypes:
    - TrainerInterface::Sentences*
    - TrainerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: sentencepiece::SentenceSelector::SentenceSelector
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Sampler>
    - shuffle_input_sentence
    - input_sentence_size
    - LOG
    linkageType: ''
    returnType: void
    signature: "void SentenceSelector(TrainerInterface::Sentences* sentences,\n                   const
      TrainerSpec& spec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:166,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:167,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:167,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:169,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: sentencepiece::SentenceSelector::Finish
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - size
    - LOG
    linkageType: ''
    returnType: void
    signature: void Finish() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:178,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/trainer_interface.cc:179,1
    - Dst: shuffle_input_sentence
      Src: /src/sentencepiece/src/trainer_interface.cc:181,1
    - Dst: sentencepiece::SentenceSelector::Add
      Src: /src/sentencepiece/src/trainer_interface.cc:182,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/trainer_interface.cc:184,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:185,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:185,1
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:191,1
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:191,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:192,1
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' sentence'
    argTypes:
    - std::pair<std::string, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: sentencepiece::SentenceSelector::Add
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 2
    functionsReached:
    - size
    - shuffle_input_sentence
    - input_sentence_size
    - LOG
    - sentencepiece::SentenceSelector::total_size
    - sentencepiece::SentenceSelector::Add
    - emplace_back
    linkageType: ''
    returnType: bool
    signature: bool Add(const std::pair<std::string, int64_t>& sentence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:199,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: sentencepiece::SentenceSelector::total_size
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 4
    functionsReached:
    - sentencepiece::SentenceSelector::total_size
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t total_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MultiFileSentenceIterator::Next
      Src: /src/sentencepiece/src/trainer_interface.cc:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' files'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: sentencepiece::MultiFileSentenceIterator::MultiFileSentenceIterator
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::MultiFileSentenceIterator::Next
    linkageType: ''
    returnType: void
    signature: "void MultiFileSentenceIterator::MultiFileSentenceIterator(\n    const
      std::vector<std::string>& files)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: sentencepiece::MultiFileSentenceIterator::done
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool MultiFileSentenceIterator::done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:220,1
    - Dst: sentencepiece::MultiFileSentenceIterator::status
      Src: /src/sentencepiece/src/trainer_interface.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: sentencepiece::MultiFileSentenceIterator::status
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::MultiFileSentenceIterator::status
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status MultiFileSentenceIterator::status() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MultiFileSentenceIterator::TryRead
      Src: /src/sentencepiece/src/trainer_interface.cc:225,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:227,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/trainer_interface.cc:229,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:230,1
    - Dst: sentencepiece::MultiFileSentenceIterator::status
      Src: /src/sentencepiece/src/trainer_interface.cc:231,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:231,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:232,1
    - Dst: sentencepiece::MultiFileSentenceIterator::TryRead
      Src: /src/sentencepiece/src/trainer_interface.cc:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: sentencepiece::MultiFileSentenceIterator::Next
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 1
    functionsReached:
    - absl::OkStatus
    - size
    - LOG
    - sentencepiece::MultiFileSentenceIterator::status
    - sentencepiece::filesystem::NewReadableFile
    - sentencepiece::MultiFileSentenceIterator::TryRead
    linkageType: ''
    returnType: void
    signature: void MultiFileSentenceIterator::Next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadLine
      Src: /src/sentencepiece/src/trainer_interface.cc:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: sentencepiece::MultiFileSentenceIterator::TryRead
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 1
    functionsReached:
    - ReadLine
    linkageType: ''
    returnType: void
    signature: void MultiFileSentenceIterator::TryRead()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/trainer_interface.cc:248,1
    - Dst: std::move
      Src: /src/sentencepiece/src/trainer_interface.cc:249,1
    - Dst: std::move
      Src: /src/sentencepiece/src/trainer_interface.cc:250,1
    - Dst: VerifySpec
      Src: /src/sentencepiece/src/trainer_interface.cc:251,1
    - Dst: ok
      Src: /src/sentencepiece/src/trainer_interface.cc:252,1
    - Dst: sentencepiece::TrainerInterface::InitMetaPieces
      Src: /src/sentencepiece/src/trainer_interface.cc:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - trainer_spec
    - normalizer_spec
    - denormalizer_spec
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: sentencepiece::TrainerInterface::TrainerInterface
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::TrainerInterface::InitMetaPieces
    - VerifySpec
    - ok
    - std::move
    linkageType: ''
    returnType: void
    signature: "void TrainerInterface::TrainerInterface(TrainerSpec trainer_spec,\n
      \                                  NormalizerSpec normalizer_spec,\n                                   NormalizerSpec
      denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: TrainerInterface::~TrainerInterface()
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerInterface::~TrainerInterface()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/trainer_interface.cc:262,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:263,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/trainer_interface.cc:264,1
    - Dst: max_sentencepiece_length
      Src: /src/sentencepiece/src/trainer_interface.cc:264,1
    - Dst: static_cast<unicode_script::ScriptType>
      Src: /src/sentencepiece/src/trainer_interface.cc:268,1
    - Dst: std::numeric_limits<char32_t>::max
      Src: /src/sentencepiece/src/trainer_interface.cc:269,1
    - Dst: std::all_of
      Src: /src/sentencepiece/src/trainer_interface.cc:273,1
    - Dst: begin
      Src: /src/sentencepiece/src/trainer_interface.cc:273,1
    - Dst: end
      Src: /src/sentencepiece/src/trainer_interface.cc:273,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:276,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:289,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/trainer_interface.cc:292,1
    - Dst: allow_whitespace_only_pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:306,1
    - Dst: treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/trainer_interface.cc:308,1
    - Dst: split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface.cc:309,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:310,1
    - Dst: split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface.cc:311,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:312,1
    - Dst: split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface.cc:316,1
    - Dst: split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface.cc:317,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:318,1
    - Dst: sentencepiece::unicode_script::GetScript
      Src: /src/sentencepiece/src/trainer_interface.cc:324,1
    - Dst: split_by_number
      Src: /src/sentencepiece/src/trainer_interface.cc:334,1
    - Dst: is_unicode_decimal_number
      Src: /src/sentencepiece/src/trainer_interface.cc:334,1
    - Dst: split_digits
      Src: /src/sentencepiece/src/trainer_interface.cc:338,1
    - Dst: is_unicode_decimal_number
      Src: /src/sentencepiece/src/trainer_interface.cc:338,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:339,1
    - Dst: split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface.cc:346,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 57
    argCount: 1
    argNames:
    - ' sentencepiece'
    argTypes:
    - string_util::UnicodeText
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 355
    functionName: sentencepiece::TrainerInterface::IsValidSentencePiece
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - split_by_unicode_script
    - treat_whitespace_as_suffix
    - empty
    - split_digits
    - std::numeric_limits<char32_t>::max
    - size
    - sentencepiece::unicode_script::GetScript
    - sentencepiece::string_util::IsValidCodepoint
    - LOG
    - begin
    - end
    - allow_whitespace_only_pieces
    - split_by_whitespace
    - std::all_of
    - is_unicode_decimal_number
    - split_by_number
    - static_cast<unicode_script::ScriptType>
    - max_sentencepiece_length
    - static_cast<size_t>
    linkageType: ''
    returnType: bool
    signature: "bool TrainerInterface::IsValidSentencePiece(\n    const string_util::UnicodeText&
      sentencepiece) const"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:358,1
    - Dst: sentencepiece::TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface.cc:358,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:359,1
    - Dst: VerifySpec
      Src: /src/sentencepiece/src/trainer_interface.cc:359,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:360,1
    - Dst: empty
      Src: /src/sentencepiece/src/trainer_interface.cc:360,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:361,1
    - Dst: empty
      Src: /src/sentencepiece/src/trainer_interface.cc:361,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:362,1
    - Dst: input_format
      Src: /src/sentencepiece/src/trainer_interface.cc:362,1
    - Dst: input_format
      Src: /src/sentencepiece/src/trainer_interface.cc:363,1
    - Dst: input_format
      Src: /src/sentencepiece/src/trainer_interface.cc:364,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:367,1
    - Dst: input
      Src: /src/sentencepiece/src/trainer_interface.cc:368,1
    - Dst: input
      Src: /src/sentencepiece/src/trainer_interface.cc:370,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:373,1
    - Dst: model_prefix
      Src: /src/sentencepiece/src/trainer_interface.cc:375,1
    - Dst: model_prefix
      Src: /src/sentencepiece/src/trainer_interface.cc:376,1
    - Dst: input_format
      Src: /src/sentencepiece/src/trainer_interface.cc:379,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:387,1
    - Dst: std::make_unique<MultiFileSentenceIterator>
      Src: /src/sentencepiece/src/trainer_interface.cc:390,1
    - Dst: std::vector<std::string>
      Src: /src/sentencepiece/src/trainer_interface.cc:390,1
    - Dst: input
      Src: /src/sentencepiece/src/trainer_interface.cc:391,1
    - Dst: input
      Src: /src/sentencepiece/src/trainer_interface.cc:391,1
    - Dst: std::unique_ptr::get
      Src: /src/sentencepiece/src/trainer_interface.cc:392,1
    - Dst: sentence_iterator::done
      Src: /src/sentencepiece/src/trainer_interface.cc:395,1
    - Dst: sentence_iterator::Next
      Src: /src/sentencepiece/src/trainer_interface.cc:396,1
    - Dst: sentence_iterator::value
      Src: /src/sentencepiece/src/trainer_interface.cc:398,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/trainer_interface.cc:401,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/trainer_interface.cc:402,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/trainer_interface.cc:402,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:405,1
    - Dst: absl::SimpleAtoi
      Src: /src/sentencepiece/src/trainer_interface.cc:405,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/trainer_interface.cc:407,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/trainer_interface.cc:410,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/trainer_interface.cc:414,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/trainer_interface.cc:414,1
    - Dst: max_sentence_length
      Src: /src/sentencepiece/src/trainer_interface.cc:415,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:417,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/trainer_interface.cc:417,1
    - Dst: max_sentence_length
      Src: /src/sentencepiece/src/trainer_interface.cc:418,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:419,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:420,1
    - Dst: std::string::find
      Src: /src/sentencepiece/src/trainer_interface.cc:427,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:428,1
    - Dst: SentenceSelector::Add
      Src: /src/sentencepiece/src/trainer_interface.cc:432,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/trainer_interface.cc:432,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:437,1
    - Dst: sentence_iterator::status
      Src: /src/sentencepiece/src/trainer_interface.cc:437,1
    - Dst: SentenceSelector::Finish
      Src: /src/sentencepiece/src/trainer_interface.cc:441,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:443,1
    - Dst: SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:443,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:444,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:444,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:446,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:446,1
    - Dst: SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:447,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:451,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:459,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/src/trainer_interface.cc:460,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:464,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:465,1
    - Dst: empty
      Src: /src/sentencepiece/src/trainer_interface.cc:465,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/trainer_interface.cc:467,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:468,1
    - Dst: RunBatch
      Src: /src/sentencepiece/src/trainer_interface.cc:468,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:469,1
    - Dst: normalizer::PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/trainer_interface.cc:472,1
    - Dst: normalizer::Normalizer::Normalize
      Src: /src/sentencepiece/src/trainer_interface.cc:472,1
    - Dst: pretokenizer
      Src: /src/sentencepiece/src/trainer_interface.cc:475,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/trainer_interface.cc:477,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/trainer_interface.cc:479,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface.cc:479,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/trainer_interface.cc:486,1
    - Dst: pretokenization_delimiter
      Src: /src/sentencepiece/src/trainer_interface.cc:487,1
    - Dst: absl::StrReplaceAll
      Src: /src/sentencepiece/src/trainer_interface.cc:488,1
    - Dst: pretokenization_delimiter
      Src: /src/sentencepiece/src/trainer_interface.cc:489,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:492,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:496,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:498,1
    - Dst: auto*::find
      Src: /src/sentencepiece/src/trainer_interface.cc:498,1
    - Dst: auto*::empty
      Src: /src/sentencepiece/src/trainer_interface.cc:500,1
    - Dst: std::swap
      Src: /src/sentencepiece/src/trainer_interface.cc:501,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:501,1
    - Dst: resize
      Src: /src/sentencepiece/src/trainer_interface.cc:502,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:502,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/trainer_interface.cc:509,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/trainer_interface.cc:515,1
    - Dst: required_chars
      Src: /src/sentencepiece/src/trainer_interface.cc:515,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:516,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/trainer_interface.cc:516,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:518,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/trainer_interface.cc:526,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/trainer_interface.cc:527,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:531,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:538,1
    - Dst: first::find
      Src: /src/sentencepiece/src/trainer_interface.cc:538,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:546,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/trainer_interface.cc:554,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/trainer_interface.cc:556,1
    - Dst: character_coverage
      Src: /src/sentencepiece/src/trainer_interface.cc:557,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:558,1
    - Dst: RET_CHECK_NE
      Src: /src/sentencepiece/src/trainer_interface.cc:563,1
    - Dst: emplace
      Src: /src/sentencepiece/src/trainer_interface.cc:568,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:571,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:571,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:572,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:575,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/trainer_interface.cc:575,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/trainer_interface.cc:581,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/trainer_interface.cc:582,1
    - Dst: string_util::UnicodeText::push_back
      Src: /src/sentencepiece/src/trainer_interface.cc:583,1
    - Dst: string_util::UnicodeText::push_back
      Src: /src/sentencepiece/src/trainer_interface.cc:585,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/trainer_interface.cc:588,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:591,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:592,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/trainer_interface.cc:593,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/trainer_interface.cc:594,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:594,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:594,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:595,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:597,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:598,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:598,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:604,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:604,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:606,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 133
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 607
    functionName: sentencepiece::TrainerInterface::LoadSentences
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - absl::InvalidArgumentError
    - RET_CHECK_GE
    - absl::StrReplaceAll
    - absl::StrJoin
    - string_util::UnicodeText::push_back
    - RET_CHECK_LE
    - RET_CHECK_EQ
    - absl::StrCat
    - std::swap
    - required_chars
    - std::string::size
    - std::vector::size
    - empty
    - auto*::empty
    - input_format
    - RunBatch
    - model_type
    - model_prefix
    - RET_CHECK_NE
    - size
    - sentencepiece::string_util::IsValidCodepoint
    - std::string::find
    - emplace
    - LOG
    - normalizer::Normalizer::Normalize
    - VerifySpec
    - auto*::find
    - use_all_vocab
    - input
    - absl::StrSplit
    - SentenceSelector::total_size
    - normalizer::PrefixMatcher::GlobalReplace
    - pretokenizer
    - pretokenization_delimiter
    - character_coverage
    - SentenceSelector::Finish
    - std::set::insert
    - sentence_iterator::done
    - max_sentence_length
    - sentence_iterator::status
    - std::make_unique<MultiFileSentenceIterator>
    - std::vector<std::string>
    - RET_CHECK
    - sentence_iterator::Next
    - std::make_pair
    - sentencepiece::string_util::UTF8ToUnicodeText
    - resize
    - static_cast<int>
    - SentenceSelector::Add
    - vocab_size
    - sentencepiece::port::ContainsKey
    - absl::SimpleAtoi
    - Sorted
    - std::unique_ptr::get
    - sentencepiece::TrainerInterface::status
    - std::string::empty
    - sentence_iterator::value
    - sentencepiece::string_util::UnicodeTextToUTF8
    - first::find
    - RETURN_IF_ERROR
    - absl::GetFlag
    - num_threads
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerInterface::LoadSentences()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:610,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:611,1
    - Dst: SplitIntoWords
      Src: /src/sentencepiece/src/trainer_interface.cc:615,1
    - Dst: treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/trainer_interface.cc:615,1
    - Dst: allow_whitespace_only_pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:616,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/trainer_interface.cc:620,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:621,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 622
    functionName: sentencepiece::TrainerInterface::SplitSentencesByWhitespace
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - allow_whitespace_only_pieces
    - size
    - Sorted
    - treat_whitespace_as_suffix
    - LOG
    - SplitIntoWords
    linkageType: ''
    returnType: void
    signature: void TrainerInterface::SplitSentencesByWhitespace()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:625,1
    - Dst: sentencepiece::TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface.cc:625,1
    - Dst: ModelProto*::Clear
      Src: /src/sentencepiece/src/trainer_interface.cc:630,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:638,1
    - Dst: find
      Src: /src/sentencepiece/src/trainer_interface.cc:639,1
    - Dst: end
      Src: /src/sentencepiece/src/trainer_interface.cc:640,1
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:641,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:642,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/trainer_interface.cc:643,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/trainer_interface.cc:644,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/trainer_interface.cc:645,1
    - Dst: ModelProto*::pieces_size
      Src: /src/sentencepiece/src/trainer_interface.cc:645,1
    - Dst: RET_CHECK_NE
      Src: /src/sentencepiece/src/trainer_interface.cc:646,1
    - Dst: auto*::type
      Src: /src/sentencepiece/src/trainer_interface.cc:646,1
    - Dst: CHECK_PIECE
      Src: /src/sentencepiece/src/trainer_interface.cc:647,1
    - Dst: auto*::piece
      Src: /src/sentencepiece/src/trainer_interface.cc:647,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:648,1
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:650,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:651,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/trainer_interface.cc:652,1
    - Dst: CHECK_PIECE
      Src: /src/sentencepiece/src/trainer_interface.cc:653,1
    - Dst: auto*::piece
      Src: /src/sentencepiece/src/trainer_interface.cc:653,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/trainer_interface.cc:657,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:657,1
    - Dst: ModelProto*::mutable_trainer_spec
      Src: /src/sentencepiece/src/trainer_interface.cc:659,1
    - Dst: ModelProto*::mutable_normalizer_spec
      Src: /src/sentencepiece/src/trainer_interface.cc:660,1
    - Dst: normalization_rule_tsv
      Src: /src/sentencepiece/src/trainer_interface.cc:662,1
    - Dst: ModelProto*::mutable_denormalizer_spec
      Src: /src/sentencepiece/src/trainer_interface.cc:663,1
    - Dst: hard_vocab_limit
      Src: /src/sentencepiece/src/trainer_interface.cc:666,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:667,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/trainer_interface.cc:668,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:668,1
    - Dst: ModelProto*::pieces_size
      Src: /src/sentencepiece/src/trainer_interface.cc:668,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/trainer_interface.cc:669,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:669,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/src/trainer_interface.cc:669,1
    - Dst: absl::flat_hash_set::size
      Src: /src/sentencepiece/src/trainer_interface.cc:669,1
    - Dst: ModelProto*::mutable_trainer_spec
      Src: /src/sentencepiece/src/trainer_interface.cc:670,1
    - Dst: ModelProto*::pieces_size
      Src: /src/sentencepiece/src/trainer_interface.cc:671,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/trainer_interface.cc:673,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:673,1
    - Dst: ModelProto*::pieces_size
      Src: /src/sentencepiece/src/trainer_interface.cc:673,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/trainer_interface.cc:674,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:676,1
    - Dst: ModelProto*::pieces_size
      Src: /src/sentencepiece/src/trainer_interface.cc:676,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/trainer_interface.cc:677,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:677,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/src/trainer_interface.cc:677,1
    - Dst: absl::flat_hash_set::size
      Src: /src/sentencepiece/src/trainer_interface.cc:677,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:680,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - model_proto
    argTypes:
    - ModelProto*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 681
    functionName: sentencepiece::TrainerInterface::Serialize
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - RET_CHECK_GE
    - auto*::set_type
    - RET_CHECK_EQ
    - CHECK_PIECE
    - ModelProto*::mutable_denormalizer_spec
    - ModelProto*::pieces_size
    - model_type
    - RET_CHECK_NE
    - auto*::set_piece
    - absl::flat_hash_set::size
    - auto*::piece
    - size
    - normalization_rule_tsv
    - ModelProto*::Clear
    - end
    - absl::StrFormat
    - find
    - hard_vocab_limit
    - ModelProto*::mutable_normalizer_spec
    - ModelProto*::mutable_trainer_spec
    - vocab_size
    - sentencepiece::TrainerInterface::status
    - static_cast<int32_t>
    - auto*::type
    - ModelProto*::add_pieces
    - RETURN_IF_ERROR
    - auto*::set_score
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerInterface::Serialize(ModelProto* model_proto) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - piece
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: CHECK_PIECE
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_PIECE(piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:684,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:687,1
    - Dst: sentencepiece::TrainerInterface::Serialize
      Src: /src/sentencepiece/src/trainer_interface.cc:687,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/trainer_interface.cc:689,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/trainer_interface.cc:689,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:690,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/trainer_interface.cc:690,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/trainer_interface.cc:691,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/trainer_interface.cc:691,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 693
    functionName: sentencepiece::TrainerInterface::SaveModel
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::TrainerInterface::Serialize
    - auto::status
    - auto::Write
    - LOG
    - ModelProto::SerializeAsString
    - absl::string_view::data
    - RETURN_IF_ERROR
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerInterface::SaveModel(absl::string_view filename)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:696,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:698,1
    - Dst: sentencepiece::TrainerInterface::Serialize
      Src: /src/sentencepiece/src/trainer_interface.cc:698,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/trainer_interface.cc:699,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:700,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/trainer_interface.cc:700,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:702,1
    - Dst: piece
      Src: /src/sentencepiece/src/trainer_interface.cc:703,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:704,1
    - Dst: piece
      Src: /src/sentencepiece/src/trainer_interface.cc:704,1
    - Dst: vocabulary_output_piece_score
      Src: /src/sentencepiece/src/trainer_interface.cc:710,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:711,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:712,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/trainer_interface.cc:713,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface.cc:713,1
    - Dst: piece
      Src: /src/sentencepiece/src/trainer_interface.cc:713,1
    - Dst: score
      Src: /src/sentencepiece/src/trainer_interface.cc:713,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:716,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:717,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/trainer_interface.cc:717,1
    - Dst: piece
      Src: /src/sentencepiece/src/trainer_interface.cc:717,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:721,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 722
    functionName: sentencepiece::TrainerInterface::SaveVocab
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - auto::WriteLine
    - sentencepiece::TrainerInterface::Serialize
    - score
    - vocabulary_output_piece_score
    - auto::status
    - piece
    - absl::StrCat
    - LOG
    - RET_CHECK
    - RETURN_IF_ERROR
    - ModelProto::pieces
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerInterface::SaveVocab(absl::string_view filename)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:726,1
    - Dst: sentencepiece::TrainerInterface::Serialize
      Src: /src/sentencepiece/src/trainer_interface.cc:726,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:728,1
    - Dst: sentencepiece::TrainerInterface::SaveModel
      Src: /src/sentencepiece/src/trainer_interface.cc:728,1
    - Dst: model_prefix
      Src: /src/sentencepiece/src/trainer_interface.cc:728,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:729,1
    - Dst: sentencepiece::TrainerInterface::SaveVocab
      Src: /src/sentencepiece/src/trainer_interface.cc:729,1
    - Dst: model_prefix
      Src: /src/sentencepiece/src/trainer_interface.cc:729,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 732
    functionName: sentencepiece::TrainerInterface::Save
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::TrainerInterface::SaveModel
    - absl::OkStatus
    - sentencepiece::TrainerInterface::Serialize
    - sentencepiece::TrainerInterface::SaveVocab
    - model_prefix
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerInterface::Save() const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:735,1
    - Dst: empty
      Src: /src/sentencepiece/src/trainer_interface.cc:735,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:742,1
    - Dst: find
      Src: /src/sentencepiece/src/trainer_interface.cc:743,1
    - Dst: end
      Src: /src/sentencepiece/src/trainer_interface.cc:743,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:744,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:747,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/trainer_interface.cc:750,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:751,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:756,1
    - Dst: insert_id
      Src: /src/sentencepiece/src/trainer_interface.cc:756,1
    - Dst: unk_id
      Src: /src/sentencepiece/src/trainer_interface.cc:756,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:756,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:757,1
    - Dst: insert_id
      Src: /src/sentencepiece/src/trainer_interface.cc:757,1
    - Dst: bos_id
      Src: /src/sentencepiece/src/trainer_interface.cc:757,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:757,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:758,1
    - Dst: insert_id
      Src: /src/sentencepiece/src/trainer_interface.cc:758,1
    - Dst: eos_id
      Src: /src/sentencepiece/src/trainer_interface.cc:758,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:758,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:759,1
    - Dst: insert_id
      Src: /src/sentencepiece/src/trainer_interface.cc:759,1
    - Dst: pad_id
      Src: /src/sentencepiece/src/trainer_interface.cc:759,1
    - Dst: pad_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:759,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:761,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:761,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/sentencepiece/src/trainer_interface.cc:769,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/trainer_interface.cc:770,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface.cc:770,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:774,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/trainer_interface.cc:775,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface.cc:776,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:776,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:781,1
    - Dst: bos_id
      Src: /src/sentencepiece/src/trainer_interface.cc:781,1
    - Dst: bos_id
      Src: /src/sentencepiece/src/trainer_interface.cc:782,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:783,1
    - Dst: eos_id
      Src: /src/sentencepiece/src/trainer_interface.cc:783,1
    - Dst: eos_id
      Src: /src/sentencepiece/src/trainer_interface.cc:784,1
    - Dst: pad_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:785,1
    - Dst: pad_id
      Src: /src/sentencepiece/src/trainer_interface.cc:785,1
    - Dst: pad_id
      Src: /src/sentencepiece/src/trainer_interface.cc:786,1
    - Dst: find
      Src: /src/sentencepiece/src/trainer_interface.cc:788,1
    - Dst: end
      Src: /src/sentencepiece/src/trainer_interface.cc:788,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/trainer_interface.cc:791,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:794,1
    - Dst: control_symbols
      Src: /src/sentencepiece/src/trainer_interface.cc:797,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:798,1
    - Dst: insert_meta_symbol
      Src: /src/sentencepiece/src/trainer_interface.cc:798,1
    - Dst: user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface.cc:801,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:802,1
    - Dst: insert_meta_symbol
      Src: /src/sentencepiece/src/trainer_interface.cc:803,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:804,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/trainer_interface.cc:805,1
    - Dst: absl::StartsWith
      Src: /src/sentencepiece/src/trainer_interface.cc:806,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:808,1
    - Dst: insert_meta_symbol
      Src: /src/sentencepiece/src/trainer_interface.cc:809,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface.cc:809,1
    - Dst: byte_fallback
      Src: /src/sentencepiece/src/trainer_interface.cc:814,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:816,1
    - Dst: insert_meta_symbol
      Src: /src/sentencepiece/src/trainer_interface.cc:817,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/trainer_interface.cc:817,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:821,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 822
    functionName: sentencepiece::TrainerInterface::InitMetaPieces
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 1
    functionsReached:
    - absl::OkStatus
    - eos_piece
    - absl::StrCat
    - byte_fallback
    - empty
    - pad_id
    - model_type
    - bos_piece
    - control_symbols
    - pad_piece
    - user_defined_symbols
    - bos_id
    - end
    - find
    - unk_id
    - unk_piece
    - eos_id
    - ByteToPiece
    - RET_CHECK
    - absl::InternalError
    - absl::flat_hash_set::insert
    - insert_meta_symbol
    - std::make_pair
    - vocab_size
    - insert_id
    - absl::StartsWith
    - escape_whitespaces
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerInterface::InitMetaPieces()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_GT
      Src: /src/sentencepiece/src/trainer_interface.cc:82,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:82,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:84,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:85,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:86,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/trainer_interface.cc:86,1
    - Dst: seed_sentencepieces_file
      Src: /src/sentencepiece/src/trainer_interface.cc:90,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:91,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:91,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:98,1
    - Dst: character_coverage
      Src: /src/sentencepiece/src/trainer_interface.cc:98,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:99,1
    - Dst: max_sentencepiece_length
      Src: /src/sentencepiece/src/trainer_interface.cc:99,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:100,1
    - Dst: num_sub_iterations
      Src: /src/sentencepiece/src/trainer_interface.cc:100,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:101,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/trainer_interface.cc:101,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:102,1
    - Dst: self_test_sample_size
      Src: /src/sentencepiece/src/trainer_interface.cc:102,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:103,1
    - Dst: shrinking_factor
      Src: /src/sentencepiece/src/trainer_interface.cc:103,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:104,1
    - Dst: max_sentence_length
      Src: /src/sentencepiece/src/trainer_interface.cc:104,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:107,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:107,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:108,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:110,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:110,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:111,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:111,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:112,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:112,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:113,1
    - Dst: pad_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:113,1
    - Dst: pretokenization_delimiter
      Src: /src/sentencepiece/src/trainer_interface.cc:116,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:117,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:117,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:118,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:120,1
    - Dst: pretokenization_delimiter
      Src: /src/sentencepiece/src/trainer_interface.cc:121,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/trainer_interface.cc:126,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:127,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:127,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:129,1
    - Dst: byte_fallback
      Src: /src/sentencepiece/src/trainer_interface.cc:129,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:131,1
    - Dst: required_chars
      Src: /src/sentencepiece/src/trainer_interface.cc:131,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - ' trainer_spec'
    - ' components'
    argTypes:
    - TrainerSpec
    - TrainerComponents
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 137
    functionName: sentencepiece::VerifySpec
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - num_sub_iterations
    - eos_piece
    - required_chars
    - byte_fallback
    - model_type
    - shrinking_factor
    - bos_piece
    - input_sentence_size
    - pad_piece
    - use_all_vocab
    - pretokenization_delimiter
    - character_coverage
    - RET_CHECK_GT
    - unk_piece
    - max_sentence_length
    - seed_sentencepieces_file
    - RET_CHECK
    - CHECK_RANGE
    - vocab_size
    - max_sentencepiece_length
    - self_test_sample_size
    - absl::GetFlag
    - num_threads
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status VerifySpec(const TrainerSpec& trainer_spec,\n                        const
      TrainerComponents& components)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - variable
    - ','
    - minval
    - ','
    - maxval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: CHECK_RANGE
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_RANGE(variable, minval, maxval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: sentencepiece::is_unicode_decimal_number
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_unicode_decimal_number(char32_t c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:152,1
    - Dst: shuffle_input_sentence
      Src: /src/sentencepiece/src/trainer_interface.cc:153,1
    - Dst: std::make_unique<Sampler>
      Src: /src/sentencepiece/src/trainer_interface.cc:155,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:156,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:158,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sentences
    - ' spec'
    argTypes:
    - TrainerInterface::Sentences*
    - TrainerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: sentencepiece::SentenceSelector::SentenceSelector
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Sampler>
    - shuffle_input_sentence
    - input_sentence_size
    - LOG
    linkageType: ''
    returnType: void
    signature: "void SentenceSelector(TrainerInterface::Sentences* sentences,\n                   const
      TrainerSpec& spec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:166,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:167,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:167,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:169,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: sentencepiece::SentenceSelector::Finish
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - size
    - LOG
    linkageType: ''
    returnType: void
    signature: void Finish() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:178,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/trainer_interface.cc:179,1
    - Dst: shuffle_input_sentence
      Src: /src/sentencepiece/src/trainer_interface.cc:181,1
    - Dst: sentencepiece::SentenceSelector::Add
      Src: /src/sentencepiece/src/trainer_interface.cc:182,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/trainer_interface.cc:184,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:185,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:185,1
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:191,1
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:191,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:192,1
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' sentence'
    argTypes:
    - std::pair<std::string, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: sentencepiece::SentenceSelector::Add
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 3
    functionsReached:
    - size
    - shuffle_input_sentence
    - input_sentence_size
    - LOG
    - sentencepiece::SentenceSelector::total_size
    - sentencepiece::SentenceSelector::Add
    - emplace_back
    linkageType: ''
    returnType: bool
    signature: bool Add(const std::pair<std::string, int64_t>& sentence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:199,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: sentencepiece::SentenceSelector::total_size
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 6
    functionsReached:
    - sentencepiece::SentenceSelector::total_size
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t total_size() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK_GT
      Src: /src/sentencepiece/src/trainer_interface.cc:82,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:82,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:84,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:85,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:86,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/trainer_interface.cc:86,1
    - Dst: seed_sentencepieces_file
      Src: /src/sentencepiece/src/trainer_interface.cc:90,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:91,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:91,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:98,1
    - Dst: character_coverage
      Src: /src/sentencepiece/src/trainer_interface.cc:98,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:99,1
    - Dst: max_sentencepiece_length
      Src: /src/sentencepiece/src/trainer_interface.cc:99,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:100,1
    - Dst: num_sub_iterations
      Src: /src/sentencepiece/src/trainer_interface.cc:100,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:101,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/trainer_interface.cc:101,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:102,1
    - Dst: self_test_sample_size
      Src: /src/sentencepiece/src/trainer_interface.cc:102,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:103,1
    - Dst: shrinking_factor
      Src: /src/sentencepiece/src/trainer_interface.cc:103,1
    - Dst: CHECK_RANGE
      Src: /src/sentencepiece/src/trainer_interface.cc:104,1
    - Dst: max_sentence_length
      Src: /src/sentencepiece/src/trainer_interface.cc:104,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:107,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:107,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:108,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:110,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:110,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:111,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:111,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:112,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:112,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:113,1
    - Dst: pad_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:113,1
    - Dst: pretokenization_delimiter
      Src: /src/sentencepiece/src/trainer_interface.cc:116,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:117,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:117,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:118,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:120,1
    - Dst: pretokenization_delimiter
      Src: /src/sentencepiece/src/trainer_interface.cc:121,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/trainer_interface.cc:126,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:127,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:127,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:129,1
    - Dst: byte_fallback
      Src: /src/sentencepiece/src/trainer_interface.cc:129,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:131,1
    - Dst: required_chars
      Src: /src/sentencepiece/src/trainer_interface.cc:131,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:136,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - ' trainer_spec'
    - ' components'
    argTypes:
    - TrainerSpec
    - TrainerComponents
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 137
    functionName: sentencepiece::VerifySpec
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - num_sub_iterations
    - eos_piece
    - required_chars
    - byte_fallback
    - model_type
    - shrinking_factor
    - bos_piece
    - input_sentence_size
    - pad_piece
    - use_all_vocab
    - pretokenization_delimiter
    - character_coverage
    - RET_CHECK_GT
    - unk_piece
    - max_sentence_length
    - seed_sentencepieces_file
    - RET_CHECK
    - CHECK_RANGE
    - vocab_size
    - max_sentencepiece_length
    - self_test_sample_size
    - absl::GetFlag
    - num_threads
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status VerifySpec(const TrainerSpec& trainer_spec,\n                        const
      TrainerComponents& components)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - variable
    - ','
    - minval
    - ','
    - maxval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: CHECK_RANGE
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_RANGE(variable, minval, maxval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    functionName: sentencepiece::is_unicode_decimal_number
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_unicode_decimal_number(char32_t c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:152,1
    - Dst: shuffle_input_sentence
      Src: /src/sentencepiece/src/trainer_interface.cc:153,1
    - Dst: std::make_unique<Sampler>
      Src: /src/sentencepiece/src/trainer_interface.cc:155,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:156,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:158,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sentences
    - ' spec'
    argTypes:
    - TrainerInterface::Sentences*
    - TrainerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 163
    functionName: sentencepiece::SentenceSelector::SentenceSelector
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - std::make_unique<Sampler>
    - shuffle_input_sentence
    - input_sentence_size
    - LOG
    linkageType: ''
    returnType: void
    signature: "void SentenceSelector(TrainerInterface::Sentences* sentences,\n                   const
      TrainerSpec& spec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:166,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:167,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:167,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:169,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 175
    functionName: sentencepiece::SentenceSelector::Finish
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - size
    - LOG
    linkageType: ''
    returnType: void
    signature: void Finish() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:178,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/trainer_interface.cc:179,1
    - Dst: shuffle_input_sentence
      Src: /src/sentencepiece/src/trainer_interface.cc:181,1
    - Dst: sentencepiece::SentenceSelector::Add
      Src: /src/sentencepiece/src/trainer_interface.cc:182,1
    - Dst: emplace_back
      Src: /src/sentencepiece/src/trainer_interface.cc:184,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:185,1
    - Dst: input_sentence_size
      Src: /src/sentencepiece/src/trainer_interface.cc:185,1
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:191,1
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:191,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:192,1
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:192,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' sentence'
    argTypes:
    - std::pair<std::string, int64_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: sentencepiece::SentenceSelector::Add
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 4
    functionsReached:
    - size
    - shuffle_input_sentence
    - input_sentence_size
    - LOG
    - sentencepiece::SentenceSelector::total_size
    - sentencepiece::SentenceSelector::Add
    - emplace_back
    linkageType: ''
    returnType: bool
    signature: bool Add(const std::pair<std::string, int64_t>& sentence)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:199,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 200
    functionName: sentencepiece::SentenceSelector::total_size
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 8
    functionsReached:
    - sentencepiece::SentenceSelector::total_size
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t total_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MultiFileSentenceIterator::Next
      Src: /src/sentencepiece/src/trainer_interface.cc:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' files'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 209
    functionDepth: 3
    functionLinenumber: 209
    functionLinenumberEnd: 213
    functionName: sentencepiece::MultiFileSentenceIterator::MultiFileSentenceIterator
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::MultiFileSentenceIterator::Next
    linkageType: ''
    returnType: void
    signature: "void MultiFileSentenceIterator::MultiFileSentenceIterator(\n    const
      std::vector<std::string>& files)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    functionName: sentencepiece::MultiFileSentenceIterator::done
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool MultiFileSentenceIterator::done() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:220,1
    - Dst: sentencepiece::MultiFileSentenceIterator::status
      Src: /src/sentencepiece/src/trainer_interface.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: sentencepiece::MultiFileSentenceIterator::status
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::MultiFileSentenceIterator::status
    - RET_CHECK
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status MultiFileSentenceIterator::status() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::MultiFileSentenceIterator::TryRead
      Src: /src/sentencepiece/src/trainer_interface.cc:225,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:227,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/trainer_interface.cc:229,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:230,1
    - Dst: sentencepiece::MultiFileSentenceIterator::status
      Src: /src/sentencepiece/src/trainer_interface.cc:231,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:231,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:232,1
    - Dst: sentencepiece::MultiFileSentenceIterator::TryRead
      Src: /src/sentencepiece/src/trainer_interface.cc:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: sentencepiece::MultiFileSentenceIterator::Next
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - size
    - LOG
    - sentencepiece::MultiFileSentenceIterator::status
    - sentencepiece::filesystem::NewReadableFile
    - sentencepiece::MultiFileSentenceIterator::TryRead
    linkageType: ''
    returnType: void
    signature: void MultiFileSentenceIterator::Next()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ReadLine
      Src: /src/sentencepiece/src/trainer_interface.cc:242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    functionName: sentencepiece::MultiFileSentenceIterator::TryRead
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 2
    functionsReached:
    - ReadLine
    linkageType: ''
    returnType: void
    signature: void MultiFileSentenceIterator::TryRead()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/src/trainer_interface.cc:248,1
    - Dst: std::move
      Src: /src/sentencepiece/src/trainer_interface.cc:249,1
    - Dst: std::move
      Src: /src/sentencepiece/src/trainer_interface.cc:250,1
    - Dst: VerifySpec
      Src: /src/sentencepiece/src/trainer_interface.cc:251,1
    - Dst: ok
      Src: /src/sentencepiece/src/trainer_interface.cc:252,1
    - Dst: sentencepiece::TrainerInterface::InitMetaPieces
      Src: /src/sentencepiece/src/trainer_interface.cc:253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - trainer_spec
    - normalizer_spec
    - denormalizer_spec
    argTypes:
    - TrainerSpec
    - NormalizerSpec
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 245
    functionDepth: 2
    functionLinenumber: 245
    functionLinenumberEnd: 255
    functionName: sentencepiece::TrainerInterface::TrainerInterface
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::TrainerInterface::InitMetaPieces
    - VerifySpec
    - ok
    - std::move
    linkageType: ''
    returnType: void
    signature: "void TrainerInterface::TrainerInterface(TrainerSpec trainer_spec,\n
      \                                  NormalizerSpec normalizer_spec,\n                                   NormalizerSpec
      denormalizer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: TrainerInterface::~TrainerInterface()
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TrainerInterface::~TrainerInterface()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/trainer_interface.cc:262,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:263,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/src/trainer_interface.cc:264,1
    - Dst: max_sentencepiece_length
      Src: /src/sentencepiece/src/trainer_interface.cc:264,1
    - Dst: static_cast<unicode_script::ScriptType>
      Src: /src/sentencepiece/src/trainer_interface.cc:268,1
    - Dst: std::numeric_limits<char32_t>::max
      Src: /src/sentencepiece/src/trainer_interface.cc:269,1
    - Dst: std::all_of
      Src: /src/sentencepiece/src/trainer_interface.cc:273,1
    - Dst: begin
      Src: /src/sentencepiece/src/trainer_interface.cc:273,1
    - Dst: end
      Src: /src/sentencepiece/src/trainer_interface.cc:273,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:276,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:289,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/trainer_interface.cc:292,1
    - Dst: allow_whitespace_only_pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:306,1
    - Dst: treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/trainer_interface.cc:308,1
    - Dst: split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface.cc:309,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:310,1
    - Dst: split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface.cc:311,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:312,1
    - Dst: split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface.cc:316,1
    - Dst: split_by_whitespace
      Src: /src/sentencepiece/src/trainer_interface.cc:317,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:318,1
    - Dst: sentencepiece::unicode_script::GetScript
      Src: /src/sentencepiece/src/trainer_interface.cc:324,1
    - Dst: split_by_number
      Src: /src/sentencepiece/src/trainer_interface.cc:334,1
    - Dst: is_unicode_decimal_number
      Src: /src/sentencepiece/src/trainer_interface.cc:334,1
    - Dst: split_digits
      Src: /src/sentencepiece/src/trainer_interface.cc:338,1
    - Dst: is_unicode_decimal_number
      Src: /src/sentencepiece/src/trainer_interface.cc:338,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:339,1
    - Dst: split_by_unicode_script
      Src: /src/sentencepiece/src/trainer_interface.cc:346,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 57
    argCount: 1
    argNames:
    - ' sentencepiece'
    argTypes:
    - string_util::UnicodeText
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 355
    functionName: sentencepiece::TrainerInterface::IsValidSentencePiece
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - split_by_unicode_script
    - treat_whitespace_as_suffix
    - empty
    - split_digits
    - std::numeric_limits<char32_t>::max
    - size
    - sentencepiece::unicode_script::GetScript
    - sentencepiece::string_util::IsValidCodepoint
    - LOG
    - begin
    - end
    - allow_whitespace_only_pieces
    - split_by_whitespace
    - std::all_of
    - is_unicode_decimal_number
    - split_by_number
    - static_cast<unicode_script::ScriptType>
    - max_sentencepiece_length
    - static_cast<size_t>
    linkageType: ''
    returnType: bool
    signature: "bool TrainerInterface::IsValidSentencePiece(\n    const string_util::UnicodeText&
      sentencepiece) const"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:358,1
    - Dst: sentencepiece::TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface.cc:358,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:359,1
    - Dst: VerifySpec
      Src: /src/sentencepiece/src/trainer_interface.cc:359,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:360,1
    - Dst: empty
      Src: /src/sentencepiece/src/trainer_interface.cc:360,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:361,1
    - Dst: empty
      Src: /src/sentencepiece/src/trainer_interface.cc:361,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:362,1
    - Dst: input_format
      Src: /src/sentencepiece/src/trainer_interface.cc:362,1
    - Dst: input_format
      Src: /src/sentencepiece/src/trainer_interface.cc:363,1
    - Dst: input_format
      Src: /src/sentencepiece/src/trainer_interface.cc:364,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:367,1
    - Dst: input
      Src: /src/sentencepiece/src/trainer_interface.cc:368,1
    - Dst: input
      Src: /src/sentencepiece/src/trainer_interface.cc:370,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:373,1
    - Dst: model_prefix
      Src: /src/sentencepiece/src/trainer_interface.cc:375,1
    - Dst: model_prefix
      Src: /src/sentencepiece/src/trainer_interface.cc:376,1
    - Dst: input_format
      Src: /src/sentencepiece/src/trainer_interface.cc:379,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:387,1
    - Dst: std::make_unique<MultiFileSentenceIterator>
      Src: /src/sentencepiece/src/trainer_interface.cc:390,1
    - Dst: std::vector<std::string>
      Src: /src/sentencepiece/src/trainer_interface.cc:390,1
    - Dst: input
      Src: /src/sentencepiece/src/trainer_interface.cc:391,1
    - Dst: input
      Src: /src/sentencepiece/src/trainer_interface.cc:391,1
    - Dst: std::unique_ptr::get
      Src: /src/sentencepiece/src/trainer_interface.cc:392,1
    - Dst: sentence_iterator::done
      Src: /src/sentencepiece/src/trainer_interface.cc:395,1
    - Dst: sentence_iterator::Next
      Src: /src/sentencepiece/src/trainer_interface.cc:396,1
    - Dst: sentence_iterator::value
      Src: /src/sentencepiece/src/trainer_interface.cc:398,1
    - Dst: absl::StrSplit
      Src: /src/sentencepiece/src/trainer_interface.cc:401,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/trainer_interface.cc:402,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/trainer_interface.cc:402,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:405,1
    - Dst: absl::SimpleAtoi
      Src: /src/sentencepiece/src/trainer_interface.cc:405,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/trainer_interface.cc:407,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/src/trainer_interface.cc:410,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/trainer_interface.cc:414,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/trainer_interface.cc:414,1
    - Dst: max_sentence_length
      Src: /src/sentencepiece/src/trainer_interface.cc:415,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:417,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/trainer_interface.cc:417,1
    - Dst: max_sentence_length
      Src: /src/sentencepiece/src/trainer_interface.cc:418,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:419,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:420,1
    - Dst: std::string::find
      Src: /src/sentencepiece/src/trainer_interface.cc:427,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:428,1
    - Dst: SentenceSelector::Add
      Src: /src/sentencepiece/src/trainer_interface.cc:432,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/trainer_interface.cc:432,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:437,1
    - Dst: sentence_iterator::status
      Src: /src/sentencepiece/src/trainer_interface.cc:437,1
    - Dst: SentenceSelector::Finish
      Src: /src/sentencepiece/src/trainer_interface.cc:441,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:443,1
    - Dst: SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:443,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:444,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:444,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:446,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:446,1
    - Dst: SentenceSelector::total_size
      Src: /src/sentencepiece/src/trainer_interface.cc:447,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:451,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:459,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/src/trainer_interface.cc:460,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:464,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:465,1
    - Dst: empty
      Src: /src/sentencepiece/src/trainer_interface.cc:465,1
    - Dst: num_threads
      Src: /src/sentencepiece/src/trainer_interface.cc:467,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:468,1
    - Dst: RunBatch
      Src: /src/sentencepiece/src/trainer_interface.cc:468,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:469,1
    - Dst: normalizer::PrefixMatcher::GlobalReplace
      Src: /src/sentencepiece/src/trainer_interface.cc:472,1
    - Dst: normalizer::Normalizer::Normalize
      Src: /src/sentencepiece/src/trainer_interface.cc:472,1
    - Dst: pretokenizer
      Src: /src/sentencepiece/src/trainer_interface.cc:475,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/trainer_interface.cc:477,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/src/trainer_interface.cc:479,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface.cc:479,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/trainer_interface.cc:486,1
    - Dst: pretokenization_delimiter
      Src: /src/sentencepiece/src/trainer_interface.cc:487,1
    - Dst: absl::StrReplaceAll
      Src: /src/sentencepiece/src/trainer_interface.cc:488,1
    - Dst: pretokenization_delimiter
      Src: /src/sentencepiece/src/trainer_interface.cc:489,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:492,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:496,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:498,1
    - Dst: auto*::find
      Src: /src/sentencepiece/src/trainer_interface.cc:498,1
    - Dst: auto*::empty
      Src: /src/sentencepiece/src/trainer_interface.cc:500,1
    - Dst: std::swap
      Src: /src/sentencepiece/src/trainer_interface.cc:501,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:501,1
    - Dst: resize
      Src: /src/sentencepiece/src/trainer_interface.cc:502,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:502,1
    - Dst: absl::GetFlag
      Src: /src/sentencepiece/src/trainer_interface.cc:509,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/trainer_interface.cc:515,1
    - Dst: required_chars
      Src: /src/sentencepiece/src/trainer_interface.cc:515,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:516,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/trainer_interface.cc:516,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:518,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/trainer_interface.cc:526,1
    - Dst: sentencepiece::string_util::IsValidCodepoint
      Src: /src/sentencepiece/src/trainer_interface.cc:527,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:531,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:538,1
    - Dst: first::find
      Src: /src/sentencepiece/src/trainer_interface.cc:538,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:546,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/trainer_interface.cc:554,1
    - Dst: use_all_vocab
      Src: /src/sentencepiece/src/trainer_interface.cc:556,1
    - Dst: character_coverage
      Src: /src/sentencepiece/src/trainer_interface.cc:557,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:558,1
    - Dst: RET_CHECK_NE
      Src: /src/sentencepiece/src/trainer_interface.cc:563,1
    - Dst: emplace
      Src: /src/sentencepiece/src/trainer_interface.cc:568,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:571,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:571,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:572,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:575,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/trainer_interface.cc:575,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/src/trainer_interface.cc:581,1
    - Dst: sentencepiece::port::ContainsKey
      Src: /src/sentencepiece/src/trainer_interface.cc:582,1
    - Dst: string_util::UnicodeText::push_back
      Src: /src/sentencepiece/src/trainer_interface.cc:583,1
    - Dst: string_util::UnicodeText::push_back
      Src: /src/sentencepiece/src/trainer_interface.cc:585,1
    - Dst: sentencepiece::string_util::UnicodeTextToUTF8
      Src: /src/sentencepiece/src/trainer_interface.cc:588,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:591,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:592,1
    - Dst: RET_CHECK_LE
      Src: /src/sentencepiece/src/trainer_interface.cc:593,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/src/trainer_interface.cc:594,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:594,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:594,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:595,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:597,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:598,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:598,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:604,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:604,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:606,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 133
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 607
    functionName: sentencepiece::TrainerInterface::LoadSentences
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - absl::InvalidArgumentError
    - RET_CHECK_GE
    - absl::StrReplaceAll
    - absl::StrJoin
    - string_util::UnicodeText::push_back
    - RET_CHECK_LE
    - RET_CHECK_EQ
    - absl::StrCat
    - std::swap
    - required_chars
    - std::string::size
    - std::vector::size
    - empty
    - auto*::empty
    - input_format
    - RunBatch
    - model_type
    - model_prefix
    - RET_CHECK_NE
    - size
    - sentencepiece::string_util::IsValidCodepoint
    - std::string::find
    - emplace
    - LOG
    - normalizer::Normalizer::Normalize
    - VerifySpec
    - auto*::find
    - use_all_vocab
    - input
    - absl::StrSplit
    - SentenceSelector::total_size
    - normalizer::PrefixMatcher::GlobalReplace
    - pretokenizer
    - pretokenization_delimiter
    - character_coverage
    - SentenceSelector::Finish
    - std::set::insert
    - sentence_iterator::done
    - max_sentence_length
    - sentence_iterator::status
    - std::make_unique<MultiFileSentenceIterator>
    - std::vector<std::string>
    - RET_CHECK
    - sentence_iterator::Next
    - std::make_pair
    - sentencepiece::string_util::UTF8ToUnicodeText
    - resize
    - static_cast<int>
    - SentenceSelector::Add
    - vocab_size
    - sentencepiece::port::ContainsKey
    - absl::SimpleAtoi
    - Sorted
    - std::unique_ptr::get
    - sentencepiece::TrainerInterface::status
    - std::string::empty
    - sentence_iterator::value
    - sentencepiece::string_util::UnicodeTextToUTF8
    - first::find
    - RETURN_IF_ERROR
    - absl::GetFlag
    - num_threads
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerInterface::LoadSentences()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:610,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:611,1
    - Dst: SplitIntoWords
      Src: /src/sentencepiece/src/trainer_interface.cc:615,1
    - Dst: treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/trainer_interface.cc:615,1
    - Dst: allow_whitespace_only_pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:616,1
    - Dst: Sorted
      Src: /src/sentencepiece/src/trainer_interface.cc:620,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:621,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 622
    functionName: sentencepiece::TrainerInterface::SplitSentencesByWhitespace
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - allow_whitespace_only_pieces
    - size
    - Sorted
    - treat_whitespace_as_suffix
    - LOG
    - SplitIntoWords
    linkageType: ''
    returnType: void
    signature: void TrainerInterface::SplitSentencesByWhitespace()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:625,1
    - Dst: sentencepiece::TrainerInterface::status
      Src: /src/sentencepiece/src/trainer_interface.cc:625,1
    - Dst: ModelProto*::Clear
      Src: /src/sentencepiece/src/trainer_interface.cc:630,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:638,1
    - Dst: find
      Src: /src/sentencepiece/src/trainer_interface.cc:639,1
    - Dst: end
      Src: /src/sentencepiece/src/trainer_interface.cc:640,1
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:641,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:642,1
    - Dst: auto*::set_type
      Src: /src/sentencepiece/src/trainer_interface.cc:643,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/trainer_interface.cc:644,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/trainer_interface.cc:645,1
    - Dst: ModelProto*::pieces_size
      Src: /src/sentencepiece/src/trainer_interface.cc:645,1
    - Dst: RET_CHECK_NE
      Src: /src/sentencepiece/src/trainer_interface.cc:646,1
    - Dst: auto*::type
      Src: /src/sentencepiece/src/trainer_interface.cc:646,1
    - Dst: CHECK_PIECE
      Src: /src/sentencepiece/src/trainer_interface.cc:647,1
    - Dst: auto*::piece
      Src: /src/sentencepiece/src/trainer_interface.cc:647,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:648,1
    - Dst: ModelProto*::add_pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:650,1
    - Dst: auto*::set_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:651,1
    - Dst: auto*::set_score
      Src: /src/sentencepiece/src/trainer_interface.cc:652,1
    - Dst: CHECK_PIECE
      Src: /src/sentencepiece/src/trainer_interface.cc:653,1
    - Dst: auto*::piece
      Src: /src/sentencepiece/src/trainer_interface.cc:653,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/trainer_interface.cc:657,1
    - Dst: size
      Src: /src/sentencepiece/src/trainer_interface.cc:657,1
    - Dst: ModelProto*::mutable_trainer_spec
      Src: /src/sentencepiece/src/trainer_interface.cc:659,1
    - Dst: ModelProto*::mutable_normalizer_spec
      Src: /src/sentencepiece/src/trainer_interface.cc:660,1
    - Dst: normalization_rule_tsv
      Src: /src/sentencepiece/src/trainer_interface.cc:662,1
    - Dst: ModelProto*::mutable_denormalizer_spec
      Src: /src/sentencepiece/src/trainer_interface.cc:663,1
    - Dst: hard_vocab_limit
      Src: /src/sentencepiece/src/trainer_interface.cc:666,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:667,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/trainer_interface.cc:668,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:668,1
    - Dst: ModelProto*::pieces_size
      Src: /src/sentencepiece/src/trainer_interface.cc:668,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/trainer_interface.cc:669,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:669,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/src/trainer_interface.cc:669,1
    - Dst: absl::flat_hash_set::size
      Src: /src/sentencepiece/src/trainer_interface.cc:669,1
    - Dst: ModelProto*::mutable_trainer_spec
      Src: /src/sentencepiece/src/trainer_interface.cc:670,1
    - Dst: ModelProto*::pieces_size
      Src: /src/sentencepiece/src/trainer_interface.cc:671,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/trainer_interface.cc:673,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:673,1
    - Dst: ModelProto*::pieces_size
      Src: /src/sentencepiece/src/trainer_interface.cc:673,1
    - Dst: absl::StrFormat
      Src: /src/sentencepiece/src/trainer_interface.cc:674,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:676,1
    - Dst: ModelProto*::pieces_size
      Src: /src/sentencepiece/src/trainer_interface.cc:676,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/trainer_interface.cc:677,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:677,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/src/trainer_interface.cc:677,1
    - Dst: absl::flat_hash_set::size
      Src: /src/sentencepiece/src/trainer_interface.cc:677,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:680,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 1
    argNames:
    - model_proto
    argTypes:
    - ModelProto*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 681
    functionName: sentencepiece::TrainerInterface::Serialize
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 3
    functionsReached:
    - absl::OkStatus
    - RET_CHECK_GE
    - auto*::set_type
    - RET_CHECK_EQ
    - CHECK_PIECE
    - ModelProto*::mutable_denormalizer_spec
    - ModelProto*::pieces_size
    - model_type
    - RET_CHECK_NE
    - auto*::set_piece
    - absl::flat_hash_set::size
    - auto*::piece
    - size
    - normalization_rule_tsv
    - ModelProto*::Clear
    - end
    - absl::StrFormat
    - find
    - hard_vocab_limit
    - ModelProto*::mutable_normalizer_spec
    - ModelProto*::mutable_trainer_spec
    - vocab_size
    - sentencepiece::TrainerInterface::status
    - static_cast<int32_t>
    - auto*::type
    - ModelProto*::add_pieces
    - RETURN_IF_ERROR
    - auto*::set_score
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerInterface::Serialize(ModelProto* model_proto) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - piece
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: CHECK_PIECE
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_PIECE(piece)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:684,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:687,1
    - Dst: sentencepiece::TrainerInterface::Serialize
      Src: /src/sentencepiece/src/trainer_interface.cc:687,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/trainer_interface.cc:689,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/trainer_interface.cc:689,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:690,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/trainer_interface.cc:690,1
    - Dst: auto::Write
      Src: /src/sentencepiece/src/trainer_interface.cc:691,1
    - Dst: ModelProto::SerializeAsString
      Src: /src/sentencepiece/src/trainer_interface.cc:691,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 693
    functionName: sentencepiece::TrainerInterface::SaveModel
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 1
    functionsReached:
    - absl::OkStatus
    - sentencepiece::TrainerInterface::Serialize
    - auto::status
    - auto::Write
    - LOG
    - ModelProto::SerializeAsString
    - absl::string_view::data
    - RETURN_IF_ERROR
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerInterface::SaveModel(absl::string_view filename)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:696,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:698,1
    - Dst: sentencepiece::TrainerInterface::Serialize
      Src: /src/sentencepiece/src/trainer_interface.cc:698,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/trainer_interface.cc:699,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:700,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/trainer_interface.cc:700,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:702,1
    - Dst: piece
      Src: /src/sentencepiece/src/trainer_interface.cc:703,1
    - Dst: LOG
      Src: /src/sentencepiece/src/trainer_interface.cc:704,1
    - Dst: piece
      Src: /src/sentencepiece/src/trainer_interface.cc:704,1
    - Dst: vocabulary_output_piece_score
      Src: /src/sentencepiece/src/trainer_interface.cc:710,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:711,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:712,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/trainer_interface.cc:713,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface.cc:713,1
    - Dst: piece
      Src: /src/sentencepiece/src/trainer_interface.cc:713,1
    - Dst: score
      Src: /src/sentencepiece/src/trainer_interface.cc:713,1
    - Dst: ModelProto::pieces
      Src: /src/sentencepiece/src/trainer_interface.cc:716,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:717,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/trainer_interface.cc:717,1
    - Dst: piece
      Src: /src/sentencepiece/src/trainer_interface.cc:717,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:721,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - filename
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 722
    functionName: sentencepiece::TrainerInterface::SaveVocab
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 1
    functionsReached:
    - absl::OkStatus
    - auto::WriteLine
    - sentencepiece::TrainerInterface::Serialize
    - score
    - vocabulary_output_piece_score
    - auto::status
    - piece
    - absl::StrCat
    - LOG
    - RET_CHECK
    - RETURN_IF_ERROR
    - ModelProto::pieces
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerInterface::SaveVocab(absl::string_view filename)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:726,1
    - Dst: sentencepiece::TrainerInterface::Serialize
      Src: /src/sentencepiece/src/trainer_interface.cc:726,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:728,1
    - Dst: sentencepiece::TrainerInterface::SaveModel
      Src: /src/sentencepiece/src/trainer_interface.cc:728,1
    - Dst: model_prefix
      Src: /src/sentencepiece/src/trainer_interface.cc:728,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:729,1
    - Dst: sentencepiece::TrainerInterface::SaveVocab
      Src: /src/sentencepiece/src/trainer_interface.cc:729,1
    - Dst: model_prefix
      Src: /src/sentencepiece/src/trainer_interface.cc:729,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 724
    functionDepth: 3
    functionLinenumber: 724
    functionLinenumberEnd: 732
    functionName: sentencepiece::TrainerInterface::Save
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::TrainerInterface::SaveModel
    - absl::OkStatus
    - sentencepiece::TrainerInterface::Serialize
    - sentencepiece::TrainerInterface::SaveVocab
    - model_prefix
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerInterface::Save() const
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:735,1
    - Dst: empty
      Src: /src/sentencepiece/src/trainer_interface.cc:735,1
    - Dst: vocab_size
      Src: /src/sentencepiece/src/trainer_interface.cc:742,1
    - Dst: find
      Src: /src/sentencepiece/src/trainer_interface.cc:743,1
    - Dst: end
      Src: /src/sentencepiece/src/trainer_interface.cc:743,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:744,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:747,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/trainer_interface.cc:750,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:751,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:756,1
    - Dst: insert_id
      Src: /src/sentencepiece/src/trainer_interface.cc:756,1
    - Dst: unk_id
      Src: /src/sentencepiece/src/trainer_interface.cc:756,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:756,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:757,1
    - Dst: insert_id
      Src: /src/sentencepiece/src/trainer_interface.cc:757,1
    - Dst: bos_id
      Src: /src/sentencepiece/src/trainer_interface.cc:757,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:757,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:758,1
    - Dst: insert_id
      Src: /src/sentencepiece/src/trainer_interface.cc:758,1
    - Dst: eos_id
      Src: /src/sentencepiece/src/trainer_interface.cc:758,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:758,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:759,1
    - Dst: insert_id
      Src: /src/sentencepiece/src/trainer_interface.cc:759,1
    - Dst: pad_id
      Src: /src/sentencepiece/src/trainer_interface.cc:759,1
    - Dst: pad_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:759,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/trainer_interface.cc:761,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:761,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/sentencepiece/src/trainer_interface.cc:769,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/trainer_interface.cc:770,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface.cc:770,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:774,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/trainer_interface.cc:775,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface.cc:776,1
    - Dst: unk_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:776,1
    - Dst: bos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:781,1
    - Dst: bos_id
      Src: /src/sentencepiece/src/trainer_interface.cc:781,1
    - Dst: bos_id
      Src: /src/sentencepiece/src/trainer_interface.cc:782,1
    - Dst: eos_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:783,1
    - Dst: eos_id
      Src: /src/sentencepiece/src/trainer_interface.cc:783,1
    - Dst: eos_id
      Src: /src/sentencepiece/src/trainer_interface.cc:784,1
    - Dst: pad_piece
      Src: /src/sentencepiece/src/trainer_interface.cc:785,1
    - Dst: pad_id
      Src: /src/sentencepiece/src/trainer_interface.cc:785,1
    - Dst: pad_id
      Src: /src/sentencepiece/src/trainer_interface.cc:786,1
    - Dst: find
      Src: /src/sentencepiece/src/trainer_interface.cc:788,1
    - Dst: end
      Src: /src/sentencepiece/src/trainer_interface.cc:788,1
    - Dst: std::make_pair
      Src: /src/sentencepiece/src/trainer_interface.cc:791,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:794,1
    - Dst: control_symbols
      Src: /src/sentencepiece/src/trainer_interface.cc:797,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:798,1
    - Dst: insert_meta_symbol
      Src: /src/sentencepiece/src/trainer_interface.cc:798,1
    - Dst: user_defined_symbols
      Src: /src/sentencepiece/src/trainer_interface.cc:801,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:802,1
    - Dst: insert_meta_symbol
      Src: /src/sentencepiece/src/trainer_interface.cc:803,1
    - Dst: model_type
      Src: /src/sentencepiece/src/trainer_interface.cc:804,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/trainer_interface.cc:805,1
    - Dst: absl::StartsWith
      Src: /src/sentencepiece/src/trainer_interface.cc:806,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:808,1
    - Dst: insert_meta_symbol
      Src: /src/sentencepiece/src/trainer_interface.cc:809,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/src/trainer_interface.cc:809,1
    - Dst: byte_fallback
      Src: /src/sentencepiece/src/trainer_interface.cc:814,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/trainer_interface.cc:816,1
    - Dst: insert_meta_symbol
      Src: /src/sentencepiece/src/trainer_interface.cc:817,1
    - Dst: ByteToPiece
      Src: /src/sentencepiece/src/trainer_interface.cc:817,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/trainer_interface.cc:821,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 822
    functionName: sentencepiece::TrainerInterface::InitMetaPieces
    functionSourceFile: /src/sentencepiece/src/trainer_interface.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - eos_piece
    - absl::StrCat
    - byte_fallback
    - empty
    - pad_id
    - model_type
    - bos_piece
    - control_symbols
    - pad_piece
    - user_defined_symbols
    - bos_id
    - end
    - find
    - unk_id
    - unk_piece
    - eos_id
    - ByteToPiece
    - RET_CHECK
    - absl::InternalError
    - absl::flat_hash_set::insert
    - insert_meta_symbol
    - std::make_pair
    - vocab_size
    - insert_id
    - absl::StartsWith
    - escape_whitespaces
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status TrainerInterface::InitMetaPieces()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/filesystem_test.cc:31,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/filesystem_test.cc:32,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/filesystem_test.cc:32,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/filesystem_test.cc:33,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/filesystem_test.cc:34,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/filesystem_test.cc:39,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/filesystem_test.cc:40,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/filesystem_test.cc:40,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/filesystem_test.cc:42,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/filesystem_test.cc:43,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/filesystem_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/filesystem_test.cc:44,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/filesystem_test.cc:46,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/filesystem_test.cc:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 48
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/filesystem_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ::testing::TempDir
    - std::vector::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - auto::WriteLine
    - EXPECT_FALSE
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, FilesystemTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/filesystem_test.cc:51,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/filesystem_test.cc:52,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/filesystem_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/filesystem_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::filesystem::NewReadableFile
    - auto::status
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, FilesystemInvalidFileTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/filesystem_test.cc:31,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/filesystem_test.cc:32,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/filesystem_test.cc:32,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/filesystem_test.cc:33,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/filesystem_test.cc:34,1
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/filesystem_test.cc:39,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/filesystem_test.cc:40,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/filesystem_test.cc:40,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/filesystem_test.cc:42,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/filesystem_test.cc:43,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/filesystem_test.cc:43,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/filesystem_test.cc:44,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/filesystem_test.cc:46,1
    - Dst: auto::ReadLine
      Src: /src/sentencepiece/src/filesystem_test.cc:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 48
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/filesystem_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ::testing::TempDir
    - std::vector::size
    - EXPECT_TRUE
    - EXPECT_EQ
    - auto::WriteLine
    - EXPECT_FALSE
    - sentencepiece::filesystem::NewReadableFile
    - auto::ReadLine
    - sentencepiece::filesystem::NewWritableFile
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, FilesystemTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::filesystem::NewReadableFile
      Src: /src/sentencepiece/src/filesystem_test.cc:51,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/filesystem_test.cc:52,1
    - Dst: auto::status
      Src: /src/sentencepiece/src/filesystem_test.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: sentencepiece::TEST
    functionSourceFile: /src/sentencepiece/src/filesystem_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_FALSE
    - sentencepiece::filesystem::NewReadableFile
    - auto::status
    linkageType: ''
    returnType: void
    signature: void TEST(UtilTest, FilesystemInvalidFileTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTable
      Src: /src/sentencepiece/src/unicode_script.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - InitTable
    linkageType: ''
    returnType: void
    signature: void GetScriptInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/unicode_script.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScript
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScript(char32_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTable
      Src: /src/sentencepiece/src/unicode_script.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - InitTable
    linkageType: ''
    returnType: void
    signature: void GetScriptInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/unicode_script.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScript
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScript(char32_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetScriptInternal::GetScript
      Src: /src/sentencepiece/src/unicode_script.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: sentencepiece::unicode_script::GetScript
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 6
    functionsReached:
    - GetScriptInternal::GetScript
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScript(char32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTable
      Src: /src/sentencepiece/src/unicode_script.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - InitTable
    linkageType: ''
    returnType: void
    signature: void GetScriptInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/unicode_script.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScript
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScript(char32_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTable
      Src: /src/sentencepiece/src/unicode_script.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - InitTable
    linkageType: ''
    returnType: void
    signature: void GetScriptInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/unicode_script.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScript
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScript(char32_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetScriptInternal::GetScript
      Src: /src/sentencepiece/src/unicode_script.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: sentencepiece::unicode_script::GetScript
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 6
    functionsReached:
    - GetScriptInternal::GetScript
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScript(char32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTable
      Src: /src/sentencepiece/src/unicode_script.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - InitTable
    linkageType: ''
    returnType: void
    signature: void GetScriptInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/unicode_script.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScript
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScript(char32_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTable
      Src: /src/sentencepiece/src/unicode_script.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - InitTable
    linkageType: ''
    returnType: void
    signature: void GetScriptInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/unicode_script.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScript
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScript(char32_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetScriptInternal::GetScript
      Src: /src/sentencepiece/src/unicode_script.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: sentencepiece::unicode_script::GetScript
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 6
    functionsReached:
    - GetScriptInternal::GetScript
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScript(char32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTable
      Src: /src/sentencepiece/src/unicode_script.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - InitTable
    linkageType: ''
    returnType: void
    signature: void GetScriptInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/unicode_script.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScript
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScript(char32_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: InitTable
      Src: /src/sentencepiece/src/unicode_script.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - InitTable
    linkageType: ''
    returnType: void
    signature: void GetScriptInternal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::port::FindWithDefault
      Src: /src/sentencepiece/src/unicode_script.cc:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: sentencepiece::unicode_script::GetScriptInternal::GetScript
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::port::FindWithDefault
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScript(char32_t c) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetScriptInternal::GetScript
      Src: /src/sentencepiece/src/unicode_script.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: sentencepiece::unicode_script::GetScript
    functionSourceFile: /src/sentencepiece/src/unicode_script.cc
    functionUses: 6
    functionsReached:
    - GetScriptInternal::GetScript
    linkageType: ''
    returnType: ScriptType
    signature: ScriptType GetScript(char32_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:53,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:63,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:67,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 72
    functionName: sentencepiece::word::RunTrainer
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:53,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:63,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:67,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 72
    functionName: sentencepiece::word::RunTrainer
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:76,1
    - Dst: sentencepiece::word::RunTrainer
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::word::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:81,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:81,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:83,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:83,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:85,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:86,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:87,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:91,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:92,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:93,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:94,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:95,1
    - Dst: TrainerSpec::set_hard_vocab_limit
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:96,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:99,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:105,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:105,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:108,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:108,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:111,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:112,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:115,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:118,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:118,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:119,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:119,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:120,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 121
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ::testing::TempDir
    - std::vector::size
    - TrainerSpec::set_model_type
    - SentencePieceProcessor::Load
    - EXPECT_FALSE
    - TrainerSpec::add_user_defined_symbols
    - TrainerSpec::set_model_prefix
    - SentencePieceProcessor::Encode
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_hard_vocab_limit
    - TrainerSpec::add_input
    - EXPECT_EQ
    - auto::WriteLine
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - NormalizerSpec::set_add_dummy_prefix
    - SentencePieceProcessor::IsUnknown
    - NormalizerSpec::set_name
    - ASSERT_TRUE
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, UserDefinedSymbolsAreTokenizedInWordModel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:53,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:63,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:67,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 72
    functionName: sentencepiece::word::RunTrainer
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 1
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:53,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:63,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:67,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 72
    functionName: sentencepiece::word::RunTrainer
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 1
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:76,1
    - Dst: sentencepiece::word::RunTrainer
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::word::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:81,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:81,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:83,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:83,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:85,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:86,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:87,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:91,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:92,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:93,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:94,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:95,1
    - Dst: TrainerSpec::set_hard_vocab_limit
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:96,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:99,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:105,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:105,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:108,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:108,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:111,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:112,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:115,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:118,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:118,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:119,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:119,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:120,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 121
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ::testing::TempDir
    - std::vector::size
    - TrainerSpec::set_model_type
    - SentencePieceProcessor::Load
    - EXPECT_FALSE
    - TrainerSpec::add_user_defined_symbols
    - TrainerSpec::set_model_prefix
    - SentencePieceProcessor::Encode
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_hard_vocab_limit
    - TrainerSpec::add_input
    - EXPECT_EQ
    - auto::WriteLine
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - NormalizerSpec::set_add_dummy_prefix
    - SentencePieceProcessor::IsUnknown
    - NormalizerSpec::set_name
    - ASSERT_TRUE
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, UserDefinedSymbolsAreTokenizedInWordModel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:53,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:63,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:67,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 72
    functionName: sentencepiece::word::RunTrainer
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 2
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:53,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:63,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:67,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 72
    functionName: sentencepiece::word::RunTrainer
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 2
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:76,1
    - Dst: sentencepiece::word::RunTrainer
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::word::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:81,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:81,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:83,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:83,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:85,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:86,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:87,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:91,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:92,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:93,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:94,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:95,1
    - Dst: TrainerSpec::set_hard_vocab_limit
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:96,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:99,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:105,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:105,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:108,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:108,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:111,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:112,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:115,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:118,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:118,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:119,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:119,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:120,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 121
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ::testing::TempDir
    - std::vector::size
    - TrainerSpec::set_model_type
    - SentencePieceProcessor::Load
    - EXPECT_FALSE
    - TrainerSpec::add_user_defined_symbols
    - TrainerSpec::set_model_prefix
    - SentencePieceProcessor::Encode
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_hard_vocab_limit
    - TrainerSpec::add_input
    - EXPECT_EQ
    - auto::WriteLine
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - NormalizerSpec::set_add_dummy_prefix
    - SentencePieceProcessor::IsUnknown
    - NormalizerSpec::set_name
    - ASSERT_TRUE
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, UserDefinedSymbolsAreTokenizedInWordModel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:53,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:63,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:67,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 72
    functionName: sentencepiece::word::RunTrainer
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 3
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:35,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:37,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:39,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:41,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:46,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:47,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:48,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:49,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:52,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:53,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:58,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:61,1
    - Dst: SentencePieceProcessor::model_proto
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:63,1
    - Dst: auto::pieces_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:67,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: auto::pieces
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:68,1
    - Dst: absl::StrJoin
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 2
    argNames:
    - input
    - size
    argTypes:
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 72
    functionName: sentencepiece::word::RunTrainer
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 3
    functionsReached:
    - TrainerSpec::set_vocab_size
    - sentencepiece::util::JoinPath
    - Trainer::Train
    - absl::StrJoin
    - std::vector::emplace_back
    - NormalizerSpec::set_add_dummy_prefix
    - auto::pieces
    - ::testing::TempDir
    - SentencePieceProcessor::model_proto
    - auto::pieces_size
    - TrainerSpec::set_model_type
    - TrainerSpec::add_input
    - EXPECT_TRUE
    - auto::WriteLine
    - SentencePieceProcessor::Load
    - NormalizerSpec::set_name
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_model_prefix
    linkageType: ''
    returnType: std::string
    signature: std::string RunTrainer(const std::vector<std::string> &input, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:76,1
    - Dst: sentencepiece::word::RunTrainer
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sentencepiece::word::RunTrainer
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, BasicTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:81,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:81,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:83,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:83,1
    - Dst: sentencepiece::filesystem::NewWritableFile
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:85,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:86,1
    - Dst: auto::WriteLine
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:87,1
    - Dst: TrainerSpec::set_model_type
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:91,1
    - Dst: TrainerSpec::add_input
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:92,1
    - Dst: TrainerSpec::set_model_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:93,1
    - Dst: TrainerSpec::set_vocab_size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:94,1
    - Dst: TrainerSpec::add_user_defined_symbols
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:95,1
    - Dst: TrainerSpec::set_hard_vocab_limit
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:96,1
    - Dst: NormalizerSpec::set_name
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:99,1
    - Dst: NormalizerSpec::set_add_dummy_prefix
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:105,1
    - Dst: Trainer::Train
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:105,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:108,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:108,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:111,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:111,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:112,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:112,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:113,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:114,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:115,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:118,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:118,1
    - Dst: ASSERT_EQ
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:119,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:119,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:120,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/src/word_model_trainer_test.cc:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 121
    functionName: sentencepiece::word::TEST
    functionSourceFile: /src/sentencepiece/src/word_model_trainer_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - ::testing::TempDir
    - std::vector::size
    - TrainerSpec::set_model_type
    - SentencePieceProcessor::Load
    - EXPECT_FALSE
    - TrainerSpec::add_user_defined_symbols
    - TrainerSpec::set_model_prefix
    - SentencePieceProcessor::Encode
    - sentencepiece::filesystem::NewWritableFile
    - TrainerSpec::set_hard_vocab_limit
    - TrainerSpec::add_input
    - EXPECT_EQ
    - auto::WriteLine
    - TrainerSpec::set_vocab_size
    - Trainer::Train
    - NormalizerSpec::set_add_dummy_prefix
    - SentencePieceProcessor::IsUnknown
    - NormalizerSpec::set_name
    - ASSERT_TRUE
    - ASSERT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(TrainerTest, UserDefinedSymbolsAreTokenizedInWordModel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/normalizer.cc:37,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:38,1
    - Dst: sentencepiece::normalizer::Normalizer::Init
      Src: /src/sentencepiece/src/normalizer.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' spec'
    - ' trainer_spec'
    argTypes:
    - NormalizerSpec
    - TrainerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: sentencepiece::normalizer::Normalizer::Normalizer
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Normalizer::Init
    - treat_whitespace_as_suffix
    linkageType: ''
    returnType: void
    signature: "void Normalizer::Normalizer(const NormalizerSpec& spec,\n                       const
      TrainerSpec& trainer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:43,1
    - Dst: sentencepiece::normalizer::Normalizer::Init
      Src: /src/sentencepiece/src/normalizer.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' spec'
    argTypes:
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: sentencepiece::normalizer::Normalizer::Normalizer
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Normalizer::Init
    linkageType: ''
    returnType: void
    signature: void Normalizer::Normalizer(const NormalizerSpec& spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Normalizer::~Normalizer()
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Normalizer::~Normalizer()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer.cc:50,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:52,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer.cc:54,1
    - Dst: ok
      Src: /src/sentencepiece/src/normalizer.cc:57,1
    - Dst: std::make_unique<Darts::DoubleArray>
      Src: /src/sentencepiece/src/normalizer.cc:60,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/sentencepiece/src/normalizer.cc:66,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:66,1
    - Dst: set_array
      Src: /src/sentencepiece/src/normalizer.cc:67,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/normalizer.cc:67,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:67,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:68,1
    - Dst: unit_size
      Src: /src/sentencepiece/src/normalizer.cc:68,1
    - Dst: copy_array
      Src: /src/sentencepiece/src/normalizer.cc:70,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sentencepiece/src/normalizer.cc:70,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:70,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:71,1
    - Dst: validate
      Src: /src/sentencepiece/src/normalizer.cc:74,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:74,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:75,1
    - Dst: reset
      Src: /src/sentencepiece/src/normalizer.cc:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 80
    functionName: sentencepiece::normalizer::Normalizer::Init
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 2
    functionsReached:
    - unit_size
    - size
    - absl::string_view::empty
    - validate
    - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    - reinterpret_cast<uintptr_t>
    - set_array
    - reset
    - precompiled_charsmap
    - absl::string_view::size
    - copy_array
    - std::make_unique<Darts::DoubleArray>
    - absl::string_view::data
    - reinterpret_cast<const char*>
    - absl::InternalError
    - ok
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void Normalizer::Init()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<size_t>*::clear
      Src: /src/sentencepiece/src/normalizer.cc:85,1
    - Dst: std::string*::clear
      Src: /src/sentencepiece/src/normalizer.cc:86,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:88,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:89,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/normalizer.cc:92,1
    - Dst: sentencepiece::normalizer::Normalizer::status
      Src: /src/sentencepiece/src/normalizer.cc:92,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:97,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:98,1
    - Dst: sentencepiece::normalizer::Normalizer::NormalizePrefix
      Src: /src/sentencepiece/src/normalizer.cc:99,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:103,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:109,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:110,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:114,1
    - Dst: std::string*::reserve
      Src: /src/sentencepiece/src/normalizer.cc:115,1
    - Dst: std::vector<size_t>*::reserve
      Src: /src/sentencepiece/src/normalizer.cc:116,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:121,1
    - Dst: std::string*::append
      Src: /src/sentencepiece/src/normalizer.cc:125,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:125,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:125,1
    - Dst: std::vector<size_t>*::insert
      Src: /src/sentencepiece/src/normalizer.cc:127,1
    - Dst: std::vector<size_t>*::end
      Src: /src/sentencepiece/src/normalizer.cc:127,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:127,1
    - Dst: add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer.cc:135,1
    - Dst: add_ws
      Src: /src/sentencepiece/src/normalizer.cc:135,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:137,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:138,1
    - Dst: sentencepiece::normalizer::Normalizer::NormalizePrefix
      Src: /src/sentencepiece/src/normalizer.cc:139,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/normalizer.cc:144,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:147,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:148,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:149,1
    - Dst: add_ws
      Src: /src/sentencepiece/src/normalizer.cc:151,1
    - Dst: std::vector<size_t>*::push_back
      Src: /src/sentencepiece/src/normalizer.cc:154,1
    - Dst: absl::EndsWith
      Src: /src/sentencepiece/src/normalizer.cc:158,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:162,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:163,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:169,1
    - Dst: absl::EndsWith
      Src: /src/sentencepiece/src/normalizer.cc:170,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/normalizer.cc:171,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:171,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/normalizer.cc:172,1
    - Dst: std::string*::resize
      Src: /src/sentencepiece/src/normalizer.cc:173,1
    - Dst: std::vector<size_t>*::resize
      Src: /src/sentencepiece/src/normalizer.cc:176,1
    - Dst: add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer.cc:182,1
    - Dst: add_ws
      Src: /src/sentencepiece/src/normalizer.cc:182,1
    - Dst: std::vector<size_t>*::push_back
      Src: /src/sentencepiece/src/normalizer.cc:185,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/normalizer.cc:186,1
    - Dst: std::vector<size_t>*::size
      Src: /src/sentencepiece/src/normalizer.cc:186,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/normalizer.cc:186,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:189,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 3
    argNames:
    - input
    - normalized
    - norm_to_orig
    argTypes:
    - absl::string_view
    - std::string*
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 190
    functionName: sentencepiece::normalizer::Normalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - std::vector<size_t>*::end
    - RET_CHECK_GE
    - absl::string_view::empty
    - std::string*::size
    - RET_CHECK_EQ
    - sentencepiece::normalizer::Normalizer::status
    - absl::ConsumePrefix
    - absl::string_view::remove_prefix
    - remove_extra_whitespaces
    - std::string*::resize
    - std::string*::append
    - std::string*::reserve
    - std::vector<size_t>*::resize
    - sentencepiece::normalizer::Normalizer::NormalizePrefix
    - std::vector<size_t>*::size
    - add_dummy_prefix
    - std::vector<size_t>*::clear
    - absl::EndsWith
    - absl::string_view::size
    - std::vector<size_t>*::insert
    - absl::string_view::data
    - add_ws
    - std::string*::clear
    - std::vector<size_t>*::reserve
    - std::vector<size_t>*::push_back
    - escape_whitespaces
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Normalizer::Normalize(absl::string_view input,\n                                   std::string*
      normalized,\n                                   std::vector<size_t>* norm_to_orig)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: sentencepiece::normalizer::Normalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 1
    functionsReached:
    - sentencepiece::normalizer::Normalizer::Normalize
    linkageType: ''
    returnType: std::string
    signature: std::string Normalizer::Normalize(absl::string_view input) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:200,1
    - Dst: PrefixMatch
      Src: /src/sentencepiece/src/normalizer.cc:204,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/normalizer.cc:205,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/normalizer.cc:225,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/normalizer.cc:225,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:226,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:227,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:240,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:241,1
    - Dst: sentencepiece::string_util::IsValidDecodeUTF8
      Src: /src/sentencepiece/src/normalizer.cc:243,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:253,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:253,1
    - Dst: data
      Src: /src/sentencepiece/src/normalizer.cc:259,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 263
    functionName: sentencepiece::normalizer::Normalizer::NormalizePrefix
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 1
    functionsReached:
    - size
    - absl::string_view::empty
    - absl::string_view::substr
    - sentencepiece::string_util::IsValidDecodeUTF8
    - absl::string_view
    - commonPrefixSearch
    - std::min<size_t>
    - absl::string_view::size
    - absl::string_view::data
    - data
    - PrefixMatch
    linkageType: ''
    returnType: std::pair<absl::string_view, int>
    signature: "std::pair<absl::string_view, int> Normalizer::NormalizePrefix(\n    absl::string_view
      input) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:270,1
    - Dst: string_util::EncodePOD<uint32_t>
      Src: /src/sentencepiece/src/normalizer.cc:270,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:270,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:271,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:271,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:271,1
    - Dst: sentencepiece::util::is_bigendian
      Src: /src/sentencepiece/src/normalizer.cc:273,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/sentencepiece/src/normalizer.cc:274,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/normalizer.cc:274,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/normalizer.cc:275,1
    - Dst: sentencepiece::util::Swap32
      Src: /src/sentencepiece/src/normalizer.cc:275,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:278,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:278,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - trie_blob
    - normalized
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 281
    functionName: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 10
    functionsReached:
    - std::string::data
    - sentencepiece::util::Swap32
    - sentencepiece::util::is_bigendian
    - reinterpret_cast<uint32_t*>
    - std::string::size
    - absl::string_view::size
    - absl::string_view::data
    - std::string::append
    - string_util::EncodePOD<uint32_t>
    linkageType: ''
    returnType: std::string
    signature: "std::string Normalizer::EncodePrecompiledCharsMap(\n    absl::string_view
      trie_blob, absl::string_view normalized)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:288,1
    - Dst: string_util::DecodePOD<uint32_t>
      Src: /src/sentencepiece/src/normalizer.cc:289,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:290,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:290,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:292,1
    - Dst: sentencepiece::util::is_bigendian
      Src: /src/sentencepiece/src/normalizer.cc:295,1
    - Dst: sentencepiece::util::Swap32
      Src: /src/sentencepiece/src/normalizer.cc:296,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:299,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:300,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:305,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:308,1
    - Dst: sentencepiece::util::is_bigendian
      Src: /src/sentencepiece/src/normalizer.cc:310,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/normalizer.cc:311,1
    - Dst: std::string*::assign
      Src: /src/sentencepiece/src/normalizer.cc:312,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:312,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/sentencepiece/src/normalizer.cc:314,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/normalizer.cc:314,1
    - Dst: std::string*::data
      Src: /src/sentencepiece/src/normalizer.cc:314,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/normalizer.cc:315,1
    - Dst: sentencepiece::util::Swap32
      Src: /src/sentencepiece/src/normalizer.cc:316,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:317,1
    - Dst: std::string*::data
      Src: /src/sentencepiece/src/normalizer.cc:317,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:319,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:319,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:322,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:323,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:323,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:323,1
    - Dst: absl::string_view*::empty
      Src: /src/sentencepiece/src/normalizer.cc:325,1
    - Dst: absl::string_view*::back
      Src: /src/sentencepiece/src/normalizer.cc:325,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:326,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:329,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - blob
    - trie_blob
    - normalized
    - buffer
    argTypes:
    - absl::string_view
    - absl::string_view*
    - absl::string_view*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 330
    functionName: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 7
    functionsReached:
    - absl::OkStatus
    - string_util::DecodePOD<uint32_t>
    - sentencepiece::util::Swap32
    - sentencepiece::util::is_bigendian
    - std::string*::size
    - absl::string_view*::back
    - absl::string_view*::empty
    - absl::string_view
    - reinterpret_cast<uint32_t*>
    - absl::string_view::remove_prefix
    - std::string*::assign
    - absl::string_view::size
    - RET_CHECK
    - std::string*::data
    - absl::string_view::data
    - absl::InternalError
    - const_cast<char*>
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Normalizer::DecodePrecompiledCharsMap(\n    absl::string_view
      blob, absl::string_view* trie_blob,\n    absl::string_view* normalized, std::string*
      buffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/normalizer.cc:333,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/normalizer.cc:336,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:336,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/normalizer.cc:337,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:337,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer.cc:339,1
    - Dst: data
      Src: /src/sentencepiece/src/normalizer.cc:339,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer.cc:340,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:340,1
    - Dst: std::make_unique<Darts::DoubleArray>
      Src: /src/sentencepiece/src/normalizer.cc:342,1
    - Dst: build
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: const_cast<char**>
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: const_cast<size_t*>
      Src: /src/sentencepiece/src/normalizer.cc:344,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer.cc:344,1
    - Dst: LOG
      Src: /src/sentencepiece/src/normalizer.cc:345,1
    - Dst: reset
      Src: /src/sentencepiece/src/normalizer.cc:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' dic'
    argTypes:
    - std::set<absl::string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 348
    functionName: sentencepiece::normalizer::PrefixMatcher::PrefixMatcher
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - size
    - const_cast<char**>
    - std::vector::push_back
    - std::vector::reserve
    - std::vector::size
    - LOG
    - empty
    - const_cast<size_t*>
    - reset
    - std::make_unique<Darts::DoubleArray>
    - build
    - data
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void PrefixMatcher::PrefixMatcher(const std::set<absl::string_view>&
      dic)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/normalizer.cc:358,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/normalizer.cc:359,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:359,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:359,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/normalizer.cc:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - w
    - found
    argTypes:
    - absl::string_view
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 373
    functionName: sentencepiece::normalizer::PrefixMatcher::PrefixMatch
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - std::max<int>
    - sentencepiece::string_util::OneCharLen
    - commonPrefixSearch
    - absl::string_view::size
    - absl::string_view::data
    - std::min<int>
    linkageType: ''
    returnType: int
    signature: int PrefixMatcher::PrefixMatch(absl::string_view w, bool* found) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:378,1
    - Dst: sentencepiece::normalizer::PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer.cc:380,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:382,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:382,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:382,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:384,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:384,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - w
    - out
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: sentencepiece::normalizer::PrefixMatcher::GlobalReplace
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::PrefixMatcher::PrefixMatch
    - absl::string_view::empty
    - absl::string_view::remove_prefix
    - absl::string_view::size
    - absl::string_view::data
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: "std::string PrefixMatcher::GlobalReplace(absl::string_view w,\n                                         absl::string_view
      out) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/normalizer.cc:37,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:38,1
    - Dst: sentencepiece::normalizer::Normalizer::Init
      Src: /src/sentencepiece/src/normalizer.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' spec'
    - ' trainer_spec'
    argTypes:
    - NormalizerSpec
    - TrainerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: sentencepiece::normalizer::Normalizer::Normalizer
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Normalizer::Init
    - treat_whitespace_as_suffix
    linkageType: ''
    returnType: void
    signature: "void Normalizer::Normalizer(const NormalizerSpec& spec,\n                       const
      TrainerSpec& trainer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:43,1
    - Dst: sentencepiece::normalizer::Normalizer::Init
      Src: /src/sentencepiece/src/normalizer.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' spec'
    argTypes:
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: sentencepiece::normalizer::Normalizer::Normalizer
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Normalizer::Init
    linkageType: ''
    returnType: void
    signature: void Normalizer::Normalizer(const NormalizerSpec& spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Normalizer::~Normalizer()
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Normalizer::~Normalizer()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer.cc:50,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:52,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer.cc:54,1
    - Dst: ok
      Src: /src/sentencepiece/src/normalizer.cc:57,1
    - Dst: std::make_unique<Darts::DoubleArray>
      Src: /src/sentencepiece/src/normalizer.cc:60,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/sentencepiece/src/normalizer.cc:66,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:66,1
    - Dst: set_array
      Src: /src/sentencepiece/src/normalizer.cc:67,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/normalizer.cc:67,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:67,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:68,1
    - Dst: unit_size
      Src: /src/sentencepiece/src/normalizer.cc:68,1
    - Dst: copy_array
      Src: /src/sentencepiece/src/normalizer.cc:70,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sentencepiece/src/normalizer.cc:70,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:70,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:71,1
    - Dst: validate
      Src: /src/sentencepiece/src/normalizer.cc:74,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:74,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:75,1
    - Dst: reset
      Src: /src/sentencepiece/src/normalizer.cc:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 80
    functionName: sentencepiece::normalizer::Normalizer::Init
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 4
    functionsReached:
    - unit_size
    - size
    - absl::string_view::empty
    - validate
    - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    - reinterpret_cast<uintptr_t>
    - set_array
    - reset
    - precompiled_charsmap
    - absl::string_view::size
    - copy_array
    - std::make_unique<Darts::DoubleArray>
    - absl::string_view::data
    - reinterpret_cast<const char*>
    - absl::InternalError
    - ok
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void Normalizer::Init()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<size_t>*::clear
      Src: /src/sentencepiece/src/normalizer.cc:85,1
    - Dst: std::string*::clear
      Src: /src/sentencepiece/src/normalizer.cc:86,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:88,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:89,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/normalizer.cc:92,1
    - Dst: sentencepiece::normalizer::Normalizer::status
      Src: /src/sentencepiece/src/normalizer.cc:92,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:97,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:98,1
    - Dst: sentencepiece::normalizer::Normalizer::NormalizePrefix
      Src: /src/sentencepiece/src/normalizer.cc:99,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:103,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:109,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:110,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:114,1
    - Dst: std::string*::reserve
      Src: /src/sentencepiece/src/normalizer.cc:115,1
    - Dst: std::vector<size_t>*::reserve
      Src: /src/sentencepiece/src/normalizer.cc:116,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:121,1
    - Dst: std::string*::append
      Src: /src/sentencepiece/src/normalizer.cc:125,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:125,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:125,1
    - Dst: std::vector<size_t>*::insert
      Src: /src/sentencepiece/src/normalizer.cc:127,1
    - Dst: std::vector<size_t>*::end
      Src: /src/sentencepiece/src/normalizer.cc:127,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:127,1
    - Dst: add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer.cc:135,1
    - Dst: add_ws
      Src: /src/sentencepiece/src/normalizer.cc:135,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:137,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:138,1
    - Dst: sentencepiece::normalizer::Normalizer::NormalizePrefix
      Src: /src/sentencepiece/src/normalizer.cc:139,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/normalizer.cc:144,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:147,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:148,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:149,1
    - Dst: add_ws
      Src: /src/sentencepiece/src/normalizer.cc:151,1
    - Dst: std::vector<size_t>*::push_back
      Src: /src/sentencepiece/src/normalizer.cc:154,1
    - Dst: absl::EndsWith
      Src: /src/sentencepiece/src/normalizer.cc:158,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:162,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:163,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:169,1
    - Dst: absl::EndsWith
      Src: /src/sentencepiece/src/normalizer.cc:170,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/normalizer.cc:171,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:171,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/normalizer.cc:172,1
    - Dst: std::string*::resize
      Src: /src/sentencepiece/src/normalizer.cc:173,1
    - Dst: std::vector<size_t>*::resize
      Src: /src/sentencepiece/src/normalizer.cc:176,1
    - Dst: add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer.cc:182,1
    - Dst: add_ws
      Src: /src/sentencepiece/src/normalizer.cc:182,1
    - Dst: std::vector<size_t>*::push_back
      Src: /src/sentencepiece/src/normalizer.cc:185,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/normalizer.cc:186,1
    - Dst: std::vector<size_t>*::size
      Src: /src/sentencepiece/src/normalizer.cc:186,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/normalizer.cc:186,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:189,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 3
    argNames:
    - input
    - normalized
    - norm_to_orig
    argTypes:
    - absl::string_view
    - std::string*
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 190
    functionName: sentencepiece::normalizer::Normalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 1
    functionsReached:
    - absl::OkStatus
    - std::vector<size_t>*::end
    - RET_CHECK_GE
    - absl::string_view::empty
    - std::string*::size
    - RET_CHECK_EQ
    - sentencepiece::normalizer::Normalizer::status
    - absl::ConsumePrefix
    - absl::string_view::remove_prefix
    - remove_extra_whitespaces
    - std::string*::resize
    - std::string*::append
    - std::string*::reserve
    - std::vector<size_t>*::resize
    - sentencepiece::normalizer::Normalizer::NormalizePrefix
    - std::vector<size_t>*::size
    - add_dummy_prefix
    - std::vector<size_t>*::clear
    - absl::EndsWith
    - absl::string_view::size
    - std::vector<size_t>*::insert
    - absl::string_view::data
    - add_ws
    - std::string*::clear
    - std::vector<size_t>*::reserve
    - std::vector<size_t>*::push_back
    - escape_whitespaces
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Normalizer::Normalize(absl::string_view input,\n                                   std::string*
      normalized,\n                                   std::vector<size_t>* norm_to_orig)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: sentencepiece::normalizer::Normalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::normalizer::Normalizer::Normalize
    linkageType: ''
    returnType: std::string
    signature: std::string Normalizer::Normalize(absl::string_view input) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:200,1
    - Dst: PrefixMatch
      Src: /src/sentencepiece/src/normalizer.cc:204,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/normalizer.cc:205,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/normalizer.cc:225,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/normalizer.cc:225,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:226,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:227,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:240,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:241,1
    - Dst: sentencepiece::string_util::IsValidDecodeUTF8
      Src: /src/sentencepiece/src/normalizer.cc:243,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:253,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:253,1
    - Dst: data
      Src: /src/sentencepiece/src/normalizer.cc:259,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 263
    functionName: sentencepiece::normalizer::Normalizer::NormalizePrefix
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 2
    functionsReached:
    - size
    - absl::string_view::empty
    - absl::string_view::substr
    - sentencepiece::string_util::IsValidDecodeUTF8
    - absl::string_view
    - commonPrefixSearch
    - std::min<size_t>
    - absl::string_view::size
    - absl::string_view::data
    - data
    - PrefixMatch
    linkageType: ''
    returnType: std::pair<absl::string_view, int>
    signature: "std::pair<absl::string_view, int> Normalizer::NormalizePrefix(\n    absl::string_view
      input) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:270,1
    - Dst: string_util::EncodePOD<uint32_t>
      Src: /src/sentencepiece/src/normalizer.cc:270,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:270,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:271,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:271,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:271,1
    - Dst: sentencepiece::util::is_bigendian
      Src: /src/sentencepiece/src/normalizer.cc:273,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/sentencepiece/src/normalizer.cc:274,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/normalizer.cc:274,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/normalizer.cc:275,1
    - Dst: sentencepiece::util::Swap32
      Src: /src/sentencepiece/src/normalizer.cc:275,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:278,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:278,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - trie_blob
    - normalized
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 281
    functionName: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 10
    functionsReached:
    - std::string::data
    - sentencepiece::util::Swap32
    - sentencepiece::util::is_bigendian
    - reinterpret_cast<uint32_t*>
    - std::string::size
    - absl::string_view::size
    - absl::string_view::data
    - std::string::append
    - string_util::EncodePOD<uint32_t>
    linkageType: ''
    returnType: std::string
    signature: "std::string Normalizer::EncodePrecompiledCharsMap(\n    absl::string_view
      trie_blob, absl::string_view normalized)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:288,1
    - Dst: string_util::DecodePOD<uint32_t>
      Src: /src/sentencepiece/src/normalizer.cc:289,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:290,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:290,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:292,1
    - Dst: sentencepiece::util::is_bigendian
      Src: /src/sentencepiece/src/normalizer.cc:295,1
    - Dst: sentencepiece::util::Swap32
      Src: /src/sentencepiece/src/normalizer.cc:296,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:299,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:300,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:305,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:308,1
    - Dst: sentencepiece::util::is_bigendian
      Src: /src/sentencepiece/src/normalizer.cc:310,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/normalizer.cc:311,1
    - Dst: std::string*::assign
      Src: /src/sentencepiece/src/normalizer.cc:312,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:312,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/sentencepiece/src/normalizer.cc:314,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/normalizer.cc:314,1
    - Dst: std::string*::data
      Src: /src/sentencepiece/src/normalizer.cc:314,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/normalizer.cc:315,1
    - Dst: sentencepiece::util::Swap32
      Src: /src/sentencepiece/src/normalizer.cc:316,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:317,1
    - Dst: std::string*::data
      Src: /src/sentencepiece/src/normalizer.cc:317,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:319,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:319,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:322,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:323,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:323,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:323,1
    - Dst: absl::string_view*::empty
      Src: /src/sentencepiece/src/normalizer.cc:325,1
    - Dst: absl::string_view*::back
      Src: /src/sentencepiece/src/normalizer.cc:325,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:326,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:329,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - blob
    - trie_blob
    - normalized
    - buffer
    argTypes:
    - absl::string_view
    - absl::string_view*
    - absl::string_view*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 330
    functionName: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 8
    functionsReached:
    - absl::OkStatus
    - string_util::DecodePOD<uint32_t>
    - sentencepiece::util::Swap32
    - sentencepiece::util::is_bigendian
    - std::string*::size
    - absl::string_view*::back
    - absl::string_view*::empty
    - absl::string_view
    - reinterpret_cast<uint32_t*>
    - absl::string_view::remove_prefix
    - std::string*::assign
    - absl::string_view::size
    - RET_CHECK
    - std::string*::data
    - absl::string_view::data
    - absl::InternalError
    - const_cast<char*>
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Normalizer::DecodePrecompiledCharsMap(\n    absl::string_view
      blob, absl::string_view* trie_blob,\n    absl::string_view* normalized, std::string*
      buffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/normalizer.cc:333,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/normalizer.cc:336,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:336,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/normalizer.cc:337,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:337,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer.cc:339,1
    - Dst: data
      Src: /src/sentencepiece/src/normalizer.cc:339,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer.cc:340,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:340,1
    - Dst: std::make_unique<Darts::DoubleArray>
      Src: /src/sentencepiece/src/normalizer.cc:342,1
    - Dst: build
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: const_cast<char**>
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: const_cast<size_t*>
      Src: /src/sentencepiece/src/normalizer.cc:344,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer.cc:344,1
    - Dst: LOG
      Src: /src/sentencepiece/src/normalizer.cc:345,1
    - Dst: reset
      Src: /src/sentencepiece/src/normalizer.cc:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' dic'
    argTypes:
    - std::set<absl::string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 348
    functionName: sentencepiece::normalizer::PrefixMatcher::PrefixMatcher
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - size
    - const_cast<char**>
    - std::vector::push_back
    - std::vector::reserve
    - std::vector::size
    - LOG
    - empty
    - const_cast<size_t*>
    - reset
    - std::make_unique<Darts::DoubleArray>
    - build
    - data
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void PrefixMatcher::PrefixMatcher(const std::set<absl::string_view>&
      dic)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/normalizer.cc:358,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/normalizer.cc:359,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:359,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:359,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/normalizer.cc:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - w
    - found
    argTypes:
    - absl::string_view
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 373
    functionName: sentencepiece::normalizer::PrefixMatcher::PrefixMatch
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 1
    functionsReached:
    - std::max<int>
    - sentencepiece::string_util::OneCharLen
    - commonPrefixSearch
    - absl::string_view::size
    - absl::string_view::data
    - std::min<int>
    linkageType: ''
    returnType: int
    signature: int PrefixMatcher::PrefixMatch(absl::string_view w, bool* found) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:378,1
    - Dst: sentencepiece::normalizer::PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer.cc:380,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:382,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:382,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:382,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:384,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:384,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - w
    - out
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: sentencepiece::normalizer::PrefixMatcher::GlobalReplace
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::PrefixMatcher::PrefixMatch
    - absl::string_view::empty
    - absl::string_view::remove_prefix
    - absl::string_view::size
    - absl::string_view::data
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: "std::string PrefixMatcher::GlobalReplace(absl::string_view w,\n                                         absl::string_view
      out) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/normalizer.cc:37,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:38,1
    - Dst: sentencepiece::normalizer::Normalizer::Init
      Src: /src/sentencepiece/src/normalizer.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' spec'
    - ' trainer_spec'
    argTypes:
    - NormalizerSpec
    - TrainerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: sentencepiece::normalizer::Normalizer::Normalizer
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Normalizer::Init
    - treat_whitespace_as_suffix
    linkageType: ''
    returnType: void
    signature: "void Normalizer::Normalizer(const NormalizerSpec& spec,\n                       const
      TrainerSpec& trainer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:43,1
    - Dst: sentencepiece::normalizer::Normalizer::Init
      Src: /src/sentencepiece/src/normalizer.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' spec'
    argTypes:
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: sentencepiece::normalizer::Normalizer::Normalizer
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Normalizer::Init
    linkageType: ''
    returnType: void
    signature: void Normalizer::Normalizer(const NormalizerSpec& spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Normalizer::~Normalizer()
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Normalizer::~Normalizer()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer.cc:50,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:52,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer.cc:54,1
    - Dst: ok
      Src: /src/sentencepiece/src/normalizer.cc:57,1
    - Dst: std::make_unique<Darts::DoubleArray>
      Src: /src/sentencepiece/src/normalizer.cc:60,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/sentencepiece/src/normalizer.cc:66,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:66,1
    - Dst: set_array
      Src: /src/sentencepiece/src/normalizer.cc:67,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/normalizer.cc:67,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:67,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:68,1
    - Dst: unit_size
      Src: /src/sentencepiece/src/normalizer.cc:68,1
    - Dst: copy_array
      Src: /src/sentencepiece/src/normalizer.cc:70,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sentencepiece/src/normalizer.cc:70,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:70,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:71,1
    - Dst: validate
      Src: /src/sentencepiece/src/normalizer.cc:74,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:74,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:75,1
    - Dst: reset
      Src: /src/sentencepiece/src/normalizer.cc:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 80
    functionName: sentencepiece::normalizer::Normalizer::Init
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 6
    functionsReached:
    - unit_size
    - size
    - absl::string_view::empty
    - validate
    - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    - reinterpret_cast<uintptr_t>
    - set_array
    - reset
    - precompiled_charsmap
    - absl::string_view::size
    - copy_array
    - std::make_unique<Darts::DoubleArray>
    - absl::string_view::data
    - reinterpret_cast<const char*>
    - absl::InternalError
    - ok
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void Normalizer::Init()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<size_t>*::clear
      Src: /src/sentencepiece/src/normalizer.cc:85,1
    - Dst: std::string*::clear
      Src: /src/sentencepiece/src/normalizer.cc:86,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:88,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:89,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/normalizer.cc:92,1
    - Dst: sentencepiece::normalizer::Normalizer::status
      Src: /src/sentencepiece/src/normalizer.cc:92,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:97,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:98,1
    - Dst: sentencepiece::normalizer::Normalizer::NormalizePrefix
      Src: /src/sentencepiece/src/normalizer.cc:99,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:103,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:109,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:110,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:114,1
    - Dst: std::string*::reserve
      Src: /src/sentencepiece/src/normalizer.cc:115,1
    - Dst: std::vector<size_t>*::reserve
      Src: /src/sentencepiece/src/normalizer.cc:116,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:121,1
    - Dst: std::string*::append
      Src: /src/sentencepiece/src/normalizer.cc:125,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:125,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:125,1
    - Dst: std::vector<size_t>*::insert
      Src: /src/sentencepiece/src/normalizer.cc:127,1
    - Dst: std::vector<size_t>*::end
      Src: /src/sentencepiece/src/normalizer.cc:127,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:127,1
    - Dst: add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer.cc:135,1
    - Dst: add_ws
      Src: /src/sentencepiece/src/normalizer.cc:135,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:137,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:138,1
    - Dst: sentencepiece::normalizer::Normalizer::NormalizePrefix
      Src: /src/sentencepiece/src/normalizer.cc:139,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/normalizer.cc:144,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:147,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:148,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:149,1
    - Dst: add_ws
      Src: /src/sentencepiece/src/normalizer.cc:151,1
    - Dst: std::vector<size_t>*::push_back
      Src: /src/sentencepiece/src/normalizer.cc:154,1
    - Dst: absl::EndsWith
      Src: /src/sentencepiece/src/normalizer.cc:158,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:162,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:163,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:169,1
    - Dst: absl::EndsWith
      Src: /src/sentencepiece/src/normalizer.cc:170,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/normalizer.cc:171,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:171,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/normalizer.cc:172,1
    - Dst: std::string*::resize
      Src: /src/sentencepiece/src/normalizer.cc:173,1
    - Dst: std::vector<size_t>*::resize
      Src: /src/sentencepiece/src/normalizer.cc:176,1
    - Dst: add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer.cc:182,1
    - Dst: add_ws
      Src: /src/sentencepiece/src/normalizer.cc:182,1
    - Dst: std::vector<size_t>*::push_back
      Src: /src/sentencepiece/src/normalizer.cc:185,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/normalizer.cc:186,1
    - Dst: std::vector<size_t>*::size
      Src: /src/sentencepiece/src/normalizer.cc:186,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/normalizer.cc:186,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:189,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 3
    argNames:
    - input
    - normalized
    - norm_to_orig
    argTypes:
    - absl::string_view
    - std::string*
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 190
    functionName: sentencepiece::normalizer::Normalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - std::vector<size_t>*::end
    - RET_CHECK_GE
    - absl::string_view::empty
    - std::string*::size
    - RET_CHECK_EQ
    - sentencepiece::normalizer::Normalizer::status
    - absl::ConsumePrefix
    - absl::string_view::remove_prefix
    - remove_extra_whitespaces
    - std::string*::resize
    - std::string*::append
    - std::string*::reserve
    - std::vector<size_t>*::resize
    - sentencepiece::normalizer::Normalizer::NormalizePrefix
    - std::vector<size_t>*::size
    - add_dummy_prefix
    - std::vector<size_t>*::clear
    - absl::EndsWith
    - absl::string_view::size
    - std::vector<size_t>*::insert
    - absl::string_view::data
    - add_ws
    - std::string*::clear
    - std::vector<size_t>*::reserve
    - std::vector<size_t>*::push_back
    - escape_whitespaces
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Normalizer::Normalize(absl::string_view input,\n                                   std::string*
      normalized,\n                                   std::vector<size_t>* norm_to_orig)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: sentencepiece::normalizer::Normalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 3
    functionsReached:
    - sentencepiece::normalizer::Normalizer::Normalize
    linkageType: ''
    returnType: std::string
    signature: std::string Normalizer::Normalize(absl::string_view input) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:200,1
    - Dst: PrefixMatch
      Src: /src/sentencepiece/src/normalizer.cc:204,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/normalizer.cc:205,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/normalizer.cc:225,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/normalizer.cc:225,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:226,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:227,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:240,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:241,1
    - Dst: sentencepiece::string_util::IsValidDecodeUTF8
      Src: /src/sentencepiece/src/normalizer.cc:243,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:253,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:253,1
    - Dst: data
      Src: /src/sentencepiece/src/normalizer.cc:259,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 263
    functionName: sentencepiece::normalizer::Normalizer::NormalizePrefix
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 3
    functionsReached:
    - size
    - absl::string_view::empty
    - absl::string_view::substr
    - sentencepiece::string_util::IsValidDecodeUTF8
    - absl::string_view
    - commonPrefixSearch
    - std::min<size_t>
    - absl::string_view::size
    - absl::string_view::data
    - data
    - PrefixMatch
    linkageType: ''
    returnType: std::pair<absl::string_view, int>
    signature: "std::pair<absl::string_view, int> Normalizer::NormalizePrefix(\n    absl::string_view
      input) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:270,1
    - Dst: string_util::EncodePOD<uint32_t>
      Src: /src/sentencepiece/src/normalizer.cc:270,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:270,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:271,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:271,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:271,1
    - Dst: sentencepiece::util::is_bigendian
      Src: /src/sentencepiece/src/normalizer.cc:273,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/sentencepiece/src/normalizer.cc:274,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/normalizer.cc:274,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/normalizer.cc:275,1
    - Dst: sentencepiece::util::Swap32
      Src: /src/sentencepiece/src/normalizer.cc:275,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:278,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:278,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - trie_blob
    - normalized
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 281
    functionName: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 10
    functionsReached:
    - std::string::data
    - sentencepiece::util::Swap32
    - sentencepiece::util::is_bigendian
    - reinterpret_cast<uint32_t*>
    - std::string::size
    - absl::string_view::size
    - absl::string_view::data
    - std::string::append
    - string_util::EncodePOD<uint32_t>
    linkageType: ''
    returnType: std::string
    signature: "std::string Normalizer::EncodePrecompiledCharsMap(\n    absl::string_view
      trie_blob, absl::string_view normalized)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:288,1
    - Dst: string_util::DecodePOD<uint32_t>
      Src: /src/sentencepiece/src/normalizer.cc:289,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:290,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:290,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:292,1
    - Dst: sentencepiece::util::is_bigendian
      Src: /src/sentencepiece/src/normalizer.cc:295,1
    - Dst: sentencepiece::util::Swap32
      Src: /src/sentencepiece/src/normalizer.cc:296,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:299,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:300,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:305,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:308,1
    - Dst: sentencepiece::util::is_bigendian
      Src: /src/sentencepiece/src/normalizer.cc:310,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/normalizer.cc:311,1
    - Dst: std::string*::assign
      Src: /src/sentencepiece/src/normalizer.cc:312,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:312,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/sentencepiece/src/normalizer.cc:314,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/normalizer.cc:314,1
    - Dst: std::string*::data
      Src: /src/sentencepiece/src/normalizer.cc:314,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/normalizer.cc:315,1
    - Dst: sentencepiece::util::Swap32
      Src: /src/sentencepiece/src/normalizer.cc:316,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:317,1
    - Dst: std::string*::data
      Src: /src/sentencepiece/src/normalizer.cc:317,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:319,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:319,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:322,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:323,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:323,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:323,1
    - Dst: absl::string_view*::empty
      Src: /src/sentencepiece/src/normalizer.cc:325,1
    - Dst: absl::string_view*::back
      Src: /src/sentencepiece/src/normalizer.cc:325,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:326,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:329,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - blob
    - trie_blob
    - normalized
    - buffer
    argTypes:
    - absl::string_view
    - absl::string_view*
    - absl::string_view*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 330
    functionName: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 9
    functionsReached:
    - absl::OkStatus
    - string_util::DecodePOD<uint32_t>
    - sentencepiece::util::Swap32
    - sentencepiece::util::is_bigendian
    - std::string*::size
    - absl::string_view*::back
    - absl::string_view*::empty
    - absl::string_view
    - reinterpret_cast<uint32_t*>
    - absl::string_view::remove_prefix
    - std::string*::assign
    - absl::string_view::size
    - RET_CHECK
    - std::string*::data
    - absl::string_view::data
    - absl::InternalError
    - const_cast<char*>
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Normalizer::DecodePrecompiledCharsMap(\n    absl::string_view
      blob, absl::string_view* trie_blob,\n    absl::string_view* normalized, std::string*
      buffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/normalizer.cc:333,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/normalizer.cc:336,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:336,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/normalizer.cc:337,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:337,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer.cc:339,1
    - Dst: data
      Src: /src/sentencepiece/src/normalizer.cc:339,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer.cc:340,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:340,1
    - Dst: std::make_unique<Darts::DoubleArray>
      Src: /src/sentencepiece/src/normalizer.cc:342,1
    - Dst: build
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: const_cast<char**>
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: const_cast<size_t*>
      Src: /src/sentencepiece/src/normalizer.cc:344,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer.cc:344,1
    - Dst: LOG
      Src: /src/sentencepiece/src/normalizer.cc:345,1
    - Dst: reset
      Src: /src/sentencepiece/src/normalizer.cc:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' dic'
    argTypes:
    - std::set<absl::string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 348
    functionName: sentencepiece::normalizer::PrefixMatcher::PrefixMatcher
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - size
    - const_cast<char**>
    - std::vector::push_back
    - std::vector::reserve
    - std::vector::size
    - LOG
    - empty
    - const_cast<size_t*>
    - reset
    - std::make_unique<Darts::DoubleArray>
    - build
    - data
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void PrefixMatcher::PrefixMatcher(const std::set<absl::string_view>&
      dic)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/normalizer.cc:358,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/normalizer.cc:359,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:359,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:359,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/normalizer.cc:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - w
    - found
    argTypes:
    - absl::string_view
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 373
    functionName: sentencepiece::normalizer::PrefixMatcher::PrefixMatch
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 2
    functionsReached:
    - std::max<int>
    - sentencepiece::string_util::OneCharLen
    - commonPrefixSearch
    - absl::string_view::size
    - absl::string_view::data
    - std::min<int>
    linkageType: ''
    returnType: int
    signature: int PrefixMatcher::PrefixMatch(absl::string_view w, bool* found) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:378,1
    - Dst: sentencepiece::normalizer::PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer.cc:380,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:382,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:382,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:382,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:384,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:384,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - w
    - out
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: sentencepiece::normalizer::PrefixMatcher::GlobalReplace
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::PrefixMatcher::PrefixMatch
    - absl::string_view::empty
    - absl::string_view::remove_prefix
    - absl::string_view::size
    - absl::string_view::data
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: "std::string PrefixMatcher::GlobalReplace(absl::string_view w,\n                                         absl::string_view
      out) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: treat_whitespace_as_suffix
      Src: /src/sentencepiece/src/normalizer.cc:37,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:38,1
    - Dst: sentencepiece::normalizer::Normalizer::Init
      Src: /src/sentencepiece/src/normalizer.cc:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' spec'
    - ' trainer_spec'
    argTypes:
    - NormalizerSpec
    - TrainerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: sentencepiece::normalizer::Normalizer::Normalizer
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Normalizer::Init
    - treat_whitespace_as_suffix
    linkageType: ''
    returnType: void
    signature: "void Normalizer::Normalizer(const NormalizerSpec& spec,\n                       const
      TrainerSpec& trainer_spec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:43,1
    - Dst: sentencepiece::normalizer::Normalizer::Init
      Src: /src/sentencepiece/src/normalizer.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' spec'
    argTypes:
    - NormalizerSpec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: sentencepiece::normalizer::Normalizer::Normalizer
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - sentencepiece::normalizer::Normalizer::Init
    linkageType: ''
    returnType: void
    signature: void Normalizer::Normalizer(const NormalizerSpec& spec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Normalizer::~Normalizer()
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Normalizer::~Normalizer()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: precompiled_charsmap
      Src: /src/sentencepiece/src/normalizer.cc:50,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:52,1
    - Dst: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
      Src: /src/sentencepiece/src/normalizer.cc:54,1
    - Dst: ok
      Src: /src/sentencepiece/src/normalizer.cc:57,1
    - Dst: std::make_unique<Darts::DoubleArray>
      Src: /src/sentencepiece/src/normalizer.cc:60,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/sentencepiece/src/normalizer.cc:66,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:66,1
    - Dst: set_array
      Src: /src/sentencepiece/src/normalizer.cc:67,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/normalizer.cc:67,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:67,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:68,1
    - Dst: unit_size
      Src: /src/sentencepiece/src/normalizer.cc:68,1
    - Dst: copy_array
      Src: /src/sentencepiece/src/normalizer.cc:70,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/sentencepiece/src/normalizer.cc:70,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:70,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:71,1
    - Dst: validate
      Src: /src/sentencepiece/src/normalizer.cc:74,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:74,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:75,1
    - Dst: reset
      Src: /src/sentencepiece/src/normalizer.cc:76,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 80
    functionName: sentencepiece::normalizer::Normalizer::Init
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 8
    functionsReached:
    - unit_size
    - size
    - absl::string_view::empty
    - validate
    - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    - reinterpret_cast<uintptr_t>
    - set_array
    - reset
    - precompiled_charsmap
    - absl::string_view::size
    - copy_array
    - std::make_unique<Darts::DoubleArray>
    - absl::string_view::data
    - reinterpret_cast<const char*>
    - absl::InternalError
    - ok
    - const_cast<char*>
    linkageType: ''
    returnType: void
    signature: void Normalizer::Init()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<size_t>*::clear
      Src: /src/sentencepiece/src/normalizer.cc:85,1
    - Dst: std::string*::clear
      Src: /src/sentencepiece/src/normalizer.cc:86,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:88,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:89,1
    - Dst: RETURN_IF_ERROR
      Src: /src/sentencepiece/src/normalizer.cc:92,1
    - Dst: sentencepiece::normalizer::Normalizer::status
      Src: /src/sentencepiece/src/normalizer.cc:92,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:97,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:98,1
    - Dst: sentencepiece::normalizer::Normalizer::NormalizePrefix
      Src: /src/sentencepiece/src/normalizer.cc:99,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:103,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:109,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:110,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:114,1
    - Dst: std::string*::reserve
      Src: /src/sentencepiece/src/normalizer.cc:115,1
    - Dst: std::vector<size_t>*::reserve
      Src: /src/sentencepiece/src/normalizer.cc:116,1
    - Dst: escape_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:121,1
    - Dst: std::string*::append
      Src: /src/sentencepiece/src/normalizer.cc:125,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:125,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:125,1
    - Dst: std::vector<size_t>*::insert
      Src: /src/sentencepiece/src/normalizer.cc:127,1
    - Dst: std::vector<size_t>*::end
      Src: /src/sentencepiece/src/normalizer.cc:127,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:127,1
    - Dst: add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer.cc:135,1
    - Dst: add_ws
      Src: /src/sentencepiece/src/normalizer.cc:135,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:137,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:138,1
    - Dst: sentencepiece::normalizer::Normalizer::NormalizePrefix
      Src: /src/sentencepiece/src/normalizer.cc:139,1
    - Dst: absl::ConsumePrefix
      Src: /src/sentencepiece/src/normalizer.cc:144,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:147,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:148,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:149,1
    - Dst: add_ws
      Src: /src/sentencepiece/src/normalizer.cc:151,1
    - Dst: std::vector<size_t>*::push_back
      Src: /src/sentencepiece/src/normalizer.cc:154,1
    - Dst: absl::EndsWith
      Src: /src/sentencepiece/src/normalizer.cc:158,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:162,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:163,1
    - Dst: remove_extra_whitespaces
      Src: /src/sentencepiece/src/normalizer.cc:169,1
    - Dst: absl::EndsWith
      Src: /src/sentencepiece/src/normalizer.cc:170,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/normalizer.cc:171,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:171,1
    - Dst: RET_CHECK_GE
      Src: /src/sentencepiece/src/normalizer.cc:172,1
    - Dst: std::string*::resize
      Src: /src/sentencepiece/src/normalizer.cc:173,1
    - Dst: std::vector<size_t>*::resize
      Src: /src/sentencepiece/src/normalizer.cc:176,1
    - Dst: add_dummy_prefix
      Src: /src/sentencepiece/src/normalizer.cc:182,1
    - Dst: add_ws
      Src: /src/sentencepiece/src/normalizer.cc:182,1
    - Dst: std::vector<size_t>*::push_back
      Src: /src/sentencepiece/src/normalizer.cc:185,1
    - Dst: RET_CHECK_EQ
      Src: /src/sentencepiece/src/normalizer.cc:186,1
    - Dst: std::vector<size_t>*::size
      Src: /src/sentencepiece/src/normalizer.cc:186,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/normalizer.cc:186,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:189,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 68
    argCount: 3
    argNames:
    - input
    - normalized
    - norm_to_orig
    argTypes:
    - absl::string_view
    - std::string*
    - std::vector<size_t>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 190
    functionName: sentencepiece::normalizer::Normalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 3
    functionsReached:
    - absl::OkStatus
    - std::vector<size_t>*::end
    - RET_CHECK_GE
    - absl::string_view::empty
    - std::string*::size
    - RET_CHECK_EQ
    - sentencepiece::normalizer::Normalizer::status
    - absl::ConsumePrefix
    - absl::string_view::remove_prefix
    - remove_extra_whitespaces
    - std::string*::resize
    - std::string*::append
    - std::string*::reserve
    - std::vector<size_t>*::resize
    - sentencepiece::normalizer::Normalizer::NormalizePrefix
    - std::vector<size_t>*::size
    - add_dummy_prefix
    - std::vector<size_t>*::clear
    - absl::EndsWith
    - absl::string_view::size
    - std::vector<size_t>*::insert
    - absl::string_view::data
    - add_ws
    - std::string*::clear
    - std::vector<size_t>*::reserve
    - std::vector<size_t>*::push_back
    - escape_whitespaces
    - RETURN_IF_ERROR
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Normalizer::Normalize(absl::string_view input,\n                                   std::string*
      normalized,\n                                   std::vector<size_t>* norm_to_orig)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::normalizer::Normalizer::Normalize
      Src: /src/sentencepiece/src/normalizer.cc:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: sentencepiece::normalizer::Normalizer::Normalize
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 4
    functionsReached:
    - sentencepiece::normalizer::Normalizer::Normalize
    linkageType: ''
    returnType: std::string
    signature: std::string Normalizer::Normalize(absl::string_view input) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:200,1
    - Dst: PrefixMatch
      Src: /src/sentencepiece/src/normalizer.cc:204,1
    - Dst: absl::string_view::substr
      Src: /src/sentencepiece/src/normalizer.cc:205,1
    - Dst: std::min<size_t>
      Src: /src/sentencepiece/src/normalizer.cc:225,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/normalizer.cc:225,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:226,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:227,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:240,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:241,1
    - Dst: sentencepiece::string_util::IsValidDecodeUTF8
      Src: /src/sentencepiece/src/normalizer.cc:243,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:253,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:253,1
    - Dst: data
      Src: /src/sentencepiece/src/normalizer.cc:259,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 1
    argNames:
    - input
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 263
    functionName: sentencepiece::normalizer::Normalizer::NormalizePrefix
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 4
    functionsReached:
    - size
    - absl::string_view::empty
    - absl::string_view::substr
    - sentencepiece::string_util::IsValidDecodeUTF8
    - absl::string_view
    - commonPrefixSearch
    - std::min<size_t>
    - absl::string_view::size
    - absl::string_view::data
    - data
    - PrefixMatch
    linkageType: ''
    returnType: std::pair<absl::string_view, int>
    signature: "std::pair<absl::string_view, int> Normalizer::NormalizePrefix(\n    absl::string_view
      input) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:270,1
    - Dst: string_util::EncodePOD<uint32_t>
      Src: /src/sentencepiece/src/normalizer.cc:270,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:270,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:271,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:271,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:271,1
    - Dst: sentencepiece::util::is_bigendian
      Src: /src/sentencepiece/src/normalizer.cc:273,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/sentencepiece/src/normalizer.cc:274,1
    - Dst: std::string::data
      Src: /src/sentencepiece/src/normalizer.cc:274,1
    - Dst: std::string::size
      Src: /src/sentencepiece/src/normalizer.cc:275,1
    - Dst: sentencepiece::util::Swap32
      Src: /src/sentencepiece/src/normalizer.cc:275,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:278,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:278,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - trie_blob
    - normalized
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 281
    functionName: sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 10
    functionsReached:
    - std::string::data
    - sentencepiece::util::Swap32
    - sentencepiece::util::is_bigendian
    - reinterpret_cast<uint32_t*>
    - std::string::size
    - absl::string_view::size
    - absl::string_view::data
    - std::string::append
    - string_util::EncodePOD<uint32_t>
    linkageType: ''
    returnType: std::string
    signature: "std::string Normalizer::EncodePrecompiledCharsMap(\n    absl::string_view
      trie_blob, absl::string_view normalized)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:288,1
    - Dst: string_util::DecodePOD<uint32_t>
      Src: /src/sentencepiece/src/normalizer.cc:289,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:290,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:290,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:292,1
    - Dst: sentencepiece::util::is_bigendian
      Src: /src/sentencepiece/src/normalizer.cc:295,1
    - Dst: sentencepiece::util::Swap32
      Src: /src/sentencepiece/src/normalizer.cc:296,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:299,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:300,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:305,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:308,1
    - Dst: sentencepiece::util::is_bigendian
      Src: /src/sentencepiece/src/normalizer.cc:310,1
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/normalizer.cc:311,1
    - Dst: std::string*::assign
      Src: /src/sentencepiece/src/normalizer.cc:312,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:312,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/sentencepiece/src/normalizer.cc:314,1
    - Dst: const_cast<char*>
      Src: /src/sentencepiece/src/normalizer.cc:314,1
    - Dst: std::string*::data
      Src: /src/sentencepiece/src/normalizer.cc:314,1
    - Dst: std::string*::size
      Src: /src/sentencepiece/src/normalizer.cc:315,1
    - Dst: sentencepiece::util::Swap32
      Src: /src/sentencepiece/src/normalizer.cc:316,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:317,1
    - Dst: std::string*::data
      Src: /src/sentencepiece/src/normalizer.cc:317,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:319,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:319,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:322,1
    - Dst: absl::string_view
      Src: /src/sentencepiece/src/normalizer.cc:323,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:323,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:323,1
    - Dst: absl::string_view*::empty
      Src: /src/sentencepiece/src/normalizer.cc:325,1
    - Dst: absl::string_view*::back
      Src: /src/sentencepiece/src/normalizer.cc:325,1
    - Dst: absl::InternalError
      Src: /src/sentencepiece/src/normalizer.cc:326,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/src/normalizer.cc:329,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 4
    argNames:
    - blob
    - trie_blob
    - normalized
    - buffer
    argTypes:
    - absl::string_view
    - absl::string_view*
    - absl::string_view*
    - std::string*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 330
    functionName: sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 10
    functionsReached:
    - absl::OkStatus
    - string_util::DecodePOD<uint32_t>
    - sentencepiece::util::Swap32
    - sentencepiece::util::is_bigendian
    - std::string*::size
    - absl::string_view*::back
    - absl::string_view*::empty
    - absl::string_view
    - reinterpret_cast<uint32_t*>
    - absl::string_view::remove_prefix
    - std::string*::assign
    - absl::string_view::size
    - RET_CHECK
    - std::string*::data
    - absl::string_view::data
    - absl::InternalError
    - const_cast<char*>
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status Normalizer::DecodePrecompiledCharsMap(\n    absl::string_view
      blob, absl::string_view* trie_blob,\n    absl::string_view* normalized, std::string*
      buffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/src/normalizer.cc:333,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/normalizer.cc:336,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:336,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/src/normalizer.cc:337,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:337,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer.cc:339,1
    - Dst: data
      Src: /src/sentencepiece/src/normalizer.cc:339,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/src/normalizer.cc:340,1
    - Dst: size
      Src: /src/sentencepiece/src/normalizer.cc:340,1
    - Dst: std::make_unique<Darts::DoubleArray>
      Src: /src/sentencepiece/src/normalizer.cc:342,1
    - Dst: build
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: const_cast<char**>
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer.cc:343,1
    - Dst: const_cast<size_t*>
      Src: /src/sentencepiece/src/normalizer.cc:344,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/src/normalizer.cc:344,1
    - Dst: LOG
      Src: /src/sentencepiece/src/normalizer.cc:345,1
    - Dst: reset
      Src: /src/sentencepiece/src/normalizer.cc:346,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' dic'
    argTypes:
    - std::set<absl::string_view>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 348
    functionName: sentencepiece::normalizer::PrefixMatcher::PrefixMatcher
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - size
    - const_cast<char**>
    - std::vector::push_back
    - std::vector::reserve
    - std::vector::size
    - LOG
    - empty
    - const_cast<size_t*>
    - reset
    - std::make_unique<Darts::DoubleArray>
    - build
    - data
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void PrefixMatcher::PrefixMatcher(const std::set<absl::string_view>&
      dic)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:353,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/normalizer.cc:358,1
    - Dst: commonPrefixSearch
      Src: /src/sentencepiece/src/normalizer.cc:359,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:359,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:359,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: sentencepiece::string_util::OneCharLen
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:364,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/src/normalizer.cc:369,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - w
    - found
    argTypes:
    - absl::string_view
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 373
    functionName: sentencepiece::normalizer::PrefixMatcher::PrefixMatch
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 3
    functionsReached:
    - std::max<int>
    - sentencepiece::string_util::OneCharLen
    - commonPrefixSearch
    - absl::string_view::size
    - absl::string_view::data
    - std::min<int>
    linkageType: ''
    returnType: int
    signature: int PrefixMatcher::PrefixMatch(absl::string_view w, bool* found) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/src/normalizer.cc:378,1
    - Dst: sentencepiece::normalizer::PrefixMatcher::PrefixMatch
      Src: /src/sentencepiece/src/normalizer.cc:380,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:382,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:382,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/src/normalizer.cc:382,1
    - Dst: std::string::append
      Src: /src/sentencepiece/src/normalizer.cc:384,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/src/normalizer.cc:384,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/src/normalizer.cc:386,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - w
    - out
    argTypes:
    - absl::string_view
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 389
    functionName: sentencepiece::normalizer::PrefixMatcher::GlobalReplace
    functionSourceFile: /src/sentencepiece/src/normalizer.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::normalizer::PrefixMatcher::PrefixMatch
    - absl::string_view::empty
    - absl::string_view::remove_prefix
    - absl::string_view::size
    - absl::string_view::data
    - std::string::append
    linkageType: ''
    returnType: std::string
    signature: "std::string PrefixMatcher::GlobalReplace(absl::string_view w,\n                                         absl::string_view
      out) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: PARSE_STRING
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_STRING(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: PARSE_REPEATED_STRING
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_REPEATED_STRING(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: PARSE_BYTE
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_BYTE(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: PARSE_INT32
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_INT32(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: PARSE_UINT64
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_UINT64(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: PARSE_DOUBLE
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_DOUBLE(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: PARSE_BOOL
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_BOOL(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - param_name
    - ','
    - map_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: PARSE_ENUM
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_ENUM(param_name, map_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: PRINT_PARAM
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_PARAM(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: PRINT_REPEATED_STRING
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_REPEATED_STRING(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - param_name
    - ','
    - map_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: PRINT_ENUM
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_ENUM(param_name, map_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:123,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:124,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:125,1
    - Dst: PRINT_ENUM
      Src: /src/sentencepiece/src/spec_parser.h:134,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:135,1
    - Dst: PRINT_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:136,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:137,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:138,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:139,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:140,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:141,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:142,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:143,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:144,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:145,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:146,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:147,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:148,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:149,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:150,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:151,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:152,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:153,1
    - Dst: PRINT_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:154,1
    - Dst: PRINT_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:155,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:156,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:157,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:158,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:159,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:160,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:161,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:162,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:163,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:164,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:165,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:166,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:167,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:168,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:169,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:170,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:171,1
    - Dst: std::ostringstream::str
      Src: /src/sentencepiece/src/spec_parser.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 2
    argNames:
    - ' message'
    - name
    argTypes:
    - TrainerSpec
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 176
    functionName: sentencepiece::PrintProto
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached:
    - PRINT_ENUM
    - PRINT_REPEATED_STRING
    - std::ostringstream::str
    - PRINT_PARAM
    linkageType: ''
    returnType: std::string
    signature: "std::string PrintProto(const TrainerSpec& message,\n                              absl::string_view
      name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:184,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:185,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:186,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:187,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:188,1
    - Dst: std::ostringstream::str
      Src: /src/sentencepiece/src/spec_parser.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ' message'
    - name
    argTypes:
    - NormalizerSpec
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 193
    functionName: sentencepiece::PrintProto
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - PRINT_PARAM
    linkageType: ''
    returnType: std::string
    signature: "std::string PrintProto(const NormalizerSpec& message,\n                              absl::string_view
      name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/spec_parser.h:198,1
    - Dst: PARSE_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:200,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:201,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:202,1
    - Dst: PARSE_ENUM
      Src: /src/sentencepiece/src/spec_parser.h:211,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:212,1
    - Dst: PARSE_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:213,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:214,1
    - Dst: PARSE_DOUBLE
      Src: /src/sentencepiece/src/spec_parser.h:215,1
    - Dst: PARSE_UINT64
      Src: /src/sentencepiece/src/spec_parser.h:216,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:217,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:218,1
    - Dst: PARSE_DOUBLE
      Src: /src/sentencepiece/src/spec_parser.h:219,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:220,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:221,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:222,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:223,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:224,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:225,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:226,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:227,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:228,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:229,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:230,1
    - Dst: PARSE_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:231,1
    - Dst: PARSE_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:232,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:233,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:234,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:235,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:236,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:237,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:238,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:239,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:240,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:241,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:242,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:243,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:244,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:245,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:246,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:247,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:248,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/spec_parser.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 3
    argNames:
    - name
    - value
    - message
    argTypes:
    - absl::string_view
    - absl::string_view
    - TrainerSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 252
    functionName: sentencepiece::SentencePieceTrainer::SetProtoField
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 18
    functionsReached:
    - PARSE_DOUBLE
    - PARSE_REPEATED_STRING
    - PARSE_ENUM
    - absl::StatusBuilder
    - RET_CHECK
    - PARSE_STRING
    - PARSE_BOOL
    - PARSE_INT32
    - PARSE_UINT64
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::SetProtoField(absl::string_view
      name,\n                                                 absl::string_view value,\n
      \                                                TrainerSpec* message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/spec_parser.h:257,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:259,1
    - Dst: PARSE_BYTE
      Src: /src/sentencepiece/src/spec_parser.h:260,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:261,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:262,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:263,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:264,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/spec_parser.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - name
    - value
    - message
    argTypes:
    - absl::string_view
    - absl::string_view
    - NormalizerSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 268
    functionName: sentencepiece::SentencePieceTrainer::SetProtoField
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 18
    functionsReached:
    - RET_CHECK
    - absl::StatusBuilder
    - PARSE_BYTE
    - PARSE_BOOL
    - PARSE_STRING
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::SetProtoField(absl::string_view
      name,\n                                                 absl::string_view value,\n
      \                                                NormalizerSpec* message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: PARSE_STRING
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_STRING(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: PARSE_REPEATED_STRING
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_REPEATED_STRING(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: PARSE_BYTE
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_BYTE(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: PARSE_INT32
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_INT32(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: PARSE_UINT64
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_UINT64(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: PARSE_DOUBLE
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_DOUBLE(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 91
    functionName: PARSE_BOOL
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_BOOL(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - param_name
    - ','
    - map_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: PARSE_ENUM
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PARSE_ENUM(param_name, map_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: PRINT_PARAM
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_PARAM(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - param_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: PRINT_REPEATED_STRING
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_REPEATED_STRING(param_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - param_name
    - ','
    - map_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 116
    functionName: PRINT_ENUM
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PRINT_ENUM(param_name, map_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:123,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:124,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:125,1
    - Dst: PRINT_ENUM
      Src: /src/sentencepiece/src/spec_parser.h:134,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:135,1
    - Dst: PRINT_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:136,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:137,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:138,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:139,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:140,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:141,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:142,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:143,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:144,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:145,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:146,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:147,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:148,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:149,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:150,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:151,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:152,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:153,1
    - Dst: PRINT_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:154,1
    - Dst: PRINT_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:155,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:156,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:157,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:158,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:159,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:160,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:161,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:162,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:163,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:164,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:165,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:166,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:167,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:168,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:169,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:170,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:171,1
    - Dst: std::ostringstream::str
      Src: /src/sentencepiece/src/spec_parser.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 2
    argNames:
    - ' message'
    - name
    argTypes:
    - TrainerSpec
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 176
    functionName: sentencepiece::PrintProto
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached:
    - PRINT_ENUM
    - PRINT_REPEATED_STRING
    - std::ostringstream::str
    - PRINT_PARAM
    linkageType: ''
    returnType: std::string
    signature: "std::string PrintProto(const TrainerSpec& message,\n                              absl::string_view
      name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:184,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:185,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:186,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:187,1
    - Dst: PRINT_PARAM
      Src: /src/sentencepiece/src/spec_parser.h:188,1
    - Dst: std::ostringstream::str
      Src: /src/sentencepiece/src/spec_parser.h:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ' message'
    - name
    argTypes:
    - NormalizerSpec
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 193
    functionName: sentencepiece::PrintProto
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - PRINT_PARAM
    linkageType: ''
    returnType: std::string
    signature: "std::string PrintProto(const NormalizerSpec& message,\n                              absl::string_view
      name)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/spec_parser.h:198,1
    - Dst: PARSE_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:200,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:201,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:202,1
    - Dst: PARSE_ENUM
      Src: /src/sentencepiece/src/spec_parser.h:211,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:212,1
    - Dst: PARSE_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:213,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:214,1
    - Dst: PARSE_DOUBLE
      Src: /src/sentencepiece/src/spec_parser.h:215,1
    - Dst: PARSE_UINT64
      Src: /src/sentencepiece/src/spec_parser.h:216,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:217,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:218,1
    - Dst: PARSE_DOUBLE
      Src: /src/sentencepiece/src/spec_parser.h:219,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:220,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:221,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:222,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:223,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:224,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:225,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:226,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:227,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:228,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:229,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:230,1
    - Dst: PARSE_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:231,1
    - Dst: PARSE_REPEATED_STRING
      Src: /src/sentencepiece/src/spec_parser.h:232,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:233,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:234,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:235,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:236,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:237,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:238,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:239,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:240,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:241,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:242,1
    - Dst: PARSE_INT32
      Src: /src/sentencepiece/src/spec_parser.h:243,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:244,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:245,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:246,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:247,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:248,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/spec_parser.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 3
    argNames:
    - name
    - value
    - message
    argTypes:
    - absl::string_view
    - absl::string_view
    - TrainerSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 252
    functionName: sentencepiece::SentencePieceTrainer::SetProtoField
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 18
    functionsReached:
    - PARSE_DOUBLE
    - PARSE_REPEATED_STRING
    - PARSE_ENUM
    - absl::StatusBuilder
    - RET_CHECK
    - PARSE_STRING
    - PARSE_BOOL
    - PARSE_INT32
    - PARSE_UINT64
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::SetProtoField(absl::string_view
      name,\n                                                 absl::string_view value,\n
      \                                                TrainerSpec* message)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RET_CHECK
      Src: /src/sentencepiece/src/spec_parser.h:257,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:259,1
    - Dst: PARSE_BYTE
      Src: /src/sentencepiece/src/spec_parser.h:260,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:261,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:262,1
    - Dst: PARSE_BOOL
      Src: /src/sentencepiece/src/spec_parser.h:263,1
    - Dst: PARSE_STRING
      Src: /src/sentencepiece/src/spec_parser.h:264,1
    - Dst: absl::StatusBuilder
      Src: /src/sentencepiece/src/spec_parser.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - name
    - value
    - message
    argTypes:
    - absl::string_view
    - absl::string_view
    - NormalizerSpec*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 268
    functionName: sentencepiece::SentencePieceTrainer::SetProtoField
    functionSourceFile: /src/sentencepiece/src/spec_parser.h
    functionUses: 18
    functionsReached:
    - RET_CHECK
    - absl::StatusBuilder
    - PARSE_BYTE
    - PARSE_BOOL
    - PARSE_STRING
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status SentencePieceTrainer::SetProtoField(absl::string_view
      name,\n                                                 absl::string_view value,\n
      \                                                NormalizerSpec* message)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: py::isinstance<py::bytes>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:29,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:31,1
    - Dst: py::isinstance<py::str>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:32,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:34,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - py::object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: PyInputStringView
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - cast
    - py::isinstance<py::str>
    - py::type_error
    - py::isinstance<py::bytes>
    linkageType: ''
    returnType: void
    signature: void PyInputStringView(const py::object& obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:44,1
    - Dst: py::str
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' str'
    - is_bytes
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: ToPyString
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - py::str
    - py::bytes
    linkageType: ''
    returnType: py::object
    signature: py::object ToPyString(const std::string& str, bool is_bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:53,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:55,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:56,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:59,1
    - Dst: py::str
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' vec'
    - is_bytes
    argTypes:
    - std::vector<std::string>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: ToPyStringList
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - py::bytes
    - py::str
    - size
    linkageType: ''
    returnType: py::list
    signature: py::list ToPyStringList(const std::vector<std::string>& vec, bool is_bytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: py::register_exception_translator
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:68,1
    - Dst: std::rethrow_exception
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:70,1
    - Dst: ToString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:72,1
    - Dst: code
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:73,1
    - Dst: std::runtime_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:75,1
    - Dst: std::out_of_range
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:77,1
    - Dst: std::invalid_argument
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:79,1
    - Dst: std::runtime_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:81,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 85
    functionName: RegisterExceptionTranslator
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - std::rethrow_exception
    - std::runtime_error
    - code
    - py::register_exception_translator
    - ToString
    - std::invalid_argument
    - std::out_of_range
    linkageType: ''
    returnType: void
    signature: void RegisterExceptionTranslator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:91,1
    - Dst: PySentenceIterator::Next
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - py::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: PySentenceIterator::PySentenceIterator
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - PySentenceIterator::Next
    - std::move
    linkageType: ''
    returnType: void
    signature: void PySentenceIterator(py::iterator it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: PySentenceIterator::done
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool done() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: py::iterator::sentinel
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:97,1
    - Dst: py::reinterpret_borrow<py::object>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:102,1
    - Dst: py::isinstance<py::str>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:103,1
    - Dst: py::isinstance<py::bytes>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:103,1
    - Dst: py::object::cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:104,1
    - Dst: absl::Status
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:106,1
    - Dst: empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:112,1
    - Dst: back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:113,1
    - Dst: back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:113,1
    - Dst: pop_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:114,1
    - Dst: absl::Status
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:118,1
    - Dst: what
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:118,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 121
    functionName: PySentenceIterator::Next
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 1
    functionsReached:
    - back
    - absl::Status
    - py::reinterpret_borrow<py::object>
    - py::object::cast
    - py::iterator::sentinel
    - pop_back
    - py::isinstance<py::bytes>
    - empty
    - py::isinstance<py::str>
    - what
    linkageType: ''
    returnType: void
    signature: void Next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: '& value() const override'
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: PySentenceIterator::status
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:138,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:139,1
    - Dst: eos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:142,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:143,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:146,1
    - Dst: std::reverse
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:147,1
    - Dst: std::vector<int>*::begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:147,1
    - Dst: std::vector<int>*::end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:147,1
    - Dst: std::vector<int>*::insert
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:149,1
    - Dst: std::vector<int>*::begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:149,1
    - Dst: bos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:149,1
    - Dst: std::vector<int>*::push_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:152,1
    - Dst: eos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:152,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:154,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 5
    argNames:
    - ' sp'
    - ids
    - add_bos
    - add_eos
    - reverse
    argTypes:
    - sentencepiece::SentencePieceProcessor
    - std::vector<int>*
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: RewriteIds
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - absl::InvalidArgumentError
    - std::reverse
    - std::vector<int>*::insert
    - eos_id
    - bos_id
    - std::vector<int>*::push_back
    - std::vector<int>*::end
    - std::vector<int>*::begin
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status RewriteIds(const sentencepiece::SentencePieceProcessor&
      sp,\n                        std::vector<int>* ids, bool add_bos, bool add_eos,\n
      \                       bool reverse)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:160,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:161,1
    - Dst: eos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:164,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:165,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:169,1
    - Dst: std::reverse
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:170,1
    - Dst: std::vector<std::string>*::begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:170,1
    - Dst: std::vector<std::string>*::end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:170,1
    - Dst: std::vector<std::string>*::insert
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:172,1
    - Dst: std::vector<std::string>*::begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:172,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:172,1
    - Dst: bos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:172,1
    - Dst: std::vector<std::string>*::push_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:175,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:175,1
    - Dst: eos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:175,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:178,1
    - Dst: unk_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:178,1
    - Dst: PieceToId
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:180,1
    - Dst: unk_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:181,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:186,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 6
    argNames:
    - ' sp'
    - pieces
    - add_bos
    - add_eos
    - reverse
    - emit_unk_piece
    argTypes:
    - sentencepiece::SentencePieceProcessor
    - std::vector<std::string>*
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 187
    functionName: RewriteIds
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - absl::InvalidArgumentError
    - std::vector<std::string>*::end
    - std::reverse
    - std::vector<std::string>*::insert
    - unk_id
    - std::vector<std::string>*::begin
    - eos_id
    - bos_id
    - PieceToId
    - std::vector<std::string>*::push_back
    - IdToPiece
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status RewriteIds(const sentencepiece::SentencePieceProcessor&
      sp,\n                        std::vector<std::string>* pieces, bool add_bos,\n
      \                       bool add_eos, bool reverse, bool emit_unk_piece)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RewriteIds
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:192,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 5
    argNames:
    - ' sp'
    - ids
    - add_bos
    - add_eos
    - reverse
    argTypes:
    - sentencepiece::SentencePieceProcessor
    - std::vector<int>*
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: RewriteIdsThrowException
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - RewriteIds
    - auto::ok
    linkageType: ''
    returnType: void
    signature: "void RewriteIdsThrowException(const sentencepiece::SentencePieceProcessor&
      sp,\n                              std::vector<int>* ids, bool add_bos, bool
      add_eos,\n                              bool reverse)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RewriteIds
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:200,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 6
    argNames:
    - ' sp'
    - pieces
    - add_bos
    - add_eos
    - reverse
    - emit_unk_piece
    argTypes:
    - sentencepiece::SentencePieceProcessor
    - std::vector<std::string>*
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: RewriteIdsThrowException
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - RewriteIds
    - auto::ok
    linkageType: ''
    returnType: void
    signature: "void RewriteIdsThrowException(const sentencepiece::SentencePieceProcessor&
      sp,\n                              std::vector<std::string>* pieces, bool add_bos,\n
      \                             bool add_eos, bool reverse, bool emit_unk_piece)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Status
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:207,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ids
    - num_pieces
    argTypes:
    - absl::Span<const int>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: CheckIds
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - absl::Status
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status CheckIds(absl::Span<const int> ids, int num_pieces)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CheckIds
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:215,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ids
    - num_pieces
    argTypes:
    - absl::Span<const int>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: CheckIdsThrowException
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - CheckIds
    - auto::ok
    linkageType: ''
    returnType: void
    signature: void CheckIdsThrowException(absl::Span<const int> ids, int num_pieces)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::thread::hardware_concurrency
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:221,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:223,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - num_threads
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: GetNumThreads
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - std::thread::hardware_concurrency
    - std::max<int>
    - std::min<int>
    linkageType: ''
    returnType: int
    signature: int GetNumThreads(int num_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetNumThreads
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:229,1
    - Dst: std::make_unique<sentencepiece::ThreadPool>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - num_threads
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: PyThreadPool::PyThreadPool
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - GetNumThreads
    - std::make_unique<sentencepiece::ThreadPool>
    linkageType: ''
    returnType: void
    signature: void PyThreadPool(int num_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: PyThreadPool::get
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 1
    functionsReached:
    - PyThreadPool::get
    linkageType: ''
    returnType: sentencepiece::ThreadPool
    signature: sentencepiece::ThreadPool * get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: PyThreadPool::num_threads
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_threads() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::object::is_none
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:244,1
    - Dst: py::object::cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:245,1
    - Dst: std::make_unique<sentencepiece::ThreadPool>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:247,1
    - Dst: GetNumThreads
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:248,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - num_threads
    - thread_pool
    argTypes:
    - int
    - py::object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 251
    functionName: WorkerPool::WorkerPool
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - GetNumThreads
    - py::object::cast
    - WorkerPool::get
    - std::make_unique<sentencepiece::ThreadPool>
    - py::object::is_none
    linkageType: ''
    returnType: void
    signature: void WorkerPool(int num_threads, py::object thread_pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: WorkerPool::get
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: sentencepiece::ThreadPool
    signature: sentencepiece::ThreadPool * get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:265,1
    - Dst: PyListStringViewVector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:265,1
    - Dst: reserve
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:266,1
    - Dst: PyListStringViewVector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:266,1
    - Dst: PyListStringViewVector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:267,1
    - Dst: py::reinterpret_borrow<py::object>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:269,1
    - Dst: push_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:270,1
    - Dst: py::object::cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:270,1
    - Dst: push_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:271,1
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:271,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' ins'
    argTypes:
    - py::list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: PyListStringViewVector::PyListStringViewVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - py::reinterpret_borrow<py::object>
    - py::object::cast
    - PyListStringViewVector::size
    - std::move
    - push_back
    - reserve
    - py::type_error
    linkageType: ''
    returnType: void
    signature: void PyListStringViewVector(const py::list& ins)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: PyListStringViewVector::views
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Span<const absl::string_view>
    signature: absl::Span<const absl::string_view> views() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyListStringViewVector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: PyListStringViewVector::size
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 2
    functionsReached:
    - PyListStringViewVector::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyListStringViewVector::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: PyListStringViewVector::empty
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 1
    functionsReached:
    - PyListStringViewVector::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: operator[](size_t i) const
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view operator[](size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: IntSpanOrVector::IntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IntSpanOrVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - span
    argTypes:
    - absl::Span<const int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: IntSpanOrVector::IntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IntSpanOrVector(absl::Span<const int> span)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: IntSpanOrVector::IntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void IntSpanOrVector(std::vector<int>&& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: IntSpanOrVector::IntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IntSpanOrVector(const IntSpanOrVector&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: '& operator=(const IntSpanOrVector&)'
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IntSpanOrVector
    signature: IntSpanOrVector & operator=(const IntSpanOrVector&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: IntSpanOrVector::IntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IntSpanOrVector(IntSpanOrVector&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: '& operator=(IntSpanOrVector&&)'
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IntSpanOrVector
    signature: IntSpanOrVector & operator=(IntSpanOrVector&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: IntSpanOrVector::span
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - absl::Span<const int>
    linkageType: ''
    returnType: absl::Span<const int>
    signature: absl::Span<const int> span() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    functionName: VectorBuffer::VectorBuffer
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VectorBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 316
    functionName: VectorBuffer::VectorBuffer
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void VectorBuffer(std::vector<int>&& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VectorBuffer::data
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: VectorBuffer::data
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 1
    functionsReached:
    - VectorBuffer::data
    linkageType: ''
    returnType: int
    signature: int * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VectorBuffer::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 319
    functionName: VectorBuffer::size
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 1
    functionsReached:
    - VectorBuffer::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:326,1
    - Dst: back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:327,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 4
    argCount: 1
    argNames:
    - ' format'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: IsIntegerFormat
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - back
    - empty
    linkageType: ''
    returnType: bool
    signature: bool IsIntegerFormat(const std::string& format)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: py::isinstance<py::buffer>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:336,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:338,1
    - Dst: IsIntegerFormat
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:339,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:340,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:343,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:346,1
    - Dst: py::buffer_info::strides::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:351,1
    - Dst: IntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:355,1
    - Dst: absl::Span<const int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:355,1
    - Dst: static_cast<const int*>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:356,1
    - Dst: static_cast<const char*>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:360,1
    - Dst: std::memcpy
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:363,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:363,1
    - Dst: reinterpret_cast<const int32_t*>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:366,1
    - Dst: reinterpret_cast<const int64_t*>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:371,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:372,1
    - Dst: IntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:375,1
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:375,1
    - Dst: IntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:382,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:382,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:384,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 1
    argNames:
    - ' ids_obj'
    argTypes:
    - py::object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 388
    functionName: CastToIntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const int64_t*>
    - static_cast<int>
    - cast
    - static_cast<const char*>
    - py::isinstance<py::buffer>
    - py::buffer_info::strides::empty
    - std::memcpy
    - std::move
    - static_cast<const int*>
    - reinterpret_cast<const int32_t*>
    - IsIntegerFormat
    - IntSpanOrVector
    - absl::Span<const int>
    - py::type_error
    - std::vector::data
    linkageType: ''
    returnType: IntSpanOrVector
    signature: IntSpanOrVector CastToIntSpanOrVector(const py::object& ids_obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:396,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:398,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:402,1
    - Dst: py::sequence::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:402,1
    - Dst: py::sequence::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:403,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:404,1
    - Dst: CastToIntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:405,1
    - Dst: py::reinterpret_borrow<py::object>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' ins_obj'
    argTypes:
    - py::object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 408
    functionName: CastToVectorIntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - py::reinterpret_borrow<py::object>
    - py::sequence::size
    - cast
    - std::vector::push_back
    - std::vector::reserve
    - CastToIntSpanOrVector
    - py::type_error
    linkageType: ''
    returnType: std::vector<IntSpanOrVector>
    signature: "std::vector<IntSpanOrVector> CastToVectorIntSpanOrVector(\n    const
      py::object& ins_obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:413,1
    - Dst: absl::Span<const int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:413,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' self'
    - id
    - func
    argTypes:
    - sentencepiece::SentencePieceProcessor
    - int
    - FuncType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 415
    functionName: SingleCall
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - GetPieceSize
    - CheckIdsThrowException
    - absl::Span<const int>
    linkageType: ''
    returnType: decltype(auto)
    signature: "decltype(auto) SingleCall(const sentencepiece::SentencePieceProcessor&
      self,\n                          int id, FuncType func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CastToIntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:420,1
    - Dst: CheckIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:421,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:421,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:421,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:422,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:423,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' self'
    - ' ids_obj'
    - func
    argTypes:
    - sentencepiece::SentencePieceProcessor
    - py::object
    - FuncType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: BatchCall
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - GetPieceSize
    - CheckIdsThrowException
    - CastToIntSpanOrVector
    - IntSpanOrVector::span
    linkageType: ''
    returnType: py::list
    signature: "py::list BatchCall(const sentencepiece::SentencePieceProcessor& self,\n
      \                  const py::object& ids_obj, FuncType func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 440
    functionName: REGISTER_ID_METHOD
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_ID_METHOD(NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Status
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:444,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - add_bos
    - add_eos
    - reverse
    - emit_unk_piece
    argTypes:
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 448
    functionName: CheckProtoArgsThrowException
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - absl::Status
    linkageType: ''
    returnType: void
    signature: "void CheckProtoArgsThrowException(bool add_bos, bool add_eos, bool
      reverse,\n                                  bool emit_unk_piece)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: OneCharLen
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OneCharLen(const char* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:455,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:459,1
    - Dst: std::min
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:461,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:461,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:462,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:462,1
    - Dst: OneCharLen
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:462,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:462,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - orig
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 472
    functionName: BuildUtf8ToUnicodeMap
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - absl::string_view::empty
    - std::max<int>
    - absl::string_view::remove_prefix
    - static_cast<size_t>
    - absl::string_view::size
    - OneCharLen
    - absl::string_view::data
    - std::min
    linkageType: ''
    returnType: std::vector<int>
    signature: std::vector<int> BuildUtf8ToUnicodeMap(absl::string_view orig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BuildUtf8ToUnicodeMap
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:477,1
    - Dst: text
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:477,1
    - Dst: pieces_size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:480,1
    - Dst: pieces
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:486,1
    - Dst: id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:487,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:489,1
    - Dst: piece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:489,1
    - Dst: py::make_tuple
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:490,1
    - Dst: begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:490,1
    - Dst: end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:490,1
    - Dst: py::str
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:492,1
    - Dst: piece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:492,1
    - Dst: begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:494,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:494,1
    - Dst: end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:496,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:496,1
    - Dst: py::value_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:497,1
    - Dst: begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:500,1
    - Dst: end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:502,1
    - Dst: py::make_tuple
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:503,1
    - Dst: ToPyString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:508,1
    - Dst: text
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - ' spt'
    - return_bytes
    argTypes:
    - sentencepiece::SentencePieceText
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 513
    functionName: ExtractOffsetMapping
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - ToPyString
    - end
    - piece
    - pieces_size
    - BuildUtf8ToUnicodeMap
    - std::vector::size
    - begin
    - py::str
    - id
    - py::bytes
    - py::value_error
    - pieces
    - py::make_tuple
    - text
    linkageType: ''
    returnType: py::dict
    signature: "py::dict ExtractOffsetMapping(const sentencepiece::SentencePieceText&
      spt,\n                              bool return_bytes)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: py::isinstance<py::bytes>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:29,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:31,1
    - Dst: py::isinstance<py::str>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:32,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:34,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - py::object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: PyInputStringView
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - cast
    - py::isinstance<py::str>
    - py::type_error
    - py::isinstance<py::bytes>
    linkageType: ''
    returnType: void
    signature: void PyInputStringView(const py::object& obj)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:44,1
    - Dst: py::str
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' str'
    - is_bytes
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 48
    functionName: ToPyString
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 1
    functionsReached:
    - py::str
    - py::bytes
    linkageType: ''
    returnType: py::object
    signature: py::object ToPyString(const std::string& str, bool is_bytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:53,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:55,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:56,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:59,1
    - Dst: py::str
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' vec'
    - is_bytes
    argTypes:
    - std::vector<std::string>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: ToPyStringList
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - py::bytes
    - py::str
    - size
    linkageType: ''
    returnType: py::list
    signature: py::list ToPyStringList(const std::vector<std::string>& vec, bool is_bytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: py::register_exception_translator
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:68,1
    - Dst: std::rethrow_exception
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:70,1
    - Dst: ToString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:72,1
    - Dst: code
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:73,1
    - Dst: std::runtime_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:75,1
    - Dst: std::out_of_range
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:77,1
    - Dst: std::invalid_argument
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:79,1
    - Dst: std::runtime_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:81,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 85
    functionName: RegisterExceptionTranslator
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - std::rethrow_exception
    - std::runtime_error
    - code
    - py::register_exception_translator
    - ToString
    - std::invalid_argument
    - std::out_of_range
    linkageType: ''
    returnType: void
    signature: void RegisterExceptionTranslator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:91,1
    - Dst: PySentenceIterator::Next
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - it
    argTypes:
    - py::iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: PySentenceIterator::PySentenceIterator
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - PySentenceIterator::Next
    - std::move
    linkageType: ''
    returnType: void
    signature: void PySentenceIterator(py::iterator it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: PySentenceIterator::done
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool done() const override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: py::iterator::sentinel
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:97,1
    - Dst: py::reinterpret_borrow<py::object>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:102,1
    - Dst: py::isinstance<py::str>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:103,1
    - Dst: py::isinstance<py::bytes>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:103,1
    - Dst: py::object::cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:104,1
    - Dst: absl::Status
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:106,1
    - Dst: empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:112,1
    - Dst: back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:113,1
    - Dst: back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:113,1
    - Dst: pop_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:114,1
    - Dst: absl::Status
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:118,1
    - Dst: what
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:118,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 121
    functionName: PySentenceIterator::Next
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 2
    functionsReached:
    - back
    - absl::Status
    - py::reinterpret_borrow<py::object>
    - py::object::cast
    - py::iterator::sentinel
    - pop_back
    - py::isinstance<py::bytes>
    - empty
    - py::isinstance<py::str>
    - what
    linkageType: ''
    returnType: void
    signature: void Next() override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    functionName: '& value() const override'
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: PySentenceIterator::status
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status status() const override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: bos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:138,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:139,1
    - Dst: eos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:142,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:143,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:146,1
    - Dst: std::reverse
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:147,1
    - Dst: std::vector<int>*::begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:147,1
    - Dst: std::vector<int>*::end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:147,1
    - Dst: std::vector<int>*::insert
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:149,1
    - Dst: std::vector<int>*::begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:149,1
    - Dst: bos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:149,1
    - Dst: std::vector<int>*::push_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:152,1
    - Dst: eos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:152,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:154,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 5
    argNames:
    - ' sp'
    - ids
    - add_bos
    - add_eos
    - reverse
    argTypes:
    - sentencepiece::SentencePieceProcessor
    - std::vector<int>*
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 155
    functionName: RewriteIds
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - absl::InvalidArgumentError
    - std::reverse
    - std::vector<int>*::insert
    - eos_id
    - bos_id
    - std::vector<int>*::push_back
    - std::vector<int>*::end
    - std::vector<int>*::begin
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status RewriteIds(const sentencepiece::SentencePieceProcessor&
      sp,\n                        std::vector<int>* ids, bool add_bos, bool add_eos,\n
      \                       bool reverse)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: bos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:160,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:161,1
    - Dst: eos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:164,1
    - Dst: absl::InvalidArgumentError
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:165,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:169,1
    - Dst: std::reverse
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:170,1
    - Dst: std::vector<std::string>*::begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:170,1
    - Dst: std::vector<std::string>*::end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:170,1
    - Dst: std::vector<std::string>*::insert
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:172,1
    - Dst: std::vector<std::string>*::begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:172,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:172,1
    - Dst: bos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:172,1
    - Dst: std::vector<std::string>*::push_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:175,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:175,1
    - Dst: eos_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:175,1
    - Dst: IdToPiece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:178,1
    - Dst: unk_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:178,1
    - Dst: PieceToId
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:180,1
    - Dst: unk_id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:181,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:186,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 6
    argNames:
    - ' sp'
    - pieces
    - add_bos
    - add_eos
    - reverse
    - emit_unk_piece
    argTypes:
    - sentencepiece::SentencePieceProcessor
    - std::vector<std::string>*
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 187
    functionName: RewriteIds
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 2
    functionsReached:
    - absl::OkStatus
    - absl::InvalidArgumentError
    - std::vector<std::string>*::end
    - std::reverse
    - std::vector<std::string>*::insert
    - unk_id
    - std::vector<std::string>*::begin
    - eos_id
    - bos_id
    - PieceToId
    - std::vector<std::string>*::push_back
    - IdToPiece
    linkageType: ''
    returnType: absl::Status
    signature: "absl::Status RewriteIds(const sentencepiece::SentencePieceProcessor&
      sp,\n                        std::vector<std::string>* pieces, bool add_bos,\n
      \                       bool add_eos, bool reverse, bool emit_unk_piece)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RewriteIds
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:192,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:193,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 5
    argNames:
    - ' sp'
    - ids
    - add_bos
    - add_eos
    - reverse
    argTypes:
    - sentencepiece::SentencePieceProcessor
    - std::vector<int>*
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: RewriteIdsThrowException
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - RewriteIds
    - auto::ok
    linkageType: ''
    returnType: void
    signature: "void RewriteIdsThrowException(const sentencepiece::SentencePieceProcessor&
      sp,\n                              std::vector<int>* ids, bool add_bos, bool
      add_eos,\n                              bool reverse)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RewriteIds
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:200,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:201,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 6
    argNames:
    - ' sp'
    - pieces
    - add_bos
    - add_eos
    - reverse
    - emit_unk_piece
    argTypes:
    - sentencepiece::SentencePieceProcessor
    - std::vector<std::string>*
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: RewriteIdsThrowException
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - RewriteIds
    - auto::ok
    linkageType: ''
    returnType: void
    signature: "void RewriteIdsThrowException(const sentencepiece::SentencePieceProcessor&
      sp,\n                              std::vector<std::string>* pieces, bool add_bos,\n
      \                             bool add_eos, bool reverse, bool emit_unk_piece)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Status
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:207,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ids
    - num_pieces
    argTypes:
    - absl::Span<const int>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 212
    functionName: CheckIds
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 1
    functionsReached:
    - absl::OkStatus
    - absl::Status
    linkageType: ''
    returnType: absl::Status
    signature: absl::Status CheckIds(absl::Span<const int> ids, int num_pieces)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CheckIds
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:215,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ids
    - num_pieces
    argTypes:
    - absl::Span<const int>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 217
    functionName: CheckIdsThrowException
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 2
    functionsReached:
    - CheckIds
    - auto::ok
    linkageType: ''
    returnType: void
    signature: void CheckIdsThrowException(absl::Span<const int> ids, int num_pieces)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::thread::hardware_concurrency
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:221,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:223,1
    - Dst: std::min<int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - num_threads
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 224
    functionName: GetNumThreads
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 2
    functionsReached:
    - std::thread::hardware_concurrency
    - std::max<int>
    - std::min<int>
    linkageType: ''
    returnType: int
    signature: int GetNumThreads(int num_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GetNumThreads
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:229,1
    - Dst: std::make_unique<sentencepiece::ThreadPool>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - num_threads
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: PyThreadPool::PyThreadPool
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - GetNumThreads
    - std::make_unique<sentencepiece::ThreadPool>
    linkageType: ''
    returnType: void
    signature: void PyThreadPool(int num_threads)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyThreadPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: PyThreadPool::get
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 2
    functionsReached:
    - PyThreadPool::get
    linkageType: ''
    returnType: sentencepiece::ThreadPool
    signature: sentencepiece::ThreadPool * get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: PyThreadPool::num_threads
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int num_threads() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: py::object::is_none
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:244,1
    - Dst: py::object::cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:245,1
    - Dst: std::make_unique<sentencepiece::ThreadPool>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:247,1
    - Dst: GetNumThreads
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:248,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - num_threads
    - thread_pool
    argTypes:
    - int
    - py::object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 251
    functionName: WorkerPool::WorkerPool
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - GetNumThreads
    - py::object::cast
    - WorkerPool::get
    - std::make_unique<sentencepiece::ThreadPool>
    - py::object::is_none
    linkageType: ''
    returnType: void
    signature: void WorkerPool(int num_threads, py::object thread_pool)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: WorkerPool::get
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: sentencepiece::ThreadPool
    signature: sentencepiece::ThreadPool * get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:265,1
    - Dst: PyListStringViewVector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:265,1
    - Dst: reserve
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:266,1
    - Dst: PyListStringViewVector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:266,1
    - Dst: PyListStringViewVector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:267,1
    - Dst: py::reinterpret_borrow<py::object>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:269,1
    - Dst: push_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:270,1
    - Dst: py::object::cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:270,1
    - Dst: push_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:271,1
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:271,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:273,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' ins'
    argTypes:
    - py::list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 276
    functionName: PyListStringViewVector::PyListStringViewVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - py::reinterpret_borrow<py::object>
    - py::object::cast
    - PyListStringViewVector::size
    - std::move
    - push_back
    - reserve
    - py::type_error
    linkageType: ''
    returnType: void
    signature: void PyListStringViewVector(const py::list& ins)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    functionName: PyListStringViewVector::views
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::Span<const absl::string_view>
    signature: absl::Span<const absl::string_view> views() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyListStringViewVector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: PyListStringViewVector::size
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 4
    functionsReached:
    - PyListStringViewVector::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PyListStringViewVector::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: PyListStringViewVector::empty
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 2
    functionsReached:
    - PyListStringViewVector::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    functionName: operator[](size_t i) const
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: absl::string_view
    signature: absl::string_view operator[](size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    functionName: IntSpanOrVector::IntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IntSpanOrVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - span
    argTypes:
    - absl::Span<const int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 293
    functionName: IntSpanOrVector::IntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IntSpanOrVector(absl::Span<const int> span)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 295
    functionName: IntSpanOrVector::IntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void IntSpanOrVector(std::vector<int>&& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    functionName: IntSpanOrVector::IntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IntSpanOrVector(const IntSpanOrVector&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: '& operator=(const IntSpanOrVector&)'
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IntSpanOrVector
    signature: IntSpanOrVector & operator=(const IntSpanOrVector&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: IntSpanOrVector::IntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IntSpanOrVector(IntSpanOrVector&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: '& operator=(IntSpanOrVector&&)'
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IntSpanOrVector
    signature: IntSpanOrVector & operator=(IntSpanOrVector&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::Span<const int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 304
    functionName: IntSpanOrVector::span
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 1
    functionsReached:
    - absl::Span<const int>
    linkageType: ''
    returnType: absl::Span<const int>
    signature: absl::Span<const int> span() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    functionName: VectorBuffer::VectorBuffer
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void VectorBuffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<int>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 316
    functionName: VectorBuffer::VectorBuffer
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void VectorBuffer(std::vector<int>&& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VectorBuffer::data
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 318
    functionName: VectorBuffer::data
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 2
    functionsReached:
    - VectorBuffer::data
    linkageType: ''
    returnType: int
    signature: int * data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: VectorBuffer::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 319
    functionName: VectorBuffer::size
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 2
    functionsReached:
    - VectorBuffer::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:326,1
    - Dst: back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:327,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 4
    argCount: 1
    argNames:
    - ' format'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 331
    functionName: IsIntegerFormat
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 1
    functionsReached:
    - back
    - empty
    linkageType: ''
    returnType: bool
    signature: bool IsIntegerFormat(const std::string& format)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: py::isinstance<py::buffer>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:336,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:338,1
    - Dst: IsIntegerFormat
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:339,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:340,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:343,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:346,1
    - Dst: py::buffer_info::strides::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:351,1
    - Dst: IntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:355,1
    - Dst: absl::Span<const int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:355,1
    - Dst: static_cast<const int*>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:356,1
    - Dst: static_cast<const char*>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:360,1
    - Dst: std::memcpy
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:363,1
    - Dst: std::vector::data
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:363,1
    - Dst: reinterpret_cast<const int32_t*>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:366,1
    - Dst: reinterpret_cast<const int64_t*>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:371,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:372,1
    - Dst: IntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:375,1
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:375,1
    - Dst: IntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:382,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:382,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:384,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 37
    argCount: 1
    argNames:
    - ' ids_obj'
    argTypes:
    - py::object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 388
    functionName: CastToIntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 2
    functionsReached:
    - reinterpret_cast<const int64_t*>
    - static_cast<int>
    - cast
    - static_cast<const char*>
    - py::isinstance<py::buffer>
    - py::buffer_info::strides::empty
    - std::memcpy
    - std::move
    - static_cast<const int*>
    - reinterpret_cast<const int32_t*>
    - IsIntegerFormat
    - IntSpanOrVector
    - absl::Span<const int>
    - py::type_error
    - std::vector::data
    linkageType: ''
    returnType: IntSpanOrVector
    signature: IntSpanOrVector CastToIntSpanOrVector(const py::object& ids_obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:396,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:398,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:402,1
    - Dst: py::sequence::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:402,1
    - Dst: py::sequence::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:403,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:404,1
    - Dst: CastToIntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:405,1
    - Dst: py::reinterpret_borrow<py::object>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:405,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' ins_obj'
    argTypes:
    - py::object
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 392
    functionDepth: 2
    functionLinenumber: 392
    functionLinenumberEnd: 408
    functionName: CastToVectorIntSpanOrVector
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - py::reinterpret_borrow<py::object>
    - py::sequence::size
    - cast
    - std::vector::push_back
    - std::vector::reserve
    - CastToIntSpanOrVector
    - py::type_error
    linkageType: ''
    returnType: std::vector<IntSpanOrVector>
    signature: "std::vector<IntSpanOrVector> CastToVectorIntSpanOrVector(\n    const
      py::object& ins_obj)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CheckIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:413,1
    - Dst: absl::Span<const int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:413,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' self'
    - id
    - func
    argTypes:
    - sentencepiece::SentencePieceProcessor
    - int
    - FuncType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 415
    functionName: SingleCall
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - GetPieceSize
    - CheckIdsThrowException
    - absl::Span<const int>
    linkageType: ''
    returnType: decltype(auto)
    signature: "decltype(auto) SingleCall(const sentencepiece::SentencePieceProcessor&
      self,\n                          int id, FuncType func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CastToIntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:420,1
    - Dst: CheckIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:421,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:421,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:421,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:422,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:423,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:424,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' self'
    - ' ids_obj'
    - func
    argTypes:
    - sentencepiece::SentencePieceProcessor
    - py::object
    - FuncType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 418
    functionDepth: 2
    functionLinenumber: 418
    functionLinenumberEnd: 427
    functionName: BatchCall
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - GetPieceSize
    - CheckIdsThrowException
    - CastToIntSpanOrVector
    - IntSpanOrVector::span
    linkageType: ''
    returnType: py::list
    signature: "py::list BatchCall(const sentencepiece::SentencePieceProcessor& self,\n
      \                  const py::object& ids_obj, FuncType func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 440
    functionName: REGISTER_ID_METHOD
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: REGISTER_ID_METHOD(NAME)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: absl::Status
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:444,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 4
    argNames:
    - add_bos
    - add_eos
    - reverse
    - emit_unk_piece
    argTypes:
    - bool
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 448
    functionName: CheckProtoArgsThrowException
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - absl::Status
    linkageType: ''
    returnType: void
    signature: "void CheckProtoArgsThrowException(bool add_bos, bool add_eos, bool
      reverse,\n                                  bool emit_unk_piece)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 452
    functionName: OneCharLen
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t OneCharLen(const char* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:455,1
    - Dst: absl::string_view::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:459,1
    - Dst: std::min
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:461,1
    - Dst: absl::string_view::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:461,1
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:462,1
    - Dst: std::max<int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:462,1
    - Dst: OneCharLen
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:462,1
    - Dst: absl::string_view::data
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:462,1
    - Dst: absl::string_view::remove_prefix
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:468,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - orig
    argTypes:
    - absl::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 454
    functionDepth: 1
    functionLinenumber: 454
    functionLinenumberEnd: 472
    functionName: BuildUtf8ToUnicodeMap
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 1
    functionsReached:
    - absl::string_view::empty
    - std::max<int>
    - absl::string_view::remove_prefix
    - static_cast<size_t>
    - absl::string_view::size
    - OneCharLen
    - absl::string_view::data
    - std::min
    linkageType: ''
    returnType: std::vector<int>
    signature: std::vector<int> BuildUtf8ToUnicodeMap(absl::string_view orig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BuildUtf8ToUnicodeMap
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:477,1
    - Dst: text
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:477,1
    - Dst: pieces_size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:480,1
    - Dst: pieces
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:486,1
    - Dst: id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:487,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:489,1
    - Dst: piece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:489,1
    - Dst: py::make_tuple
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:490,1
    - Dst: begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:490,1
    - Dst: end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:490,1
    - Dst: py::str
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:492,1
    - Dst: piece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:492,1
    - Dst: begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:494,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:494,1
    - Dst: end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:496,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:496,1
    - Dst: py::value_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:497,1
    - Dst: begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:500,1
    - Dst: end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:502,1
    - Dst: py::make_tuple
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:503,1
    - Dst: ToPyString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:508,1
    - Dst: text
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - ' spt'
    - return_bytes
    argTypes:
    - sentencepiece::SentencePieceText
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 473
    functionDepth: 2
    functionLinenumber: 473
    functionLinenumberEnd: 513
    functionName: ExtractOffsetMapping
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - ToPyString
    - end
    - piece
    - pieces_size
    - BuildUtf8ToUnicodeMap
    - std::vector::size
    - begin
    - py::str
    - id
    - py::bytes
    - py::value_error
    - pieces
    - py::make_tuple
    - text
    linkageType: ''
    returnType: py::dict
    signature: "py::dict ExtractOffsetMapping(const sentencepiece::SentencePieceText&
      spt,\n                              bool return_bytes)"
  - BBCount: 107
    BranchProfiles: []
    Callsites:
    - Dst: RegisterExceptionTranslator
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:518,1
    - Dst: py::class_<VectorBuffer>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:520,1
    - Dst: py::buffer_protocol
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:520,1
    - Dst: py::buffer_info
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:522,1
    - Dst: const_cast<int*>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:522,1
    - Dst: data
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:522,1
    - Dst: py::format_descriptor<int>::format
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:523,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:524,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:529,1
    - Dst: data
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:529,1
    - Dst: def
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:533,1
    - Dst: def
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:534,1
    - Dst: def
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:535,1
    - Dst: def
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:536,1
    - Dst: sentencepiece::SetDataDir
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:537,1
    - Dst: py::class_<PyThreadPool>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:540,1
    - Dst: py::init<int>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:541,1
    - Dst: py::class_<sentencepiece::SentencePieceProcessor>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:544,1
    - Dst: py::init<>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:545,1
    - Dst: Load
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:550,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:551,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:558,1
    - Dst: LoadFromSerializedProto
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:560,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:561,1
    - Dst: SampleEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:581,1
    - Dst: Encode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:583,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:585,1
    - Dst: RewriteIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:586,1
    - Dst: SampleEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:600,1
    - Dst: Encode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:602,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:604,1
    - Dst: RewriteIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:605,1
    - Dst: VectorBuffer
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:607,1
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:607,1
    - Dst: SampleEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:621,1
    - Dst: Encode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:623,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:625,1
    - Dst: RewriteIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:626,1
    - Dst: ToPyStringList
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:629,1
    - Dst: CheckProtoArgsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:636,1
    - Dst: SampleEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:644,1
    - Dst: Encode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:646,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:648,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:650,1
    - Dst: sentencepiece::SentencePieceText::SerializeAsString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:650,1
    - Dst: SampleEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:663,1
    - Dst: Encode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:665,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:667,1
    - Dst: BuildUtf8ToUnicodeMap
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:672,1
    - Dst: sentencepiece::SentencePieceText::pieces_size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:675,1
    - Dst: sentencepiece::SentencePieceText::pieces
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:681,1
    - Dst: id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:682,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:684,1
    - Dst: piece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:684,1
    - Dst: py::make_tuple
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:685,1
    - Dst: begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:685,1
    - Dst: end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:685,1
    - Dst: py::str
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:687,1
    - Dst: piece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:687,1
    - Dst: begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:689,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:689,1
    - Dst: end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:691,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:691,1
    - Dst: py::value_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:692,1
    - Dst: begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:696,1
    - Dst: end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:698,1
    - Dst: py::make_tuple
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:699,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:717,1
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:721,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:722,1
    - Dst: SampleEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:727,1
    - Dst: Encode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:729,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:731,1
    - Dst: RewriteIds
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:732,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:733,1
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:734,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:735,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:737,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:738,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:748,1
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:752,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:753,1
    - Dst: SampleEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:758,1
    - Dst: Encode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:760,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:762,1
    - Dst: RewriteIds
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:763,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:764,1
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:765,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:766,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:768,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:769,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:771,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:772,1
    - Dst: VectorBuffer
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:773,1
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:773,1
    - Dst: empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:783,1
    - Dst: py::list
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:783,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:785,1
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:789,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:790,1
    - Dst: SampleEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:795,1
    - Dst: Encode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:797,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:799,1
    - Dst: RewriteIds
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:800,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:802,1
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:803,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:804,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:806,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:807,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:809,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:810,1
    - Dst: ToPyStringList
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:811,1
    - Dst: CheckProtoArgsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:820,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:823,1
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:827,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:828,1
    - Dst: SampleEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:833,1
    - Dst: Encode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:835,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:837,1
    - Dst: sentencepiece::SentencePieceText::SerializeAsString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:838,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:839,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:841,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:842,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:844,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:845,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:846,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:857,1
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:861,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:862,1
    - Dst: SampleEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:866,1
    - Dst: Encode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:869,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:871,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:872,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:874,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:875,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:878,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:879,1
    - Dst: BuildUtf8ToUnicodeMap
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:885,1
    - Dst: sentencepiece::SentencePieceText::pieces_size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:888,1
    - Dst: sentencepiece::SentencePieceText::pieces
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:894,1
    - Dst: id
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:895,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:897,1
    - Dst: piece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:897,1
    - Dst: py::make_tuple
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:898,1
    - Dst: begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:898,1
    - Dst: end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:898,1
    - Dst: py::str
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:900,1
    - Dst: piece
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:900,1
    - Dst: begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:902,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:902,1
    - Dst: end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:904,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:904,1
    - Dst: py::value_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:905,1
    - Dst: begin
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:909,1
    - Dst: end
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:911,1
    - Dst: py::make_tuple
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:912,1
    - Dst: CastToIntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:929,1
    - Dst: CheckIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:933,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:933,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:933,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:934,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:934,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:935,1
    - Dst: py::str
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:937,1
    - Dst: CastToIntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:942,1
    - Dst: CheckIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:946,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:946,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:946,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:947,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:947,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:948,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:950,1
    - Dst: py::list::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:955,1
    - Dst: py::object
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:955,1
    - Dst: py::str
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:955,1
    - Dst: py::isinstance<py::bytes>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:956,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:961,1
    - Dst: PyListStringViewVector::views
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:961,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:962,1
    - Dst: ToPyString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:964,1
    - Dst: py::list::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:969,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:969,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:974,1
    - Dst: PyListStringViewVector::views
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:974,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:975,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:977,1
    - Dst: CastToIntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:982,1
    - Dst: CheckIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:986,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:986,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:986,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:987,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:987,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:988,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:990,1
    - Dst: sentencepiece::SentencePieceText::SerializeAsString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:990,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:999,1
    - Dst: PyListStringViewVector::views
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:999,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1000,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1002,1
    - Dst: sentencepiece::SentencePieceText::SerializeAsString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1002,1
    - Dst: py::isinstance<py::tuple>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1009,1
    - Dst: py::list
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1010,1
    - Dst: py::isinstance<py::list>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1016,1
    - Dst: py::sequence::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1018,1
    - Dst: py::isinstance<py::str>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1020,1
    - Dst: py::isinstance<py::bytes>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1022,1
    - Dst: py::object::cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1036,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1039,1
    - Dst: PyListStringViewVector::views
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1039,1
    - Dst: CastToIntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1042,1
    - Dst: CheckIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1045,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1045,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1045,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1046,1
    - Dst: IntSpanOrVector::span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1046,1
    - Dst: absl::Status::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1049,1
    - Dst: ExtractOffsetMapping
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1051,1
    - Dst: CastToVectorIntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1060,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1061,1
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1065,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1066,1
    - Dst: CheckIds
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1068,1
    - Dst: span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1068,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1068,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1069,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1070,1
    - Dst: span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1070,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1072,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1073,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1075,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1076,1
    - Dst: py::str
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1077,1
    - Dst: CastToVectorIntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1086,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1087,1
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1091,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1092,1
    - Dst: CheckIds
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1094,1
    - Dst: span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1094,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1094,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1095,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1096,1
    - Dst: span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1096,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1098,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1099,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1101,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1102,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1103,1
    - Dst: CastToVectorIntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1112,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1113,1
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1117,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1118,1
    - Dst: CheckIds
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1120,1
    - Dst: span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1120,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1120,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1121,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1123,1
    - Dst: span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1123,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1124,1
    - Dst: sentencepiece::SentencePieceText::SerializeAsString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1125,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1126,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1128,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1129,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1131,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1132,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1133,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1140,1
    - Dst: py::list
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1140,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1141,1
    - Dst: py::list::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1142,1
    - Dst: py::list
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1142,1
    - Dst: py::isinstance<py::bytes>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1143,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1146,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1146,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1147,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1148,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1149,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1149,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1150,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1152,1
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1156,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1157,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1158,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1159,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1160,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1162,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1163,1
    - Dst: ToPyString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1164,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1171,1
    - Dst: py::list
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1171,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1173,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1173,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1174,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1175,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1176,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1176,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1177,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1179,1
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1183,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1184,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1185,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1186,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1187,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1189,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1190,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1191,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1198,1
    - Dst: py::list
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1198,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1200,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1200,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1201,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1202,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1203,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1203,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1204,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1206,1
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1210,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1211,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1214,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1215,1
    - Dst: sentencepiece::SentencePieceText::SerializeAsString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1216,1
    - Dst: absl::OkStatus
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1217,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1219,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1220,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1222,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1223,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1224,1
    - Dst: py::isinstance<py::tuple>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1234,1
    - Dst: py::list
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1235,1
    - Dst: py::sequence::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1239,1
    - Dst: py::list
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1239,1
    - Dst: py::sequence::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1241,1
    - Dst: py::sequence::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1242,1
    - Dst: py::isinstance<py::tuple>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1244,1
    - Dst: py::list
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1245,1
    - Dst: py::list::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1254,1
    - Dst: py::isinstance<py::list>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1256,1
    - Dst: py::isinstance<py::tuple>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1257,1
    - Dst: py::sequence::empty
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1259,1
    - Dst: py::isinstance<py::str>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1261,1
    - Dst: py::isinstance<py::bytes>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1263,1
    - Dst: py::list::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1275,1
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1280,1
    - Dst: py::list::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1280,1
    - Dst: py::list::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1282,1
    - Dst: py::list::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1283,1
    - Dst: std::vector::emplace_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1284,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1284,1
    - Dst: std::vector::back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1285,1
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1289,1
    - Dst: py::list::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1290,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1291,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1292,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1293,1
    - Dst: CastToVectorIntSpanOrVector
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1297,1
    - Dst: sentencepiece::RunBatch
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1301,1
    - Dst: py::list::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1302,1
    - Dst: CheckIds
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1304,1
    - Dst: span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1304,1
    - Dst: GetPieceSize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1304,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1305,1
    - Dst: Decode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1306,1
    - Dst: span
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1306,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1308,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1309,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1313,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1314,1
    - Dst: ExtractOffsetMapping
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1315,1
    - Dst: NBestEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1329,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1330,1
    - Dst: RewriteIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1332,1
    - Dst: NBestEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1346,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1347,1
    - Dst: RewriteIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1349,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1353,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1354,1
    - Dst: VectorBuffer
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1355,1
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1355,1
    - Dst: NBestEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1368,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1369,1
    - Dst: RewriteIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1371,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1375,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1376,1
    - Dst: ToPyStringList
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1377,1
    - Dst: CheckProtoArgsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1385,1
    - Dst: NBestEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1391,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1392,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1394,1
    - Dst: sentencepiece::NBestSentencePieceText::SerializeAsString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1394,1
    - Dst: ParallelEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1411,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1411,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1412,1
    - Dst: RewriteIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1413,1
    - Dst: ParallelEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1428,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1428,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1429,1
    - Dst: RewriteIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1430,1
    - Dst: VectorBuffer
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1432,1
    - Dst: std::move
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1432,1
    - Dst: ParallelEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1444,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1445,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1446,1
    - Dst: RewriteIdsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1447,1
    - Dst: ToPyStringList
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1450,1
    - Dst: CheckProtoArgsThrowException
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1457,1
    - Dst: ParallelEncode
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1465,1
    - Dst: WorkerPool::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1465,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1466,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1468,1
    - Dst: sentencepiece::SentencePieceText::SerializeAsString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1468,1
    - Dst: Normalize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1479,1
    - Dst: ToPyString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1481,1
    - Dst: Normalize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1491,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1492,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1495,1
    - Dst: py::make_tuple
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1498,1
    - Dst: ToPyString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1498,1
    - Dst: PieceToId
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1505,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1509,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1510,1
    - Dst: PieceToId
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1512,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1512,1
    - Dst: py::type_error
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1514,1
    - Dst: REGISTER_ID_METHOD
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1518,1
    - Dst: REGISTER_ID_METHOD
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1518,1
    - Dst: REGISTER_ID_METHOD
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1519,1
    - Dst: REGISTER_ID_METHOD
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1519,1
    - Dst: REGISTER_ID_METHOD
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1520,1
    - Dst: REGISTER_ID_METHOD
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1520,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1529,1
    - Dst: serialized_model_proto
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1529,1
    - Dst: "py::class_<\n      sentencepiece::SentencePieceTrainer,\n      std::unique_ptr<sentencepiece::SentencePieceTrainer,
        py::nodelete>>"
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1534,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1541,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1543,1
    - Dst: sentencepiece::TrainerComponents::TrainerComponents
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1552,1
    - Dst: is_none
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1556,1
    - Dst: std::make_unique<PySentenceIterator>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1557,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1558,1
    - Dst: std::unique_ptr::get
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1559,1
    - Dst: is_none
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1561,1
    - Dst: py::str
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1567,1
    - Dst: data
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1567,1
    - Dst: size
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1567,1
    - Dst: pretokenizer
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1568,1
    - Dst: py::object::cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1570,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1571,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1571,1
    - Dst: what
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1575,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1584,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1587,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1591,1
    - Dst: py::none
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1593,1
    - Dst: py::arg
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1595,1
    - Dst: py::arg
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1595,1
    - Dst: py::none
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1595,1
    - Dst: py::arg
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1596,1
    - Dst: py::arg
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1597,1
    - Dst: py::arg
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1598,1
    - Dst: py::class_<sentencepiece::SentencePieceNormalizer>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1601,1
    - Dst: py::init<>
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1603,1
    - Dst: Load
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1608,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1609,1
    - Dst: cast
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1616,1
    - Dst: LoadFromSerializedProto
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1618,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1619,1
    - Dst: LoadFromRuleTSV
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1626,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1627,1
    - Dst: LoadFromRuleName
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1634,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1635,1
    - Dst: LoadFromMap
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1643,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1644,1
    - Dst: Decompile
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1652,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1653,1
    - Dst: Normalize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1664,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1665,1
    - Dst: ToPyString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1667,1
    - Dst: Normalize
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1677,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1678,1
    - Dst: sentencepiece::ConvertToUnicodeAlignment
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1681,1
    - Dst: py::make_tuple
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1684,1
    - Dst: ToPyString
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1684,1
    - Dst: sentencepiece::SentencePieceTrainer::SetProtoField
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1689,1
    - Dst: mutable_normalizer_spec
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1690,1
    - Dst: auto::ok
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1691,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1695,1
    - Dst: serialized_model_proto
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1695,1
    - Dst: py::bytes
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1699,1
    - Dst: serialized_normalizer_spec
      Src: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc:1699,1
    CyclomaticComplexity: 186
    EdgeCount: 186
    ICount: 592
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 517
    functionDepth: 3
    functionLinenumber: 517
    functionLinenumberEnd: 1701
    functionName: PYBIND11_MODULE
    functionSourceFile: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    functionUses: 0
    functionsReached:
    - absl::OkStatus
    - py::buffer_protocol
    - REGISTER_ID_METHOD
    - py::format_descriptor<int>::format
    - py::list::empty
    - IntSpanOrVector::span
    - empty
    - py::isinstance<py::str>
    - py::make_tuple
    - py::list
    - PyListStringViewVector::views
    - absl::Status::ok
    - sentencepiece::SentencePieceTrainer::Train
    - py::arg
    - GetPieceSize
    - def
    - py::list::size
    - CheckProtoArgsThrowException
    - CastToVectorIntSpanOrVector
    - CheckIdsThrowException
    - py::class_<PyThreadPool>
    - WorkerPool::get
    - py::bytes
    - py::type_error
    - Load
    - sentencepiece::SentencePieceText::pieces
    - sentencepiece::SetDataDir
    - VectorBuffer
    - py::isinstance<py::list>
    - py::buffer_info
    - Decompile
    - span
    - LoadFromMap
    - py::class_<sentencepiece::SentencePieceNormalizer>
    - is_none
    - CheckIds
    - std::vector::emplace_back
    - py::sequence::empty
    - py::isinstance<py::tuple>
    - std::vector::reserve
    - ParallelEncode
    - Decode
    - sentencepiece::SentencePieceText::SerializeAsString
    - ToPyStringList
    - const_cast<int*>
    - sentencepiece::SentencePieceText::pieces_size
    - cast
    - ExtractOffsetMapping
    - sentencepiece::ConvertToUnicodeAlignment
    - LoadFromRuleTSV
    - serialized_normalizer_spec
    - auto::ok
    - std::move
    - std::vector::size
    - py::str
    - what
    - Normalize
    - piece
    - "py::class_<\n      sentencepiece::SentencePieceTrainer,\n      std::unique_ptr<sentencepiece::SentencePieceTrainer,
      py::nodelete>>"
    - std::vector::empty
    - std::vector::push_back
    - LoadFromSerializedProto
    - SampleEncode
    - mutable_normalizer_spec
    - RewriteIdsThrowException
    - Encode
    - sentencepiece::TrainerComponents::TrainerComponents
    - RewriteIds
    - py::init<int>
    - py::init<>
    - std::unique_ptr::get
    - CastToIntSpanOrVector
    - py::value_error
    - sentencepiece::RunBatch
    - std::make_unique<PySentenceIterator>
    - py::none
    - std::vector::back
    - py::isinstance<py::bytes>
    - serialized_model_proto
    - id
    - py::class_<VectorBuffer>
    - PieceToId
    - data
    - py::object
    - ToPyString
    - size
    - py::sequence::size
    - py::object::cast
    - begin
    - NBestEncode
    - sentencepiece::SentencePieceTrainer::SetProtoField
    - end
    - pretokenizer
    - sentencepiece::NBestSentencePieceText::SerializeAsString
    - RegisterExceptionTranslator
    - py::class_<sentencepiece::SentencePieceProcessor>
    - LoadFromRuleName
    - BuildUtf8ToUnicodeMap
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: void
    signature: void PYBIND11_MODULE(_sentencepiece, m, py::mod_gil_not_used())
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: std::unordered_map::find
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:29,1
    - Dst: std::unordered_map::end
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:30,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:31,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:31,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:33,1
    - Dst: first::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:46,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:51,1
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:53,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:60,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:60,1
    - Dst: WordSeq::ids::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:61,1
    - Dst: get_or_add
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:61,1
    - Dst: auto::substr
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:61,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:64,1
    - Dst: std::move
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:64,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:67,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:67,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:68,1
    - Dst: NodeArena::from_seq
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:77,1
    - Dst: WordSeq::ids::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:78,1
    - Dst: insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:81,1
    - Dst: WordSeq::ids::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:84,1
    - Dst: WordSeq::ids::back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:84,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:93,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:93,1
    - Dst: MaxHeap::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:94,1
    - Dst: MaxHeap::pop
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:97,1
    - Dst: HeapDirty::find
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:98,1
    - Dst: HeapDirty::end
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:98,1
    - Dst: HeapDirty::find
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:99,1
    - Dst: HeapDirty::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:101,1
    - Dst: MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:103,1
    - Dst: MaxHeap::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:104,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:105,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:105,1
    - Dst: util::OkStatus
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:107,1
    - Dst: std::tie
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:109,1
    - Dst: MaxHeap::pop
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:109,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:118,1
    - Dst: is_valid
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:119,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:122,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:125,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:125,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:126,1
    - Dst: std::vector<std::pair<std::string, float>>*::emplace_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:128,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:129,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:129,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:131,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:132,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:133,1
    - Dst: std::move
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:143,1
    - Dst: BigramIndex::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:144,1
    - Dst: sentencepiece::nlcodec::is_unlinked
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:150,1
    - Dst: auto*::unlink
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:168,1
    - Dst: erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:173,1
    - Dst: empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:174,1
    - Dst: BigramIndex::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:174,1
    - Dst: insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:176,1
    - Dst: erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:180,1
    - Dst: empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:181,1
    - Dst: BigramIndex::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:181,1
    - Dst: insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:183,1
    - Dst: MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:189,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:195,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:195,1
    - Dst: util::OkStatus
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:197,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 100
    argCount: 4
    argNames:
    - sentences
    - vocab_size
    - final_pieces
    - is_valid
    argTypes:
    - TrainerInterface::Sentences
    - int
    - std::vector<std::pair<std::string, float>>*
    - std::function<bool(const string_util::UnicodeText &)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 198
    functionName: sentencepiece::nlcodec::RunFastBPEMerges
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc
    functionUses: 2
    functionsReached:
    - WordSeq::ids::empty
    - HeapDirty::find
    - auto::size
    - erase
    - get_or_add
    - std::vector::size
    - std::move
    - empty
    - HeapDirty::erase
    - std::tie
    - std::unordered_map::end
    - first::empty
    - WordSeq::ids::back
    - MaxHeap::empty
    - std::vector::push_back
    - LOG
    - std::unordered_map::find
    - NodeArena::from_seq
    - auto::substr
    - std::vector<std::pair<std::string, float>>*::size
    - MaxHeap::push
    - std::vector<std::pair<std::string, float>>*::emplace_back
    - auto*::unlink
    - insert
    - static_cast<unsigned char>
    - is_valid
    - absl::flat_hash_set::insert
    - sentencepiece::string_util::UTF8ToUnicodeText
    - static_cast<int>
    - util::OkStatus
    - WordSeq::ids::push_back
    - HeapDirty::end
    - static_cast<float>
    - static_cast<int32_t>
    - MaxHeap::pop
    - BigramIndex::erase
    - sentencepiece::nlcodec::is_unlinked
    - WordSeq::ids::size
    linkageType: ''
    returnType: auto
    signature: "auto RunFastBPEMerges(\n    const TrainerInterface::Sentences &sentences,
      int vocab_size,\n    std::vector<std::pair<std::string, float>> *final_pieces,\n
      \   std::function<bool(const string_util::UnicodeText &)> is_valid)\n    ->
      util::Status"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: std::unordered_map::find
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:29,1
    - Dst: std::unordered_map::end
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:30,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:31,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:31,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:33,1
    - Dst: first::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:46,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:51,1
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:53,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:60,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:60,1
    - Dst: WordSeq::ids::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:61,1
    - Dst: get_or_add
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:61,1
    - Dst: auto::substr
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:61,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:64,1
    - Dst: std::move
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:64,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:67,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:67,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:68,1
    - Dst: NodeArena::from_seq
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:77,1
    - Dst: WordSeq::ids::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:78,1
    - Dst: insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:81,1
    - Dst: WordSeq::ids::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:84,1
    - Dst: WordSeq::ids::back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:84,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:93,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:93,1
    - Dst: MaxHeap::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:94,1
    - Dst: MaxHeap::pop
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:97,1
    - Dst: HeapDirty::find
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:98,1
    - Dst: HeapDirty::end
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:98,1
    - Dst: HeapDirty::find
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:99,1
    - Dst: HeapDirty::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:101,1
    - Dst: MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:103,1
    - Dst: MaxHeap::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:104,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:105,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:105,1
    - Dst: util::OkStatus
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:107,1
    - Dst: std::tie
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:109,1
    - Dst: MaxHeap::pop
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:109,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:118,1
    - Dst: is_valid
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:119,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:122,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:125,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:125,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:126,1
    - Dst: std::vector<std::pair<std::string, float>>*::emplace_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:128,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:129,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:129,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:131,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:132,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:133,1
    - Dst: std::move
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:143,1
    - Dst: BigramIndex::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:144,1
    - Dst: sentencepiece::nlcodec::is_unlinked
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:150,1
    - Dst: auto*::unlink
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:168,1
    - Dst: erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:173,1
    - Dst: empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:174,1
    - Dst: BigramIndex::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:174,1
    - Dst: insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:176,1
    - Dst: erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:180,1
    - Dst: empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:181,1
    - Dst: BigramIndex::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:181,1
    - Dst: insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:183,1
    - Dst: MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:189,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:195,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:195,1
    - Dst: util::OkStatus
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:197,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 100
    argCount: 4
    argNames:
    - sentences
    - vocab_size
    - final_pieces
    - is_valid
    argTypes:
    - TrainerInterface::Sentences
    - int
    - std::vector<std::pair<std::string, float>>*
    - std::function<bool(const string_util::UnicodeText &)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 198
    functionName: sentencepiece::nlcodec::RunFastBPEMerges
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc
    functionUses: 2
    functionsReached:
    - WordSeq::ids::empty
    - HeapDirty::find
    - auto::size
    - erase
    - get_or_add
    - std::vector::size
    - std::move
    - empty
    - HeapDirty::erase
    - std::tie
    - std::unordered_map::end
    - first::empty
    - WordSeq::ids::back
    - MaxHeap::empty
    - std::vector::push_back
    - LOG
    - std::unordered_map::find
    - NodeArena::from_seq
    - auto::substr
    - std::vector<std::pair<std::string, float>>*::size
    - MaxHeap::push
    - std::vector<std::pair<std::string, float>>*::emplace_back
    - auto*::unlink
    - insert
    - static_cast<unsigned char>
    - is_valid
    - absl::flat_hash_set::insert
    - sentencepiece::string_util::UTF8ToUnicodeText
    - static_cast<int>
    - util::OkStatus
    - WordSeq::ids::push_back
    - HeapDirty::end
    - static_cast<float>
    - static_cast<int32_t>
    - MaxHeap::pop
    - BigramIndex::erase
    - sentencepiece::nlcodec::is_unlinked
    - WordSeq::ids::size
    linkageType: ''
    returnType: auto
    signature: "auto RunFastBPEMerges(\n    const TrainerInterface::Sentences &sentences,
      int vocab_size,\n    std::vector<std::pair<std::string, float>> *final_pieces,\n
      \   std::function<bool(const string_util::UnicodeText &)> is_valid)\n    ->
      util::Status"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: std::unordered_map::find
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:29,1
    - Dst: std::unordered_map::end
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:30,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:31,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:31,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:33,1
    - Dst: first::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:46,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:51,1
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:53,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:60,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:60,1
    - Dst: WordSeq::ids::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:61,1
    - Dst: get_or_add
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:61,1
    - Dst: auto::substr
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:61,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:64,1
    - Dst: std::move
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:64,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:67,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:67,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:68,1
    - Dst: NodeArena::from_seq
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:77,1
    - Dst: WordSeq::ids::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:78,1
    - Dst: insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:81,1
    - Dst: WordSeq::ids::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:84,1
    - Dst: WordSeq::ids::back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:84,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:93,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:93,1
    - Dst: MaxHeap::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:94,1
    - Dst: MaxHeap::pop
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:97,1
    - Dst: HeapDirty::find
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:98,1
    - Dst: HeapDirty::end
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:98,1
    - Dst: HeapDirty::find
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:99,1
    - Dst: HeapDirty::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:101,1
    - Dst: MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:103,1
    - Dst: MaxHeap::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:104,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:105,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:105,1
    - Dst: util::OkStatus
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:107,1
    - Dst: std::tie
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:109,1
    - Dst: MaxHeap::pop
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:109,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:118,1
    - Dst: is_valid
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:119,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:122,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:125,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:125,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:126,1
    - Dst: std::vector<std::pair<std::string, float>>*::emplace_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:128,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:129,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:129,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:131,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:132,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:133,1
    - Dst: std::move
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:143,1
    - Dst: BigramIndex::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:144,1
    - Dst: sentencepiece::nlcodec::is_unlinked
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:150,1
    - Dst: auto*::unlink
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:168,1
    - Dst: erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:173,1
    - Dst: empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:174,1
    - Dst: BigramIndex::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:174,1
    - Dst: insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:176,1
    - Dst: erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:180,1
    - Dst: empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:181,1
    - Dst: BigramIndex::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:181,1
    - Dst: insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:183,1
    - Dst: MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:189,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:195,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:195,1
    - Dst: util::OkStatus
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:197,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 100
    argCount: 4
    argNames:
    - sentences
    - vocab_size
    - final_pieces
    - is_valid
    argTypes:
    - TrainerInterface::Sentences
    - int
    - std::vector<std::pair<std::string, float>>*
    - std::function<bool(const string_util::UnicodeText &)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 198
    functionName: sentencepiece::nlcodec::RunFastBPEMerges
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc
    functionUses: 2
    functionsReached:
    - WordSeq::ids::empty
    - HeapDirty::find
    - auto::size
    - erase
    - get_or_add
    - std::vector::size
    - std::move
    - empty
    - HeapDirty::erase
    - std::tie
    - std::unordered_map::end
    - first::empty
    - WordSeq::ids::back
    - MaxHeap::empty
    - std::vector::push_back
    - LOG
    - std::unordered_map::find
    - NodeArena::from_seq
    - auto::substr
    - std::vector<std::pair<std::string, float>>*::size
    - MaxHeap::push
    - std::vector<std::pair<std::string, float>>*::emplace_back
    - auto*::unlink
    - insert
    - static_cast<unsigned char>
    - is_valid
    - absl::flat_hash_set::insert
    - sentencepiece::string_util::UTF8ToUnicodeText
    - static_cast<int>
    - util::OkStatus
    - WordSeq::ids::push_back
    - HeapDirty::end
    - static_cast<float>
    - static_cast<int32_t>
    - MaxHeap::pop
    - BigramIndex::erase
    - sentencepiece::nlcodec::is_unlinked
    - WordSeq::ids::size
    linkageType: ''
    returnType: auto
    signature: "auto RunFastBPEMerges(\n    const TrainerInterface::Sentences &sentences,
      int vocab_size,\n    std::vector<std::pair<std::string, float>> *final_pieces,\n
      \   std::function<bool(const string_util::UnicodeText &)> is_valid)\n    ->
      util::Status"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: std::unordered_map::find
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:29,1
    - Dst: std::unordered_map::end
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:30,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:31,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:31,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:33,1
    - Dst: first::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:46,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:51,1
    - Dst: static_cast<unsigned char>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:53,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:60,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:60,1
    - Dst: WordSeq::ids::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:61,1
    - Dst: get_or_add
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:61,1
    - Dst: auto::substr
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:61,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:64,1
    - Dst: std::move
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:64,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:67,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:67,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:68,1
    - Dst: NodeArena::from_seq
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:77,1
    - Dst: WordSeq::ids::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:78,1
    - Dst: insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:81,1
    - Dst: WordSeq::ids::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:84,1
    - Dst: WordSeq::ids::back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:84,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:93,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:93,1
    - Dst: MaxHeap::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:94,1
    - Dst: MaxHeap::pop
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:97,1
    - Dst: HeapDirty::find
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:98,1
    - Dst: HeapDirty::end
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:98,1
    - Dst: HeapDirty::find
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:99,1
    - Dst: HeapDirty::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:101,1
    - Dst: MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:103,1
    - Dst: MaxHeap::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:104,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:105,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:105,1
    - Dst: util::OkStatus
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:107,1
    - Dst: std::tie
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:109,1
    - Dst: MaxHeap::pop
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:109,1
    - Dst: sentencepiece::string_util::UTF8ToUnicodeText
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:118,1
    - Dst: is_valid
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:119,1
    - Dst: absl::flat_hash_set::insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:122,1
    - Dst: static_cast<int32_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:125,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:125,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:126,1
    - Dst: std::vector<std::pair<std::string, float>>*::emplace_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:128,1
    - Dst: static_cast<float>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:129,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:129,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:131,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:132,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:133,1
    - Dst: std::move
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:143,1
    - Dst: BigramIndex::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:144,1
    - Dst: sentencepiece::nlcodec::is_unlinked
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:150,1
    - Dst: auto*::unlink
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:168,1
    - Dst: erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:173,1
    - Dst: empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:174,1
    - Dst: BigramIndex::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:174,1
    - Dst: insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:176,1
    - Dst: erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:180,1
    - Dst: empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:181,1
    - Dst: BigramIndex::erase
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:181,1
    - Dst: insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:183,1
    - Dst: MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:189,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:195,1
    - Dst: std::vector<std::pair<std::string, float>>*::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:195,1
    - Dst: util::OkStatus
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc:197,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 100
    argCount: 4
    argNames:
    - sentences
    - vocab_size
    - final_pieces
    - is_valid
    argTypes:
    - TrainerInterface::Sentences
    - int
    - std::vector<std::pair<std::string, float>>*
    - std::function<bool(const string_util::UnicodeText &)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 198
    functionName: sentencepiece::nlcodec::RunFastBPEMerges
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc
    functionUses: 2
    functionsReached:
    - WordSeq::ids::empty
    - HeapDirty::find
    - auto::size
    - erase
    - get_or_add
    - std::vector::size
    - std::move
    - empty
    - HeapDirty::erase
    - std::tie
    - std::unordered_map::end
    - first::empty
    - WordSeq::ids::back
    - MaxHeap::empty
    - std::vector::push_back
    - LOG
    - std::unordered_map::find
    - NodeArena::from_seq
    - auto::substr
    - std::vector<std::pair<std::string, float>>*::size
    - MaxHeap::push
    - std::vector<std::pair<std::string, float>>*::emplace_back
    - auto*::unlink
    - insert
    - static_cast<unsigned char>
    - is_valid
    - absl::flat_hash_set::insert
    - sentencepiece::string_util::UTF8ToUnicodeText
    - static_cast<int>
    - util::OkStatus
    - WordSeq::ids::push_back
    - HeapDirty::end
    - static_cast<float>
    - static_cast<int32_t>
    - MaxHeap::pop
    - BigramIndex::erase
    - sentencepiece::nlcodec::is_unlinked
    - WordSeq::ids::size
    linkageType: ''
    returnType: auto
    signature: "auto RunFastBPEMerges(\n    const TrainerInterface::Sentences &sentences,
      int vocab_size,\n    std::vector<std::pair<std::string, float>> *final_pieces,\n
      \   std::function<bool(const string_util::UnicodeText &)> is_valid)\n    ->
      util::Status"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:30,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:32,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:33,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:34,1
    - Dst: std::to_string
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:46,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - input_file
    - vocab_size
    - use_nlcodec
    argTypes:
    - std::string
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: sentencepiece::nlcodec::TrainAndGetPieces
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - std::set::insert
    - SentencePieceProcessor::IsControl
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::TempDir
    - SentencePieceProcessor::IsUnknown
    - EXPECT_TRUE
    - SentencePieceProcessor::IdToPiece
    - std::to_string
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: std::set<std::string>
    signature: "std::set<std::string> TrainAndGetPieces(\n    const std::string &input_file,
      int vocab_size, bool use_nlcodec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:59,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:60,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:61,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:62,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:69,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, ProducesValidModel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:88,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - auto::size
    - ::testing::SrcDir
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabSizeMatchesDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:101,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:102,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:103,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:110,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 130
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, EncodesDecodesCorrectly)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:136,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:137,1
    - Dst: auto::count
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:141,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:147,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:149,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:151,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:152,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 154
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - static_cast<int>
    - auto::size
    - EXPECT_GT
    - auto::count
    - ::testing::SrcDir
    - LOG
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabOverlapsWithDefault)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:30,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:32,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:33,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:34,1
    - Dst: std::to_string
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:46,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - input_file
    - vocab_size
    - use_nlcodec
    argTypes:
    - std::string
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: sentencepiece::nlcodec::TrainAndGetPieces
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 2
    functionsReached:
    - sentencepiece::util::JoinPath
    - std::set::insert
    - SentencePieceProcessor::IsControl
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::TempDir
    - SentencePieceProcessor::IsUnknown
    - EXPECT_TRUE
    - SentencePieceProcessor::IdToPiece
    - std::to_string
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: std::set<std::string>
    signature: "std::set<std::string> TrainAndGetPieces(\n    const std::string &input_file,
      int vocab_size, bool use_nlcodec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:59,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:60,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:61,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:62,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:69,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, ProducesValidModel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:88,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - auto::size
    - ::testing::SrcDir
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabSizeMatchesDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:101,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:102,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:103,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:110,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 130
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, EncodesDecodesCorrectly)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:136,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:137,1
    - Dst: auto::count
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:141,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:147,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:149,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:151,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:152,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 154
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - static_cast<int>
    - auto::size
    - EXPECT_GT
    - auto::count
    - ::testing::SrcDir
    - LOG
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabOverlapsWithDefault)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:30,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:32,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:33,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:34,1
    - Dst: std::to_string
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:46,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - input_file
    - vocab_size
    - use_nlcodec
    argTypes:
    - std::string
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: sentencepiece::nlcodec::TrainAndGetPieces
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 4
    functionsReached:
    - sentencepiece::util::JoinPath
    - std::set::insert
    - SentencePieceProcessor::IsControl
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::TempDir
    - SentencePieceProcessor::IsUnknown
    - EXPECT_TRUE
    - SentencePieceProcessor::IdToPiece
    - std::to_string
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: std::set<std::string>
    signature: "std::set<std::string> TrainAndGetPieces(\n    const std::string &input_file,
      int vocab_size, bool use_nlcodec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:59,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:60,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:61,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:62,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:69,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, ProducesValidModel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:88,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - auto::size
    - ::testing::SrcDir
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabSizeMatchesDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:101,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:102,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:103,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:110,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 130
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, EncodesDecodesCorrectly)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:136,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:137,1
    - Dst: auto::count
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:141,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:147,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:149,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:151,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:152,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 154
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - static_cast<int>
    - auto::size
    - EXPECT_GT
    - auto::count
    - ::testing::SrcDir
    - LOG
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabOverlapsWithDefault)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:30,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:32,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:33,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:34,1
    - Dst: std::to_string
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:46,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - input_file
    - vocab_size
    - use_nlcodec
    argTypes:
    - std::string
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: sentencepiece::nlcodec::TrainAndGetPieces
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 6
    functionsReached:
    - sentencepiece::util::JoinPath
    - std::set::insert
    - SentencePieceProcessor::IsControl
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::TempDir
    - SentencePieceProcessor::IsUnknown
    - EXPECT_TRUE
    - SentencePieceProcessor::IdToPiece
    - std::to_string
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: std::set<std::string>
    signature: "std::set<std::string> TrainAndGetPieces(\n    const std::string &input_file,
      int vocab_size, bool use_nlcodec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:59,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:60,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:61,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:62,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:69,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, ProducesValidModel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:88,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - auto::size
    - ::testing::SrcDir
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabSizeMatchesDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:101,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:102,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:103,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:110,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 130
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, EncodesDecodesCorrectly)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:136,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:137,1
    - Dst: auto::count
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:141,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:147,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:149,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:151,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:152,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 154
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - static_cast<int>
    - auto::size
    - EXPECT_GT
    - auto::count
    - ::testing::SrcDir
    - LOG
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabOverlapsWithDefault)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:30,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:32,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:33,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:34,1
    - Dst: std::to_string
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:46,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - input_file
    - vocab_size
    - use_nlcodec
    argTypes:
    - std::string
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: sentencepiece::nlcodec::TrainAndGetPieces
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 8
    functionsReached:
    - sentencepiece::util::JoinPath
    - std::set::insert
    - SentencePieceProcessor::IsControl
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::TempDir
    - SentencePieceProcessor::IsUnknown
    - EXPECT_TRUE
    - SentencePieceProcessor::IdToPiece
    - std::to_string
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: std::set<std::string>
    signature: "std::set<std::string> TrainAndGetPieces(\n    const std::string &input_file,
      int vocab_size, bool use_nlcodec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:59,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:60,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:61,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:62,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:69,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, ProducesValidModel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:88,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - auto::size
    - ::testing::SrcDir
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabSizeMatchesDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:101,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:102,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:103,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:110,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 130
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, EncodesDecodesCorrectly)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:136,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:137,1
    - Dst: auto::count
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:141,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:147,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:149,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:151,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:152,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 154
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - static_cast<int>
    - auto::size
    - EXPECT_GT
    - auto::count
    - ::testing::SrcDir
    - LOG
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabOverlapsWithDefault)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:30,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:32,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:33,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:34,1
    - Dst: std::to_string
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:46,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - input_file
    - vocab_size
    - use_nlcodec
    argTypes:
    - std::string
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: sentencepiece::nlcodec::TrainAndGetPieces
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 10
    functionsReached:
    - sentencepiece::util::JoinPath
    - std::set::insert
    - SentencePieceProcessor::IsControl
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::TempDir
    - SentencePieceProcessor::IsUnknown
    - EXPECT_TRUE
    - SentencePieceProcessor::IdToPiece
    - std::to_string
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: std::set<std::string>
    signature: "std::set<std::string> TrainAndGetPieces(\n    const std::string &input_file,
      int vocab_size, bool use_nlcodec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:59,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:60,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:61,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:62,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:69,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, ProducesValidModel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:88,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - auto::size
    - ::testing::SrcDir
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabSizeMatchesDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:101,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:102,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:103,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:110,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 130
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, EncodesDecodesCorrectly)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:136,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:137,1
    - Dst: auto::count
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:141,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:147,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:149,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:151,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:152,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 154
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - static_cast<int>
    - auto::size
    - EXPECT_GT
    - auto::count
    - ::testing::SrcDir
    - LOG
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabOverlapsWithDefault)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:30,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:32,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:33,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:34,1
    - Dst: std::to_string
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:46,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - input_file
    - vocab_size
    - use_nlcodec
    argTypes:
    - std::string
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: sentencepiece::nlcodec::TrainAndGetPieces
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 12
    functionsReached:
    - sentencepiece::util::JoinPath
    - std::set::insert
    - SentencePieceProcessor::IsControl
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::TempDir
    - SentencePieceProcessor::IsUnknown
    - EXPECT_TRUE
    - SentencePieceProcessor::IdToPiece
    - std::to_string
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: std::set<std::string>
    signature: "std::set<std::string> TrainAndGetPieces(\n    const std::string &input_file,
      int vocab_size, bool use_nlcodec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:59,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:60,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:61,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:62,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:69,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, ProducesValidModel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:88,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - auto::size
    - ::testing::SrcDir
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabSizeMatchesDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:101,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:102,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:103,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:110,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 130
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, EncodesDecodesCorrectly)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:136,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:137,1
    - Dst: auto::count
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:141,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:147,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:149,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:151,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:152,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 154
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - static_cast<int>
    - auto::size
    - EXPECT_GT
    - auto::count
    - ::testing::SrcDir
    - LOG
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabOverlapsWithDefault)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:27,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:30,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:32,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:33,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:34,1
    - Dst: std::to_string
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:36,1
    - Dst: EXPECT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:43,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:46,1
    - Dst: SentencePieceProcessor::IsUnknown
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: SentencePieceProcessor::IsControl
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:47,1
    - Dst: std::set::insert
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    - Dst: SentencePieceProcessor::IdToPiece
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - input_file
    - vocab_size
    - use_nlcodec
    argTypes:
    - std::string
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 51
    functionName: sentencepiece::nlcodec::TrainAndGetPieces
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 14
    functionsReached:
    - sentencepiece::util::JoinPath
    - std::set::insert
    - SentencePieceProcessor::IsControl
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::TempDir
    - SentencePieceProcessor::IsUnknown
    - EXPECT_TRUE
    - SentencePieceProcessor::IdToPiece
    - std::to_string
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: std::set<std::string>
    signature: "std::set<std::string> TrainAndGetPieces(\n    const std::string &input_file,
      int vocab_size, bool use_nlcodec)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:55,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:57,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:59,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:60,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:61,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:62,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:69,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:72,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: SentencePieceProcessor::GetPieceSize
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:73,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:76,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:77,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:80,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 82
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - EXPECT_EQ
    - SentencePieceProcessor::GetPieceSize
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, ProducesValidModel)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:86,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:88,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:89,1
    - Dst: EXPECT_EQ
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 92
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - auto::size
    - ::testing::SrcDir
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabSizeMatchesDefault)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:96,1
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: ::testing::TempDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:98,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:100,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:101,1
    - Dst: sentencepiece::SentencePieceTrainer::Train
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:102,1
    - Dst: absl::StrCat
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:103,1
    - Dst: absl::SetFlag
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:110,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: SentencePieceProcessor::Load
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:113,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: SentencePieceProcessor::Encode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:123,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: std::vector::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:124,1
    - Dst: ASSERT_TRUE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: SentencePieceProcessor::Decode
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:127,1
    - Dst: EXPECT_FALSE
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    - Dst: std::string::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 130
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - SentencePieceProcessor::Encode
    - SentencePieceProcessor::Decode
    - ASSERT_TRUE
    - sentencepiece::SentencePieceTrainer::Train
    - absl::StrCat
    - ::testing::SrcDir
    - ::testing::TempDir
    - std::vector::empty
    - std::string::empty
    - EXPECT_FALSE
    - SentencePieceProcessor::Load
    - absl::SetFlag
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, EncodesDecodesCorrectly)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::util::JoinPath
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: ::testing::SrcDir
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:134,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:136,1
    - Dst: sentencepiece::nlcodec::TrainAndGetPieces
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:137,1
    - Dst: auto::count
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:141,1
    - Dst: static_cast<double>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:145,1
    - Dst: EXPECT_GT
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:147,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:149,1
    - Dst: LOG
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:151,1
    - Dst: auto::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:152,1
    - Dst: static_cast<int>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 132
    functionDepth: 3
    functionLinenumber: 132
    functionLinenumberEnd: 154
    functionName: sentencepiece::nlcodec::TEST
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
    functionUses: 0
    functionsReached:
    - sentencepiece::util::JoinPath
    - sentencepiece::nlcodec::TrainAndGetPieces
    - static_cast<int>
    - auto::size
    - EXPECT_GT
    - auto::count
    - ::testing::SrcDir
    - LOG
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void TEST(NlcodecBPETest, VocabOverlapsWithDefault)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: sentencepiece::nlcodec::unlink
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unlink()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: sentencepiece::nlcodec::is_unlinked
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_unlinked() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<LnNode>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: sentencepiece::nlcodec::NodeArena::NodeArena
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - std::vector<LnNode>
    linkageType: ''
    returnType: void
    signature: void NodeArena(size_t cap = 1 << 20)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:54,1
    - Dst: push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:55,1
    - Dst: std::vector<LnNode>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:55,1
    - Dst: size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - val
    - freq
    argTypes:
    - int32_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: sentencepiece::nlcodec::NodeArena::alloc
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - push_back
    - std::vector<LnNode>
    - size
    linkageType: ''
    returnType: LnNode
    signature: LnNode *alloc(int32_t val, int64_t freq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:69,1
    - Dst: std::vector<int32_t>::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:69,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:70,1
    - Dst: sentencepiece::nlcodec::NodeArena::alloc
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:70,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:71,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - seq
    - freq
    argTypes:
    - std::vector<int32_t>
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: sentencepiece::nlcodec::NodeArena::from_seq
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - sentencepiece::nlcodec::NodeArena::alloc
    - std::vector::push_back
    - std::vector::size
    - std::vector::reserve
    - std::vector<int32_t>::size
    linkageType: ''
    returnType: auto
    signature: "auto from_seq(const std::vector<int32_t> &seq, int64_t freq)\n      ->
      std::vector<LnNode *>"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:88,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - Bigram
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: operator()(const Bigram &b) const
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - static_cast<uint32_t>
    linkageType: ''
    returnType: size_t
    signature: size_t operator()(const Bigram &b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::nlcodec::MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - items
    argTypes:
    - std::unordered_map<Bigram, int64_t, BigramHash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: sentencepiece::nlcodec::MaxHeap::MaxHeap
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::push
    linkageType: ''
    returnType: void
    signature: "void MaxHeap(\n      const std::unordered_map<Bigram, int64_t, BigramHash>
      &items)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::nlcodec::MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bg
    - freq
    argTypes:
    - Bigram
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: sentencepiece::nlcodec::MaxHeap::push
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 2
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::push
    linkageType: ''
    returnType: void
    signature: void push(const Bigram &bg, int64_t freq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: top
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:105,1
    - Dst: sentencepiece::nlcodec::MaxHeap::pop
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: sentencepiece::nlcodec::MaxHeap::pop
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 1
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::pop
    - top
    linkageType: ''
    returnType: auto
    signature: auto pop() -> std::pair<Bigram, int64_t>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::nlcodec::MaxHeap::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: sentencepiece::nlcodec::MaxHeap::empty
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 1
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::empty
    linkageType: ''
    returnType: auto
    signature: auto empty() const -> bool
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: sentencepiece::nlcodec::unlink
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unlink()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: sentencepiece::nlcodec::is_unlinked
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_unlinked() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<LnNode>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: sentencepiece::nlcodec::NodeArena::NodeArena
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - std::vector<LnNode>
    linkageType: ''
    returnType: void
    signature: void NodeArena(size_t cap = 1 << 20)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:54,1
    - Dst: push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:55,1
    - Dst: std::vector<LnNode>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:55,1
    - Dst: size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - val
    - freq
    argTypes:
    - int32_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: sentencepiece::nlcodec::NodeArena::alloc
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 1
    functionsReached:
    - push_back
    - std::vector<LnNode>
    - size
    linkageType: ''
    returnType: LnNode
    signature: LnNode *alloc(int32_t val, int64_t freq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:69,1
    - Dst: std::vector<int32_t>::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:69,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:70,1
    - Dst: sentencepiece::nlcodec::NodeArena::alloc
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:70,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:71,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - seq
    - freq
    argTypes:
    - std::vector<int32_t>
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: sentencepiece::nlcodec::NodeArena::from_seq
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - sentencepiece::nlcodec::NodeArena::alloc
    - std::vector::push_back
    - std::vector::size
    - std::vector::reserve
    - std::vector<int32_t>::size
    linkageType: ''
    returnType: auto
    signature: "auto from_seq(const std::vector<int32_t> &seq, int64_t freq)\n      ->
      std::vector<LnNode *>"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:88,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - Bigram
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: operator()(const Bigram &b) const
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - static_cast<uint32_t>
    linkageType: ''
    returnType: size_t
    signature: size_t operator()(const Bigram &b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::nlcodec::MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - items
    argTypes:
    - std::unordered_map<Bigram, int64_t, BigramHash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: sentencepiece::nlcodec::MaxHeap::MaxHeap
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::push
    linkageType: ''
    returnType: void
    signature: "void MaxHeap(\n      const std::unordered_map<Bigram, int64_t, BigramHash>
      &items)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::nlcodec::MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bg
    - freq
    argTypes:
    - Bigram
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: sentencepiece::nlcodec::MaxHeap::push
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 4
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::push
    linkageType: ''
    returnType: void
    signature: void push(const Bigram &bg, int64_t freq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: top
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:105,1
    - Dst: sentencepiece::nlcodec::MaxHeap::pop
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: sentencepiece::nlcodec::MaxHeap::pop
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 2
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::pop
    - top
    linkageType: ''
    returnType: auto
    signature: auto pop() -> std::pair<Bigram, int64_t>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::nlcodec::MaxHeap::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: sentencepiece::nlcodec::MaxHeap::empty
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 2
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::empty
    linkageType: ''
    returnType: auto
    signature: auto empty() const -> bool
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: sentencepiece::nlcodec::unlink
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unlink()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: sentencepiece::nlcodec::is_unlinked
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_unlinked() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<LnNode>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: sentencepiece::nlcodec::NodeArena::NodeArena
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - std::vector<LnNode>
    linkageType: ''
    returnType: void
    signature: void NodeArena(size_t cap = 1 << 20)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:54,1
    - Dst: push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:55,1
    - Dst: std::vector<LnNode>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:55,1
    - Dst: size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - val
    - freq
    argTypes:
    - int32_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: sentencepiece::nlcodec::NodeArena::alloc
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 2
    functionsReached:
    - push_back
    - std::vector<LnNode>
    - size
    linkageType: ''
    returnType: LnNode
    signature: LnNode *alloc(int32_t val, int64_t freq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:69,1
    - Dst: std::vector<int32_t>::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:69,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:70,1
    - Dst: sentencepiece::nlcodec::NodeArena::alloc
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:70,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:71,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - seq
    - freq
    argTypes:
    - std::vector<int32_t>
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: sentencepiece::nlcodec::NodeArena::from_seq
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - sentencepiece::nlcodec::NodeArena::alloc
    - std::vector::push_back
    - std::vector::size
    - std::vector::reserve
    - std::vector<int32_t>::size
    linkageType: ''
    returnType: auto
    signature: "auto from_seq(const std::vector<int32_t> &seq, int64_t freq)\n      ->
      std::vector<LnNode *>"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:88,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - Bigram
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: operator()(const Bigram &b) const
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - static_cast<uint32_t>
    linkageType: ''
    returnType: size_t
    signature: size_t operator()(const Bigram &b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::nlcodec::MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - items
    argTypes:
    - std::unordered_map<Bigram, int64_t, BigramHash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: sentencepiece::nlcodec::MaxHeap::MaxHeap
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::push
    linkageType: ''
    returnType: void
    signature: "void MaxHeap(\n      const std::unordered_map<Bigram, int64_t, BigramHash>
      &items)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::nlcodec::MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bg
    - freq
    argTypes:
    - Bigram
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: sentencepiece::nlcodec::MaxHeap::push
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 6
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::push
    linkageType: ''
    returnType: void
    signature: void push(const Bigram &bg, int64_t freq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: top
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:105,1
    - Dst: sentencepiece::nlcodec::MaxHeap::pop
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: sentencepiece::nlcodec::MaxHeap::pop
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 3
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::pop
    - top
    linkageType: ''
    returnType: auto
    signature: auto pop() -> std::pair<Bigram, int64_t>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::nlcodec::MaxHeap::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: sentencepiece::nlcodec::MaxHeap::empty
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 3
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::empty
    linkageType: ''
    returnType: auto
    signature: auto empty() const -> bool
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: sentencepiece::nlcodec::unlink
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unlink()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: sentencepiece::nlcodec::is_unlinked
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_unlinked() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<LnNode>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: sentencepiece::nlcodec::NodeArena::NodeArena
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - std::vector<LnNode>
    linkageType: ''
    returnType: void
    signature: void NodeArena(size_t cap = 1 << 20)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:54,1
    - Dst: push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:55,1
    - Dst: std::vector<LnNode>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:55,1
    - Dst: size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:55,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - val
    - freq
    argTypes:
    - int32_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: sentencepiece::nlcodec::NodeArena::alloc
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 3
    functionsReached:
    - push_back
    - std::vector<LnNode>
    - size
    linkageType: ''
    returnType: LnNode
    signature: LnNode *alloc(int32_t val, int64_t freq)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:69,1
    - Dst: std::vector<int32_t>::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:69,1
    - Dst: std::vector::push_back
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:70,1
    - Dst: sentencepiece::nlcodec::NodeArena::alloc
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:70,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:71,1
    - Dst: std::vector::size
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - seq
    - freq
    argTypes:
    - std::vector<int32_t>
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 76
    functionName: sentencepiece::nlcodec::NodeArena::from_seq
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - sentencepiece::nlcodec::NodeArena::alloc
    - std::vector::push_back
    - std::vector::size
    - std::vector::reserve
    - std::vector<int32_t>::size
    linkageType: ''
    returnType: auto
    signature: "auto from_seq(const std::vector<int32_t> &seq, int64_t freq)\n      ->
      std::vector<LnNode *>"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:88,1
    - Dst: static_cast<uint32_t>
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - Bigram
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: operator()(const Bigram &b) const
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - static_cast<uint32_t>
    linkageType: ''
    returnType: size_t
    signature: size_t operator()(const Bigram &b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::nlcodec::MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - items
    argTypes:
    - std::unordered_map<Bigram, int64_t, BigramHash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: sentencepiece::nlcodec::MaxHeap::MaxHeap
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 0
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::push
    linkageType: ''
    returnType: void
    signature: "void MaxHeap(\n      const std::unordered_map<Bigram, int64_t, BigramHash>
      &items)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::nlcodec::MaxHeap::push
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bg
    - freq
    argTypes:
    - Bigram
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: sentencepiece::nlcodec::MaxHeap::push
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 8
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::push
    linkageType: ''
    returnType: void
    signature: void push(const Bigram &bg, int64_t freq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: top
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:105,1
    - Dst: sentencepiece::nlcodec::MaxHeap::pop
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: sentencepiece::nlcodec::MaxHeap::pop
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 4
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::pop
    - top
    linkageType: ''
    returnType: auto
    signature: auto pop() -> std::pair<Bigram, int64_t>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sentencepiece::nlcodec::MaxHeap::empty
      Src: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 109
    functionName: sentencepiece::nlcodec::MaxHeap::empty
    functionSourceFile: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    functionUses: 4
    functionsReached:
    - sentencepiece::nlcodec::MaxHeap::empty
    linkageType: ''
    returnType: auto
    signature: auto empty() const -> bool
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 17
    functionName: DARTS_INT_TO_STR
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DARTS_INT_TO_STR(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - line
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: DARTS_LINE_TO_STR
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DARTS_LINE_TO_STR(line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: DARTS_THROW
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DARTS_THROW(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Darts::Details::DoubleArrayUnit::DoubleArrayUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayUnit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Darts::Details::DoubleArrayUnit::has_leaf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_leaf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Darts::Details::DoubleArrayUnit::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    linkageType: ''
    returnType: value_type
    signature: value_type value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Darts::Details::DoubleArrayUnit::label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Darts::Details::DoubleArrayUnit::offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type offset() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Darts::Details::Exception::Exception
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Exception(const char *msg = NULL) throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - Exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Darts::Details::Exception::Exception
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Exception(const Exception &rhs) throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~Exception() throw()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Exception() throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: Darts::Details::Exception::what
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *what() const throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Darts::Details::DoubleArrayUnit::DoubleArrayUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayUnit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Darts::Details::DoubleArrayUnit::has_leaf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_leaf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Darts::Details::DoubleArrayUnit::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    linkageType: ''
    returnType: value_type
    signature: value_type value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Darts::Details::DoubleArrayUnit::label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Darts::Details::DoubleArrayUnit::offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type offset() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Darts::Details::Exception::Exception
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Exception(const char *msg = NULL) throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - Exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Darts::Details::Exception::Exception
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Exception(const Exception &rhs) throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~Exception() throw()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Exception() throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: Darts::Details::Exception::what
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *what() const throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: Darts::DoubleArrayImpl::DoubleArrayImpl
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: ~DoubleArrayImpl()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~DoubleArrayImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - value
    argTypes:
    - value_type*
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: Darts::DoubleArrayImpl::set_result
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_result(value_type *result, value_type value, std::size_t)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - value
    - length
    argTypes:
    - result_pair_type*
    - value_type
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: Darts::DoubleArrayImpl::set_result
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_result(result_pair_type *result,\n      value_type value,
      std::size_t length) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::DoubleArrayImpl::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:173,1
    - Dst: static_cast<const unit_type *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: Darts::DoubleArrayImpl::set_array
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<const unit_type *>
    - Darts::DoubleArrayImpl::clear
    linkageType: ''
    returnType: void
    signature: void set_array(const void *ptr, std::size_t size = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::DoubleArrayImpl::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:178,1
    - Dst: Darts::DoubleArrayImpl::unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:179,1
    - Dst: Darts::DoubleArrayImpl::unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:180,1
    - Dst: unit_type::unit_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:181,1
    - Dst: std::memcpy
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - num_bytes
    argTypes:
    - void*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: Darts::DoubleArrayImpl::copy_array
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - std::memcpy
    - unit_type::unit_type
    - Darts::DoubleArrayImpl::unit_size
    - Darts::DoubleArrayImpl::clear
    linkageType: ''
    returnType: void
    signature: void copy_array(const void* ptr, std::size_t num_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: Darts::DoubleArrayImpl::array
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *array() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: Darts::DoubleArrayImpl::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: Darts::DoubleArrayImpl::unit_size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t unit_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Darts::DoubleArrayImpl::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::DoubleArrayImpl::unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:214,1
    - Dst: Darts::DoubleArrayImpl::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: Darts::DoubleArrayImpl::total_size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::DoubleArrayImpl::size
    - Darts::DoubleArrayImpl::unit_size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t total_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::DoubleArrayImpl::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: Darts::DoubleArrayImpl::nonzero_size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::DoubleArrayImpl::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t nonzero_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::DoubleArrayImpl::exactMatchSearch
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - result
    argTypes:
    - key_type*
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: Darts::DoubleArrayImpl::exactMatchSearch
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::DoubleArrayImpl::exactMatchSearch
    linkageType: ''
    returnType: void
    signature: "void exactMatchSearch(const key_type *key, U &result,\n      std::size_t
      length = 0, std::size_t node_pos = 0) const"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ::fopen_s
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:342,1
    - Dst: std::fopen
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:346,1
    - Dst: std::fseek
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:353,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:354,1
    - Dst: std::ftell
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:357,1
    - Dst: unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:360,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:362,1
    - Dst: std::fseek
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:366,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:367,1
    - Dst: std::fread
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:372,1
    - Dst: unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:372,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:373,1
    - Dst: label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:377,1
    - Dst: has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:377,1
    - Dst: offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:378,1
    - Dst: offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:378,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:379,1
    - Dst: label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:383,1
    - Dst: offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:383,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:384,1
    - Dst: unit_type::unit_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:391,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:396,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:397,1
    - Dst: std::fread
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:401,1
    - Dst: unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:401,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:402,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:407,1
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:409,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 4
    argNames:
    - file_name
    - mode
    - offset
    - size
    argTypes:
    - char*
    - char*
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 415
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::open
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - std::ftell
    - unit_size
    - ::fopen_s
    - clear
    - std::fopen
    - std::fclose
    - label
    - has_leaf
    - std::fread
    - offset
    - unit_type::unit_type
    - std::fseek
    - DARTS_THROW
    linkageType: ''
    returnType: int
    signature: "int DoubleArrayImpl<A, B, T, C>::open(const char *file_name,\n    const
      char *mode, std::size_t offset, std::size_t size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:420,1
    - Dst: ::fopen_s
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:426,1
    - Dst: std::fopen
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:430,1
    - Dst: std::fwrite
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:436,1
    - Dst: unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:436,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:436,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:436,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:437,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - file_name
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 442
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::save
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - unit_size
    - ::fopen_s
    - size
    - std::fopen
    - std::fclose
    - std::fwrite
    linkageType: ''
    returnType: int
    signature: "int DoubleArrayImpl<A, B, T, C>::save(const char *file_name,\n    const
      char *mode, std::size_t) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:447,1
    - Dst: has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:447,1
    - Dst: offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:448,1
    - Dst: offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:448,1
    - Dst: label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:452,1
    - Dst: offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:453,1
    - Dst: value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:458,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - max_value_limit
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 465
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::validate
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - offset
    - has_leaf
    - value
    - label
    linkageType: ''
    returnType: bool
    signature: bool DoubleArrayImpl<A, B, T, C>::validate(value_type max_value_limit)
      const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: set_result
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:472,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:472,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:477,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:477,1
    - Dst: unit_type::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:479,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:479,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:485,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:485,1
    - Dst: unit_type::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:487,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:487,1
    - Dst: unit_type::has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:493,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:496,1
    - Dst: set_result
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:497,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:497,1
    - Dst: unit_type::value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - key
    - length
    - node_pos
    argTypes:
    - key_type*
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 499
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::exactMatchSearch
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<uchar_type>
    - unit_type::has_leaf
    - unit_type::offset
    - unit_type::label
    - static_cast<value_type>
    - unit_type::value
    - set_result
    linkageType: ''
    returnType: U
    signature: "U DoubleArrayImpl<A, B, T, C>::exactMatchSearch(const key_type *key,\n
      \   std::size_t length, std::size_t node_pos) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:509,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:512,1
    - Dst: unit_type::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:514,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:514,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:518,1
    - Dst: unit_type::has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:519,1
    - Dst: set_result
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:521,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:521,1
    - Dst: value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:522,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:529,1
    - Dst: unit_type::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:531,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:531,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:535,1
    - Dst: unit_type::has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:536,1
    - Dst: set_result
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:538,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:538,1
    - Dst: value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:539,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - key
    - results
    - max_num_results
    - length
    - node_pos
    argTypes:
    - key_type*
    - U*
    - std::size_t
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 547
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::commonPrefixSearch
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<uchar_type>
    - unit_type::has_leaf
    - unit_type::offset
    - value
    - unit_type::label
    - static_cast<value_type>
    - set_result
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t DoubleArrayImpl<A, B, T, C>::commonPrefixSearch(\n    const
      key_type *key, U *results, std::size_t max_num_results,\n    std::size_t length,
      std::size_t node_pos) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:553,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:558,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:558,1
    - Dst: unit_type::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:560,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:560,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:561,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:567,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:567,1
    - Dst: unit_type::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:569,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:569,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:570,1
    - Dst: unit_type::has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:576,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:577,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:579,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:580,1
    - Dst: unit_type::value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:580,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - key
    - node_pos
    - key_pos
    - length
    argTypes:
    - key_type*
    - std::size_t
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 581
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::traverse
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<uchar_type>
    - unit_type::has_leaf
    - unit_type::offset
    - unit_type::label
    - static_cast<value_type>
    - static_cast<id_type>
    - unit_type::value
    linkageType: ''
    returnType: typename DoubleArrayImpl<A, B, T, C>::value_type
    signature: "typename DoubleArrayImpl<A, B, T, C>::value_type DoubleArrayImpl<A,
      B, T, C>::traverse(const key_type *key,\n    std::size_t &node_pos, std::size_t
      &key_pos, std::size_t length) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 592
    functionName: Darts::Details::AutoArray::AutoArray
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutoArray(T *array = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 595
    functionName: ~AutoArray()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~AutoArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: '&operator[](std::size_t id) const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 602
    functionName: '&operator[](std::size_t id)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 606
    functionName: Darts::Details::AutoArray::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 613
    functionName: Darts::Details::AutoArray::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - array
    argTypes:
    - AutoArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 618
    functionName: Darts::Details::AutoArray::swap
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap(AutoArray *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoArray::AutoArray
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 621
    functionName: Darts::Details::AutoArray::reset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::AutoArray::AutoArray
    linkageType: ''
    returnType: void
    signature: void reset(T *array = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: Darts::Details::AutoPool::AutoPool
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutoPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 639
    functionName: ~AutoPool()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~AutoPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 643
    functionName: '&operator[](std::size_t id) const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const T *>
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 646
    functionName: '&operator[](std::size_t id)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T *>
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 650
    functionName: Darts::Details::AutoPool::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: Darts::Details::AutoPool::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoPool::resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:656,1
    - Dst: Darts::Details::AutoPool::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 660
    functionName: Darts::Details::AutoPool::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::AutoPool::clear
    - Darts::Details::AutoPool::resize
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoPool::append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 664
    functionName: Darts::Details::AutoPool::push_back
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::AutoPool::append
    linkageType: ''
    returnType: void
    signature: void push_back(const T &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 667
    functionName: Darts::Details::AutoPool::pop_back
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void pop_back()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:671,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: Darts::Details::AutoPool::append
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - T::T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void append()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:676,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: Darts::Details::AutoPool::append
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - T::T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void append(const T &value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:682,1
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:685,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: Darts::Details::AutoPool::resize
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - T::T
    - ~T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:693,1
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:696,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - size
    - value
    argTypes:
    - std::size_t
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 701
    functionName: Darts::Details::AutoPool::resize
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - T::T
    - ~T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t size, const T &value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 707
    functionName: Darts::Details::AutoPool::reserve
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void reserve(std::size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AutoArray::reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:735,1
    - Dst: char::char
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:735,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:737,1
    - Dst: reinterpret_cast<T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:741,1
    - Dst: reinterpret_cast<T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:742,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:744,1
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:745,1
    - Dst: swap
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:749,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 751
    functionName: Darts::Details::AutoPool<T>::resize_buf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - char::char
    - ~T
    - swap
    - T::T
    - AutoArray::reset
    - reinterpret_cast<T *>
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: void AutoPool<T>::resize_buf(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 760
    functionName: Darts::Details::AutoStack::AutoStack
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutoStack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 763
    functionName: ~AutoStack()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~AutoStack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 767
    functionName: '&top() const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: T
    signature: T &top() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 770
    functionName: '&top()'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: T
    signature: T &top()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoStack::empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 774
    functionName: Darts::Details::AutoStack::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::AutoStack::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoStack::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 777
    functionName: Darts::Details::AutoStack::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::AutoStack::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 781
    functionName: Darts::Details::AutoStack::push
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void push(const T &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 784
    functionName: Darts::Details::AutoStack::pop
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: void
    signature: void pop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoStack::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 788
    functionName: Darts::Details::AutoStack::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::AutoStack::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 804
    functionName: Darts::Details::BitVector::BitVector
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 807
    functionName: ~BitVector()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~BitVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 811
    functionName: operator[](std::size_t id) const
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator[](std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::pop_count
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 817
    functionName: Darts::Details::BitVector::rank
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::BitVector::pop_count
    linkageType: ''
    returnType: id_type
    signature: id_type rank(std::size_t id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - id
    - bit
    argTypes:
    - std::size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 825
    functionName: Darts::Details::BitVector::set
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set(std::size_t id, bool bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 829
    functionName: Darts::Details::BitVector::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::BitVector::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 832
    functionName: Darts::Details::BitVector::num_ones
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_ones() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 835
    functionName: Darts::Details::BitVector::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 842
    functionName: Darts::Details::BitVector::append
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::BitVector::append
    linkageType: ''
    returnType: void
    signature: void append()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:846,1
    - Dst: Darts::Details::BitVector::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 848
    functionName: Darts::Details::BitVector::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::BitVector::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - unit
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 869
    functionName: Darts::Details::BitVector::pop_count
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type pop_count(id_type unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:874,1
    - Dst: Darts::Details::BitVector::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:874,1
    - Dst: id_type::id_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:874,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:876,1
    - Dst: Darts::Details::BitVector::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:880,1
    - Dst: Darts::Details::BitVector::pop_count
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 884
    functionName: Darts::Details::BitVector::build
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::BitVector::pop_count
    - reset
    - id_type::id_type
    - Darts::Details::BitVector::size
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: void BitVector::build()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - num_keys
    - keys
    - lengths
    - values
    argTypes:
    - std::size_t
    - char_type**
    - std::size_t*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 895
    functionName: Darts::Details::Keyset::Keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Keyset(std::size_t num_keys, const char_type * const *keys,\n
      \     const std::size_t *lengths, const T *values)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 899
    functionName: Darts::Details::Keyset::num_keys
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 902
    functionName: Darts::Details::Keyset::keys
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char_type
    signature: char_type *keys(std::size_t id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::Keyset::has_lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - key_id
    - char_id
    argTypes:
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 907
    functionName: Darts::Details::Keyset::keys
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::Keyset::has_lengths
    linkageType: ''
    returnType: uchar_type
    signature: uchar_type keys(std::size_t key_id, std::size_t char_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 911
    functionName: Darts::Details::Keyset::has_lengths
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_lengths() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::Keyset::has_lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 921
    functionName: Darts::Details::Keyset::lengths
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::Keyset::has_lengths
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t lengths(std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 925
    functionName: Darts::Details::Keyset::has_values
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_values() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::Keyset::has_values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:927,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:928,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 931
    functionName: Darts::Details::Keyset::values
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    - Darts::Details::Keyset::has_values
    linkageType: ''
    returnType: value_type
    signature: value_type values(std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 951
    functionName: Darts::Details::DawgNode::DawgNode
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgNode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - child
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 955
    functionName: Darts::Details::DawgNode::set_child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_child(id_type child)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sibling
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 958
    functionName: Darts::Details::DawgNode::set_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_sibling(id_type sibling)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 961
    functionName: Darts::Details::DawgNode::set_value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_value(value_type value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - label
    argTypes:
    - uchar_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 964
    functionName: Darts::Details::DawgNode::set_label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_label(uchar_type label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_state
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 967
    functionName: Darts::Details::DawgNode::set_is_state
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_is_state(bool is_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - has_sibling
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 970
    functionName: Darts::Details::DawgNode::set_has_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_has_sibling(bool has_sibling)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 974
    functionName: Darts::Details::DawgNode::child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type child() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 977
    functionName: Darts::Details::DawgNode::sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type sibling() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 980
    functionName: Darts::Details::DawgNode::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    linkageType: ''
    returnType: value_type
    signature: value_type value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 983
    functionName: Darts::Details::DawgNode::label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uchar_type
    signature: uchar_type label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 986
    functionName: Darts::Details::DawgNode::is_state
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 989
    functionName: Darts::Details::DawgNode::has_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_sibling() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 996
    functionName: Darts::Details::DawgNode::unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type unit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1014
    functionName: Darts::Details::DawgUnit::DawgUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgUnit(id_type unit = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unit
    argTypes:
    - DawgUnit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1015
    functionName: Darts::Details::DawgUnit::DawgUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgUnit(const DawgUnit &unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unit
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1020
    functionName: '&operator=(id_type unit)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DawgUnit
    signature: DawgUnit &operator=(id_type unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1024
    functionName: Darts::Details::DawgUnit::unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type unit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1028
    functionName: Darts::Details::DawgUnit::child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type child() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1031
    functionName: Darts::Details::DawgUnit::has_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_sibling() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1034
    functionName: Darts::Details::DawgUnit::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    linkageType: ''
    returnType: value_type
    signature: value_type value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1037
    functionName: Darts::Details::DawgUnit::is_state
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1052
    functionName: Darts::Details::DawgBuilder::DawgBuilder
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1055
    functionName: ~DawgBuilder()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~DawgBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1059
    functionName: Darts::Details::DawgBuilder::root
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type root() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1063
    functionName: Darts::Details::DawgBuilder::child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::DawgBuilder::child
    linkageType: ''
    returnType: id_type
    signature: id_type child(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1066
    functionName: Darts::Details::DawgBuilder::sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - has_sibling
    linkageType: ''
    returnType: id_type
    signature: id_type sibling(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1069
    functionName: Darts::Details::DawgBuilder::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::DawgBuilder::value
    linkageType: ''
    returnType: int
    signature: int value(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1073
    functionName: Darts::Details::DawgBuilder::is_leaf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DawgBuilder::label
    linkageType: ''
    returnType: bool
    signature: bool is_leaf(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1076
    functionName: Darts::Details::DawgBuilder::label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uchar_type
    signature: uchar_type label(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1080
    functionName: Darts::Details::DawgBuilder::is_intersection
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_intersection(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rank
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1083
    functionName: Darts::Details::DawgBuilder::intersection_id
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - rank
    linkageType: ''
    returnType: id_type
    signature: id_type intersection_id(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_ones
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1087
    functionName: Darts::Details::DawgBuilder::num_intersections
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - num_ones
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_intersections() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1091
    functionName: Darts::Details::DawgBuilder::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::DawgBuilder::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1133
    functionName: Darts::Details::DawgBuilder::free_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - push
    linkageType: ''
    returnType: void
    signature: void free_node(id_type id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1143
    functionName: Darts::Details::DawgBuilder::hash
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type hash(id_type key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1147,1
    - Dst: Darts::Details::DawgBuilder::append_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1149,1
    - Dst: Darts::Details::DawgBuilder::append_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1150,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1154,1
    - Dst: push
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1146
    functionDepth: 1
    functionLinenumber: 1146
    functionLinenumberEnd: 1156
    functionName: Darts::Details::DawgBuilder::init
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DawgBuilder::append_node
    - resize
    - push
    - set_label
    - Darts::Details::DawgBuilder::append_unit
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::flush
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1159,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1161,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1162,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1164,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1165,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1166,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1167,1
    - Dst: build
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1158
    functionDepth: 1
    functionLinenumber: 1158
    functionLinenumberEnd: 1170
    functionName: Darts::Details::DawgBuilder::finish
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - Darts::Details::DawgBuilder::flush
    - Darts::Details::DawgBuilder::clear
    - build
    - unit
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::finish()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1175,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1177,1
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1184,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1189,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1191,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1194,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1196,1
    - Dst: set_has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1198,1
    - Dst: Darts::Details::DawgBuilder::flush
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1199,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1210,1
    - Dst: Darts::Details::DawgBuilder::append_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1212,1
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1214,1
    - Dst: set_is_state
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1215,1
    - Dst: set_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1217,1
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1217,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1218,1
    - Dst: set_child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1219,1
    - Dst: push
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1220,1
    - Dst: set_value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1224,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - key
    - length
    - value
    argTypes:
    - char*
    - std::size_t
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1172
    functionDepth: 2
    functionLinenumber: 1172
    functionLinenumberEnd: 1225
    functionName: Darts::Details::DawgBuilder::insert
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - set_value
    - Darts::Details::DawgBuilder::label
    - static_cast<uchar_type>
    - Darts::Details::DawgBuilder::append_node
    - push
    - Darts::Details::DawgBuilder::child
    - set_label
    - set_sibling
    - Darts::Details::DawgBuilder::flush
    - set_child
    - set_is_state
    - set_has_sibling
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: "void DawgBuilder::insert(const char *key, std::size_t length,\n    value_type
      value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1228,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1229,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1230,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1231,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1232,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1233,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1236
    functionName: Darts::Details::DawgBuilder::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::DawgBuilder::clear
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1239,1
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1240,1
    - Dst: pop
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1241,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1243,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1243,1
    - Dst: Darts::Details::DawgBuilder::expand_table
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1244,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1248,1
    - Dst: Darts::Details::DawgBuilder::find_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1253,1
    - Dst: set
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1255,1
    - Dst: Darts::Details::DawgBuilder::append_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1259,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1261,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1262,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1263,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1272,1
    - Dst: Darts::Details::DawgBuilder::free_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1273,1
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1276,1
    - Dst: set_child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1276,1
    - Dst: pop
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1238
    functionDepth: 2
    functionLinenumber: 1238
    functionLinenumberEnd: 1279
    functionName: Darts::Details::DawgBuilder::flush
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - set
    - Darts::Details::DawgBuilder::expand_table
    - Darts::Details::DawgBuilder::find_node
    - Darts::Details::DawgBuilder::append_unit
    - Darts::Details::DawgBuilder::free_node
    - Darts::Details::DawgBuilder::size
    - set_child
    - Darts::Details::DawgBuilder::sibling
    - top
    - pop
    - unit
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::flush(id_type id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1282,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1283,1
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1284,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1286,1
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1287,1
    - Dst: is_state
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1288,1
    - Dst: Darts::Details::DawgBuilder::find_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1281
    functionDepth: 2
    functionLinenumber: 1281
    functionLinenumberEnd: 1294
    functionName: Darts::Details::DawgBuilder::expand_table
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - resize
    - is_state
    - Darts::Details::DawgBuilder::size
    - Darts::Details::DawgBuilder::find_unit
    - static_cast<id_type>
    - Darts::Details::DawgBuilder::clear
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::expand_table()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::hash_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1297,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1297,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - id
    - hash_id
    argTypes:
    - id_type
    - id_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1307
    functionName: Darts::Details::DawgBuilder::find_unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::DawgBuilder::hash_unit
    - Darts::Details::DawgBuilder::size
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::find_unit(id_type id, id_type *hash_id) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::hash_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1311,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1311,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1312,1
    - Dst: Darts::Details::DawgBuilder::are_equal
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - node_id
    - hash_id
    argTypes:
    - id_type
    - id_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1309
    functionDepth: 2
    functionLinenumber: 1309
    functionLinenumberEnd: 1323
    functionName: Darts::Details::DawgBuilder::find_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::DawgBuilder::size
    - Darts::Details::DawgBuilder::are_equal
    - Darts::Details::DawgBuilder::hash_node
    linkageType: ''
    returnType: id_type
    signature: "id_type DawgBuilder::find_node(id_type node_id,\n    id_type *hash_id)
      const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1326,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1327,1
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1328,1
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1333,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1337,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1338,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1338,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - node_id
    - unit_id
    argTypes:
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1344
    functionName: Darts::Details::DawgBuilder::are_equal
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - has_sibling
    - Darts::Details::DawgBuilder::sibling
    - unit
    linkageType: ''
    returnType: bool
    signature: bool DawgBuilder::are_equal(id_type node_id, id_type unit_id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1349,1
    - Dst: Darts::Details::DawgBuilder::hash
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1351,1
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1358
    functionName: Darts::Details::DawgBuilder::hash_unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - has_sibling
    - Darts::Details::DawgBuilder::hash
    - unit
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::hash_unit(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1362,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1363,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1364,1
    - Dst: Darts::Details::DawgBuilder::hash
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1360
    functionDepth: 1
    functionLinenumber: 1360
    functionLinenumberEnd: 1368
    functionName: Darts::Details::DawgBuilder::hash_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - Darts::Details::DawgBuilder::sibling
    - Darts::Details::DawgBuilder::hash
    - unit
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::hash_node(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1371,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1372,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1373,1
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1375,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1370
    functionDepth: 2
    functionLinenumber: 1370
    functionLinenumberEnd: 1376
    functionName: Darts::Details::DawgBuilder::append_unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::DawgBuilder::size
    - static_cast<id_type>
    - append
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::append_unit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1380,1
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1381,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1381,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1382,1
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1384,1
    - Dst: DawgNode
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1385,1
    - Dst: pop
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1389
    functionName: Darts::Details::DawgBuilder::append_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - append
    - DawgNode
    - empty
    - Darts::Details::DawgBuilder::size
    - static_cast<id_type>
    - top
    - pop
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::append_node()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1397
    functionName: Darts::Details::DoubleArrayBuilderUnit::DoubleArrayBuilderUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilderUnit()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - has_leaf
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1405
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_has_leaf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_has_leaf(bool has_leaf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1408
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_value(value_type value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - label
    argTypes:
    - uchar_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1411
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_label(uchar_type label)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - offset
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1422
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: void set_offset(id_type offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1436
    functionDepth: 0
    functionLinenumber: 1436
    functionLinenumberEnd: 1437
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::DoubleArrayBuilderExtraUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilderExtraUnit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prev
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1439
    functionDepth: 0
    functionLinenumber: 1439
    functionLinenumberEnd: 1441
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_prev
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_prev(id_type prev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - next
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1444
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_next
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_next(id_type next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_fixed
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1447
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_is_fixed
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_is_fixed(bool is_fixed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_used
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1450
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_is_used
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_is_used(bool is_used)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1452
    functionDepth: 0
    functionLinenumber: 1452
    functionLinenumberEnd: 1454
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::prev
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type prev() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1457
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::next
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type next() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1458
    functionDepth: 0
    functionLinenumber: 1458
    functionLinenumberEnd: 1460
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::is_fixed
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_fixed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1463
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::is_used
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_used() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - progress_func
    argTypes:
    - progress_func_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1482
    functionName: Darts::Details::DoubleArrayBuilder::DoubleArrayBuilder
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder(progress_func_type progress_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1485
    functionName: ~DoubleArrayBuilder()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~DoubleArrayBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1517
    functionName: Darts::Details::DoubleArrayBuilder::num_blocks
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1521
    functionName: '&extras(id_type id) const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: extra_type
    signature: extra_type &extras(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1524
    functionName: '&extras(id_type id)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: extra_type
    signature: extra_type &extras(id_type id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Keyset<T>::has_values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1555,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1557,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1558,1
    - Dst: Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1559,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - keyset
    argTypes:
    - Keyset<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1554
    functionDepth: 1
    functionLinenumber: 1554
    functionLinenumberEnd: 1563
    functionName: Darts::Details::DoubleArrayBuilder::build
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::build_from_keyset
    - Details::DawgBuilder::clear
    - Darts::Details::DoubleArrayBuilder::build_from_dawg
    - Keyset<T>::has_values
    - Darts::Details::DoubleArrayBuilder::build_dawg
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::build(const Keyset<T> &keyset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1568,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1571,1
    - Dst: DoubleArrayUnit::DoubleArrayUnit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1571,1
    - Dst: reinterpret_cast<unit_type *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1572,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - size_ptr
    - buf_ptr
    argTypes:
    - std::size_t*
    - DoubleArrayUnit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1565
    functionDepth: 0
    functionLinenumber: 1565
    functionLinenumberEnd: 1577
    functionName: Darts::Details::DoubleArrayBuilder::copy
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unit_type *>
    - size
    - DoubleArrayUnit::DoubleArrayUnit
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::copy(std::size_t *size_ptr,\n    DoubleArrayUnit
      **buf_ptr) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1580,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1581,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1582,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1579
    functionDepth: 1
    functionLinenumber: 1579
    functionLinenumberEnd: 1585
    functionName: Darts::Details::DoubleArrayBuilder::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::clear
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DawgBuilder*::init
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1590,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1591,1
    - Dst: DawgBuilder*::insert
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: Keyset<T>::lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: Keyset<T>::values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: progress_func_
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1594,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1594,1
    - Dst: DawgBuilder*::finish
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - keyset
    - dawg_builder
    argTypes:
    - Keyset<T>
    - DawgBuilder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1598
    functionName: Darts::Details::DoubleArrayBuilder::build_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - DawgBuilder*::init
    - Keyset<T>::lengths
    - Keyset<T>::values
    - Keyset<T>::keys
    - DawgBuilder*::insert
    - Keyset<T>::num_keys
    - DawgBuilder*::finish
    - progress_func_
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::build_dawg(const Keyset<T> &keyset,\n    DawgBuilder
      *dawg_builder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1602,1
    - Dst: reserve
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1605,1
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1607,1
    - Dst: DawgBuilder::num_intersections
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1607,1
    - Dst: id_type::id_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1607,1
    - Dst: DawgBuilder::num_intersections
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1608,1
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1612,1
    - Dst: extra_type::extra_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1612,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1614,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1615,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1616,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1617,1
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1619,1
    - Dst: DawgBuilder::root
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1619,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1620,1
    - Dst: DawgBuilder::root
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1620,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_all_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1623,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1625,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1626,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - dawg
    argTypes:
    - DawgBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1600
    functionDepth: 2
    functionLinenumber: 1600
    functionLinenumberEnd: 1628
    functionName: Darts::Details::DoubleArrayBuilder::build_from_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - DawgBuilder::child
    - DawgBuilder::root
    - Darts::Details::DoubleArrayBuilder::reserve_id
    - Darts::Details::DoubleArrayBuilder::build_from_dawg
    - Darts::Details::DoubleArrayBuilder::clear
    - set_label
    - set_offset
    - Darts::Details::DoubleArrayBuilder::fix_all_blocks
    - reset
    - extra_type::extra_type
    - reserve
    - DawgBuilder::size
    - extras
    - id_type::id_type
    - DawgBuilder::num_intersections
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::build_from_dawg(const DawgBuilder &dawg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1632,1
    - Dst: DawgBuilder::is_intersection
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1633,1
    - Dst: DawgBuilder::intersection_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1634,1
    - Dst: DawgBuilder::is_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1639,1
    - Dst: set_has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1640,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1642,1
    - Dst: Darts::Details::DoubleArrayBuilder::arrange_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1648,1
    - Dst: DawgBuilder::is_intersection
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1649,1
    - Dst: DawgBuilder::intersection_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1650,1
    - Dst: DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1654,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1657,1
    - Dst: DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1659,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - dawg
    - dawg_id
    - dic_id
    argTypes:
    - DawgBuilder
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1630
    functionDepth: 1
    functionLinenumber: 1630
    functionLinenumberEnd: 1661
    functionName: Darts::Details::DoubleArrayBuilder::build_from_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - DawgBuilder::child
    - DawgBuilder::intersection_id
    - Darts::Details::DoubleArrayBuilder::build_from_dawg
    - Darts::Details::DoubleArrayBuilder::arrange_from_dawg
    - DawgBuilder::sibling
    - DawgBuilder::is_intersection
    - set_offset
    - DawgBuilder::label
    - set_has_leaf
    - DawgBuilder::is_leaf
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::build_from_dawg(const DawgBuilder &dawg,\n
      \   id_type dawg_id, id_type dic_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1665,1
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1667,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1669,1
    - Dst: DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1669,1
    - Dst: DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1670,1
    - Dst: Darts::Details::DoubleArrayBuilder::find_valid_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1673,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1674,1
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1676,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1677,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1679,1
    - Dst: DawgBuilder::is_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1681,1
    - Dst: set_has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1682,1
    - Dst: set_value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1683,1
    - Dst: DawgBuilder::value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1683,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1685,1
    - Dst: DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1688,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - dawg
    - dawg_id
    - dic_id
    argTypes:
    - DawgBuilder
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1663
    functionDepth: 1
    functionLinenumber: 1663
    functionLinenumberEnd: 1693
    functionName: Darts::Details::DoubleArrayBuilder::arrange_from_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - DawgBuilder::child
    - resize
    - set_value
    - size
    - set_label
    - DawgBuilder::sibling
    - set_offset
    - append
    - Darts::Details::DoubleArrayBuilder::find_valid_offset
    - DawgBuilder::label
    - DawgBuilder::value
    - set_has_leaf
    - DawgBuilder::is_leaf
    - extras
    - Darts::Details::DoubleArrayBuilder::reserve_id
    linkageType: ''
    returnType: id_type
    signature: "id_type DoubleArrayBuilder::arrange_from_dawg(const DawgBuilder &dawg,\n
      \   id_type dawg_id, id_type dic_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1698,1
    - Dst: reserve
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1701,1
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1703,1
    - Dst: extra_type::extra_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1703,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1705,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1706,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1707,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1708,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1710,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1711,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1711,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_all_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1714,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1716,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - keyset
    argTypes:
    - Keyset<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1718
    functionName: Darts::Details::DoubleArrayBuilder::build_from_keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::build_from_keyset
    - Darts::Details::DoubleArrayBuilder::clear
    - set_label
    - set_offset
    - Darts::Details::DoubleArrayBuilder::fix_all_blocks
    - Keyset<T>::num_keys
    - reset
    - extra_type::extra_type
    - reserve
    - extras
    - Darts::Details::DoubleArrayBuilder::reserve_id
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::build_from_keyset(const Keyset<T> &keyset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DoubleArrayBuilder::arrange_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1723,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1726,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1736,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1738,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1740,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1743,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1746,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - keyset
    - begin
    - end
    - depth
    - dic_id
    argTypes:
    - Keyset<T>
    - std::size_t
    - std::size_t
    - std::size_t
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1721
    functionDepth: 1
    functionLinenumber: 1721
    functionLinenumberEnd: 1747
    functionName: Darts::Details::DoubleArrayBuilder::build_from_keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::build_from_keyset
    - Darts::Details::DoubleArrayBuilder::arrange_from_keyset
    - Keyset<T>::keys
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::build_from_keyset(const Keyset<T> &keyset,\n
      \   std::size_t begin, std::size_t end, std::size_t depth, id_type dic_id)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1752,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1756,1
    - Dst: Keyset<T>::has_lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1758,1
    - Dst: Keyset<T>::lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1758,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1759,1
    - Dst: Keyset<T>::values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1761,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1762,1
    - Dst: Keyset<T>::values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1766,1
    - Dst: progress_func_
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1769,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1769,1
    - Dst: empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1773,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1774,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1775,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1776,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1777,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1779,1
    - Dst: Darts::Details::DoubleArrayBuilder::find_valid_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1783,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1784,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1786,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1788,1
    - Dst: set_has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1790,1
    - Dst: set_value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1791,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1793,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1796,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 5
    argNames:
    - keyset
    - begin
    - end
    - depth
    - dic_id
    argTypes:
    - Keyset<T>
    - std::size_t
    - std::size_t
    - std::size_t
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1750
    functionDepth: 1
    functionLinenumber: 1750
    functionLinenumberEnd: 1799
    functionName: Darts::Details::DoubleArrayBuilder::arrange_from_keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - set_value
    - resize
    - Keyset<T>::has_lengths
    - Keyset<T>::lengths
    - size
    - Keyset<T>::values
    - set_label
    - Keyset<T>::keys
    - append
    - Darts::Details::DoubleArrayBuilder::find_valid_offset
    - set_offset
    - empty
    - Keyset<T>::num_keys
    - set_has_leaf
    - extras
    - progress_func_
    - Darts::Details::DoubleArrayBuilder::reserve_id
    - DARTS_THROW
    linkageType: ''
    returnType: id_type
    signature: "id_type DoubleArrayBuilder::arrange_from_keyset(const Keyset<T> &keyset,\n
      \   std::size_t begin, std::size_t end, std::size_t depth, id_type dic_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1802,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1803,1
    - Dst: Darts::Details::DoubleArrayBuilder::is_valid_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1809,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1812,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1801
    functionDepth: 1
    functionLinenumber: 1801
    functionLinenumberEnd: 1816
    functionName: Darts::Details::DoubleArrayBuilder::find_valid_offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::is_valid_offset
    - extras
    - size
    linkageType: ''
    returnType: id_type
    signature: id_type DoubleArrayBuilder::find_valid_offset(id_type id) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1820,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1829,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - id
    - offset
    argTypes:
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1818
    functionDepth: 0
    functionLinenumber: 1818
    functionLinenumberEnd: 1836
    functionName: Darts::Details::DoubleArrayBuilder::is_valid_offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - extras
    - size
    linkageType: ''
    returnType: bool
    signature: "bool DoubleArrayBuilder::is_valid_offset(id_type id,\n    id_type
      offset) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1839,1
    - Dst: Darts::Details::DoubleArrayBuilder::expand_units
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1840,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1844,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1846,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1849,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1849,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1849,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1850,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1850,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1850,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1838
    functionDepth: 1
    functionLinenumber: 1838
    functionLinenumberEnd: 1852
    functionName: Darts::Details::DoubleArrayBuilder::reserve_id
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - extras
    - Darts::Details::DoubleArrayBuilder::expand_units
    - size
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::reserve_id(id_type id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1855,1
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1856,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_block
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1862,1
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1865,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1869,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1870,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1875,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1876,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1879,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1880,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1882,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1882,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1883,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1885,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1885,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1886,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1854
    functionDepth: 1
    functionLinenumber: 1854
    functionLinenumberEnd: 1887
    functionName: Darts::Details::DoubleArrayBuilder::expand_units
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - resize
    - size
    - Darts::Details::DoubleArrayBuilder::num_blocks
    - Darts::Details::DoubleArrayBuilder::fix_block
    - extras
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::expand_units()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1891,1
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1892,1
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1894,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_block
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1889
    functionDepth: 1
    functionLinenumber: 1889
    functionLinenumberEnd: 1899
    functionName: Darts::Details::DoubleArrayBuilder::fix_all_blocks
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::num_blocks
    - Darts::Details::DoubleArrayBuilder::fix_block
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::fix_all_blocks()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1907,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1914,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1915,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1916,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - block_id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1901
    functionDepth: 2
    functionLinenumber: 1901
    functionLinenumberEnd: 1919
    functionName: Darts::Details::DoubleArrayBuilder::fix_block
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - extras
    - set_label
    - Darts::Details::DoubleArrayBuilder::reserve_id
    - static_cast<uchar_type>
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::fix_block(id_type block_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 592
    functionName: Darts::Details::AutoArray::AutoArray
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutoArray(T *array = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 595
    functionName: ~AutoArray()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~AutoArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: '&operator[](std::size_t id) const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 602
    functionName: '&operator[](std::size_t id)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 606
    functionName: Darts::Details::AutoArray::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 613
    functionName: Darts::Details::AutoArray::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - array
    argTypes:
    - AutoArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 618
    functionName: Darts::Details::AutoArray::swap
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap(AutoArray *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoArray::AutoArray
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 621
    functionName: Darts::Details::AutoArray::reset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::AutoArray::AutoArray
    linkageType: ''
    returnType: void
    signature: void reset(T *array = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: Darts::Details::AutoPool::AutoPool
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutoPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 639
    functionName: ~AutoPool()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~AutoPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 643
    functionName: '&operator[](std::size_t id) const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const T *>
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 646
    functionName: '&operator[](std::size_t id)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T *>
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 650
    functionName: Darts::Details::AutoPool::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: Darts::Details::AutoPool::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoPool::resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:656,1
    - Dst: Darts::Details::AutoPool::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 660
    functionName: Darts::Details::AutoPool::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::AutoPool::clear
    - Darts::Details::AutoPool::resize
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoPool::append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 664
    functionName: Darts::Details::AutoPool::push_back
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::AutoPool::append
    linkageType: ''
    returnType: void
    signature: void push_back(const T &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 667
    functionName: Darts::Details::AutoPool::pop_back
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void pop_back()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:671,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: Darts::Details::AutoPool::append
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - T::T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void append()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:676,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: Darts::Details::AutoPool::append
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - T::T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void append(const T &value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:682,1
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:685,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: Darts::Details::AutoPool::resize
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - T::T
    - ~T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:693,1
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:696,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - size
    - value
    argTypes:
    - std::size_t
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 701
    functionName: Darts::Details::AutoPool::resize
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - T::T
    - ~T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t size, const T &value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 707
    functionName: Darts::Details::AutoPool::reserve
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void reserve(std::size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AutoArray::reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:735,1
    - Dst: char::char
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:735,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:737,1
    - Dst: reinterpret_cast<T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:741,1
    - Dst: reinterpret_cast<T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:742,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:744,1
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:745,1
    - Dst: swap
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:749,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 751
    functionName: Darts::Details::AutoPool<T>::resize_buf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - char::char
    - ~T
    - swap
    - T::T
    - AutoArray::reset
    - reinterpret_cast<T *>
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: void AutoPool<T>::resize_buf(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 760
    functionName: Darts::Details::AutoStack::AutoStack
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutoStack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 763
    functionName: ~AutoStack()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~AutoStack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 767
    functionName: '&top() const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: T
    signature: T &top() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 770
    functionName: '&top()'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: T
    signature: T &top()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoStack::empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 774
    functionName: Darts::Details::AutoStack::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::AutoStack::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoStack::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 777
    functionName: Darts::Details::AutoStack::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::AutoStack::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 781
    functionName: Darts::Details::AutoStack::push
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void push(const T &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 784
    functionName: Darts::Details::AutoStack::pop
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: void
    signature: void pop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoStack::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 788
    functionName: Darts::Details::AutoStack::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::AutoStack::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 804
    functionName: Darts::Details::BitVector::BitVector
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 807
    functionName: ~BitVector()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~BitVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 811
    functionName: operator[](std::size_t id) const
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator[](std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::pop_count
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 817
    functionName: Darts::Details::BitVector::rank
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::BitVector::pop_count
    linkageType: ''
    returnType: id_type
    signature: id_type rank(std::size_t id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - id
    - bit
    argTypes:
    - std::size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 825
    functionName: Darts::Details::BitVector::set
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set(std::size_t id, bool bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 829
    functionName: Darts::Details::BitVector::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::BitVector::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 832
    functionName: Darts::Details::BitVector::num_ones
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_ones() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 835
    functionName: Darts::Details::BitVector::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 842
    functionName: Darts::Details::BitVector::append
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::BitVector::append
    linkageType: ''
    returnType: void
    signature: void append()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:846,1
    - Dst: Darts::Details::BitVector::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 848
    functionName: Darts::Details::BitVector::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::BitVector::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - unit
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 869
    functionName: Darts::Details::BitVector::pop_count
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type pop_count(id_type unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:874,1
    - Dst: Darts::Details::BitVector::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:874,1
    - Dst: id_type::id_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:874,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:876,1
    - Dst: Darts::Details::BitVector::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:880,1
    - Dst: Darts::Details::BitVector::pop_count
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 884
    functionName: Darts::Details::BitVector::build
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::BitVector::pop_count
    - reset
    - id_type::id_type
    - Darts::Details::BitVector::size
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: void BitVector::build()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - num_keys
    - keys
    - lengths
    - values
    argTypes:
    - std::size_t
    - char_type**
    - std::size_t*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 895
    functionName: Darts::Details::Keyset::Keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Keyset(std::size_t num_keys, const char_type * const *keys,\n
      \     const std::size_t *lengths, const T *values)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 899
    functionName: Darts::Details::Keyset::num_keys
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 902
    functionName: Darts::Details::Keyset::keys
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char_type
    signature: char_type *keys(std::size_t id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::Keyset::has_lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - key_id
    - char_id
    argTypes:
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 907
    functionName: Darts::Details::Keyset::keys
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::Keyset::has_lengths
    linkageType: ''
    returnType: uchar_type
    signature: uchar_type keys(std::size_t key_id, std::size_t char_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 911
    functionName: Darts::Details::Keyset::has_lengths
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_lengths() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::Keyset::has_lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 921
    functionName: Darts::Details::Keyset::lengths
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::Keyset::has_lengths
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t lengths(std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 925
    functionName: Darts::Details::Keyset::has_values
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_values() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::Keyset::has_values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:927,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:928,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 931
    functionName: Darts::Details::Keyset::values
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    - Darts::Details::Keyset::has_values
    linkageType: ''
    returnType: value_type
    signature: value_type values(std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 951
    functionName: Darts::Details::DawgNode::DawgNode
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgNode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - child
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 955
    functionName: Darts::Details::DawgNode::set_child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_child(id_type child)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sibling
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 958
    functionName: Darts::Details::DawgNode::set_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_sibling(id_type sibling)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 961
    functionName: Darts::Details::DawgNode::set_value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_value(value_type value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - label
    argTypes:
    - uchar_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 964
    functionName: Darts::Details::DawgNode::set_label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_label(uchar_type label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_state
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 967
    functionName: Darts::Details::DawgNode::set_is_state
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_is_state(bool is_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - has_sibling
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 970
    functionName: Darts::Details::DawgNode::set_has_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_has_sibling(bool has_sibling)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 974
    functionName: Darts::Details::DawgNode::child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type child() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 977
    functionName: Darts::Details::DawgNode::sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type sibling() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 980
    functionName: Darts::Details::DawgNode::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    linkageType: ''
    returnType: value_type
    signature: value_type value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 983
    functionName: Darts::Details::DawgNode::label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uchar_type
    signature: uchar_type label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 986
    functionName: Darts::Details::DawgNode::is_state
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 989
    functionName: Darts::Details::DawgNode::has_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_sibling() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 996
    functionName: Darts::Details::DawgNode::unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type unit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1014
    functionName: Darts::Details::DawgUnit::DawgUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgUnit(id_type unit = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unit
    argTypes:
    - DawgUnit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1015
    functionName: Darts::Details::DawgUnit::DawgUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgUnit(const DawgUnit &unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unit
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1020
    functionName: '&operator=(id_type unit)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DawgUnit
    signature: DawgUnit &operator=(id_type unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1024
    functionName: Darts::Details::DawgUnit::unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type unit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1028
    functionName: Darts::Details::DawgUnit::child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type child() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1031
    functionName: Darts::Details::DawgUnit::has_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_sibling() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1034
    functionName: Darts::Details::DawgUnit::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    linkageType: ''
    returnType: value_type
    signature: value_type value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1037
    functionName: Darts::Details::DawgUnit::is_state
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1052
    functionName: Darts::Details::DawgBuilder::DawgBuilder
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1055
    functionName: ~DawgBuilder()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~DawgBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1059
    functionName: Darts::Details::DawgBuilder::root
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type root() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1063
    functionName: Darts::Details::DawgBuilder::child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::DawgBuilder::child
    linkageType: ''
    returnType: id_type
    signature: id_type child(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1066
    functionName: Darts::Details::DawgBuilder::sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - has_sibling
    linkageType: ''
    returnType: id_type
    signature: id_type sibling(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1069
    functionName: Darts::Details::DawgBuilder::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::DawgBuilder::value
    linkageType: ''
    returnType: int
    signature: int value(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1073
    functionName: Darts::Details::DawgBuilder::is_leaf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DawgBuilder::label
    linkageType: ''
    returnType: bool
    signature: bool is_leaf(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1076
    functionName: Darts::Details::DawgBuilder::label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: uchar_type
    signature: uchar_type label(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1080
    functionName: Darts::Details::DawgBuilder::is_intersection
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_intersection(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rank
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1083
    functionName: Darts::Details::DawgBuilder::intersection_id
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - rank
    linkageType: ''
    returnType: id_type
    signature: id_type intersection_id(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_ones
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1087
    functionName: Darts::Details::DawgBuilder::num_intersections
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - num_ones
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_intersections() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1091
    functionName: Darts::Details::DawgBuilder::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 8
    functionsReached:
    - Darts::Details::DawgBuilder::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1133
    functionName: Darts::Details::DawgBuilder::free_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 1
    functionsReached:
    - push
    linkageType: ''
    returnType: void
    signature: void free_node(id_type id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1143
    functionName: Darts::Details::DawgBuilder::hash
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type hash(id_type key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1147,1
    - Dst: Darts::Details::DawgBuilder::append_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1149,1
    - Dst: Darts::Details::DawgBuilder::append_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1150,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1154,1
    - Dst: push
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1146
    functionDepth: 3
    functionLinenumber: 1146
    functionLinenumberEnd: 1156
    functionName: Darts::Details::DawgBuilder::init
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DawgBuilder::append_node
    - resize
    - push
    - set_label
    - Darts::Details::DawgBuilder::append_unit
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::flush
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1159,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1161,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1162,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1164,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1165,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1166,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1167,1
    - Dst: build
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1158
    functionDepth: 3
    functionLinenumber: 1158
    functionLinenumberEnd: 1170
    functionName: Darts::Details::DawgBuilder::finish
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - Darts::Details::DawgBuilder::flush
    - Darts::Details::DawgBuilder::clear
    - build
    - unit
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::finish()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1175,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1177,1
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1184,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1189,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1191,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1194,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1196,1
    - Dst: set_has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1198,1
    - Dst: Darts::Details::DawgBuilder::flush
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1199,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1210,1
    - Dst: Darts::Details::DawgBuilder::append_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1212,1
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1214,1
    - Dst: set_is_state
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1215,1
    - Dst: set_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1217,1
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1217,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1218,1
    - Dst: set_child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1219,1
    - Dst: push
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1220,1
    - Dst: set_value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1224,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - key
    - length
    - value
    argTypes:
    - char*
    - std::size_t
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1172
    functionDepth: 3
    functionLinenumber: 1172
    functionLinenumberEnd: 1225
    functionName: Darts::Details::DawgBuilder::insert
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - set_value
    - Darts::Details::DawgBuilder::label
    - static_cast<uchar_type>
    - Darts::Details::DawgBuilder::append_node
    - push
    - Darts::Details::DawgBuilder::child
    - set_label
    - set_sibling
    - Darts::Details::DawgBuilder::flush
    - set_child
    - set_is_state
    - set_has_sibling
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: "void DawgBuilder::insert(const char *key, std::size_t length,\n    value_type
      value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1228,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1229,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1230,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1231,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1232,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1233,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1236
    functionName: Darts::Details::DawgBuilder::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 5
    functionsReached:
    - Darts::Details::DawgBuilder::clear
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1239,1
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1240,1
    - Dst: pop
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1241,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1243,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1243,1
    - Dst: Darts::Details::DawgBuilder::expand_table
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1244,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1248,1
    - Dst: Darts::Details::DawgBuilder::find_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1253,1
    - Dst: set
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1255,1
    - Dst: Darts::Details::DawgBuilder::append_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1259,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1261,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1262,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1263,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1272,1
    - Dst: Darts::Details::DawgBuilder::free_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1273,1
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1276,1
    - Dst: set_child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1276,1
    - Dst: pop
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1238
    functionDepth: 3
    functionLinenumber: 1238
    functionLinenumberEnd: 1279
    functionName: Darts::Details::DawgBuilder::flush
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - set
    - Darts::Details::DawgBuilder::expand_table
    - Darts::Details::DawgBuilder::find_node
    - Darts::Details::DawgBuilder::append_unit
    - Darts::Details::DawgBuilder::free_node
    - Darts::Details::DawgBuilder::size
    - set_child
    - Darts::Details::DawgBuilder::sibling
    - top
    - pop
    - unit
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::flush(id_type id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1282,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1283,1
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1284,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1286,1
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1287,1
    - Dst: is_state
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1288,1
    - Dst: Darts::Details::DawgBuilder::find_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1281
    functionDepth: 3
    functionLinenumber: 1281
    functionLinenumberEnd: 1294
    functionName: Darts::Details::DawgBuilder::expand_table
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - resize
    - is_state
    - Darts::Details::DawgBuilder::size
    - Darts::Details::DawgBuilder::find_unit
    - static_cast<id_type>
    - Darts::Details::DawgBuilder::clear
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::expand_table()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::hash_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1297,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1297,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - id
    - hash_id
    argTypes:
    - id_type
    - id_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1307
    functionName: Darts::Details::DawgBuilder::find_unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::DawgBuilder::hash_unit
    - Darts::Details::DawgBuilder::size
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::find_unit(id_type id, id_type *hash_id) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::hash_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1311,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1311,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1312,1
    - Dst: Darts::Details::DawgBuilder::are_equal
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - node_id
    - hash_id
    argTypes:
    - id_type
    - id_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1309
    functionDepth: 2
    functionLinenumber: 1309
    functionLinenumberEnd: 1323
    functionName: Darts::Details::DawgBuilder::find_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::DawgBuilder::size
    - Darts::Details::DawgBuilder::are_equal
    - Darts::Details::DawgBuilder::hash_node
    linkageType: ''
    returnType: id_type
    signature: "id_type DawgBuilder::find_node(id_type node_id,\n    id_type *hash_id)
      const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1326,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1327,1
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1328,1
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1333,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1337,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1338,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1338,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - node_id
    - unit_id
    argTypes:
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1344
    functionName: Darts::Details::DawgBuilder::are_equal
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - has_sibling
    - Darts::Details::DawgBuilder::sibling
    - unit
    linkageType: ''
    returnType: bool
    signature: bool DawgBuilder::are_equal(id_type node_id, id_type unit_id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1349,1
    - Dst: Darts::Details::DawgBuilder::hash
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1351,1
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1358
    functionName: Darts::Details::DawgBuilder::hash_unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - has_sibling
    - Darts::Details::DawgBuilder::hash
    - unit
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::hash_unit(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1362,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1363,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1364,1
    - Dst: Darts::Details::DawgBuilder::hash
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1360
    functionDepth: 1
    functionLinenumber: 1360
    functionLinenumberEnd: 1368
    functionName: Darts::Details::DawgBuilder::hash_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - Darts::Details::DawgBuilder::sibling
    - Darts::Details::DawgBuilder::hash
    - unit
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::hash_node(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1371,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1372,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1373,1
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1375,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1370
    functionDepth: 2
    functionLinenumber: 1370
    functionLinenumberEnd: 1376
    functionName: Darts::Details::DawgBuilder::append_unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::DawgBuilder::size
    - static_cast<id_type>
    - append
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::append_unit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1380,1
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1381,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1381,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1382,1
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1384,1
    - Dst: DawgNode
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1385,1
    - Dst: pop
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1389
    functionName: Darts::Details::DawgBuilder::append_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - append
    - DawgNode
    - empty
    - Darts::Details::DawgBuilder::size
    - static_cast<id_type>
    - top
    - pop
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::append_node()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1397
    functionName: Darts::Details::DoubleArrayBuilderUnit::DoubleArrayBuilderUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilderUnit()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - has_leaf
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1405
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_has_leaf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_has_leaf(bool has_leaf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1408
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_value(value_type value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - label
    argTypes:
    - uchar_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1411
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_label(uchar_type label)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - offset
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1422
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: void set_offset(id_type offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1436
    functionDepth: 0
    functionLinenumber: 1436
    functionLinenumberEnd: 1437
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::DoubleArrayBuilderExtraUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilderExtraUnit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prev
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1439
    functionDepth: 0
    functionLinenumber: 1439
    functionLinenumberEnd: 1441
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_prev
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_prev(id_type prev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - next
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1444
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_next
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_next(id_type next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_fixed
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1447
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_is_fixed
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_is_fixed(bool is_fixed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_used
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1450
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_is_used
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_is_used(bool is_used)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1452
    functionDepth: 0
    functionLinenumber: 1452
    functionLinenumberEnd: 1454
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::prev
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type prev() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1457
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::next
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type next() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1458
    functionDepth: 0
    functionLinenumber: 1458
    functionLinenumberEnd: 1460
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::is_fixed
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_fixed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1463
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::is_used
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_used() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - progress_func
    argTypes:
    - progress_func_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1482
    functionName: Darts::Details::DoubleArrayBuilder::DoubleArrayBuilder
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder(progress_func_type progress_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1485
    functionName: ~DoubleArrayBuilder()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~DoubleArrayBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1517
    functionName: Darts::Details::DoubleArrayBuilder::num_blocks
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1521
    functionName: '&extras(id_type id) const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: extra_type
    signature: extra_type &extras(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1524
    functionName: '&extras(id_type id)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: extra_type
    signature: extra_type &extras(id_type id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Keyset<T>::has_values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1555,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1557,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1558,1
    - Dst: Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1559,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - keyset
    argTypes:
    - Keyset<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1554
    functionDepth: 3
    functionLinenumber: 1554
    functionLinenumberEnd: 1563
    functionName: Darts::Details::DoubleArrayBuilder::build
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::build_from_keyset
    - Details::DawgBuilder::clear
    - Darts::Details::DoubleArrayBuilder::build_from_dawg
    - Keyset<T>::has_values
    - Darts::Details::DoubleArrayBuilder::build_dawg
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::build(const Keyset<T> &keyset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1568,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1571,1
    - Dst: DoubleArrayUnit::DoubleArrayUnit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1571,1
    - Dst: reinterpret_cast<unit_type *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1572,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - size_ptr
    - buf_ptr
    argTypes:
    - std::size_t*
    - DoubleArrayUnit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1565
    functionDepth: 0
    functionLinenumber: 1565
    functionLinenumberEnd: 1577
    functionName: Darts::Details::DoubleArrayBuilder::copy
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unit_type *>
    - size
    - DoubleArrayUnit::DoubleArrayUnit
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::copy(std::size_t *size_ptr,\n    DoubleArrayUnit
      **buf_ptr) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1580,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1581,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1582,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1579
    functionDepth: 1
    functionLinenumber: 1579
    functionLinenumberEnd: 1585
    functionName: Darts::Details::DoubleArrayBuilder::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::clear
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DawgBuilder*::init
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1590,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1591,1
    - Dst: DawgBuilder*::insert
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: Keyset<T>::lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: Keyset<T>::values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: progress_func_
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1594,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1594,1
    - Dst: DawgBuilder*::finish
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - keyset
    - dawg_builder
    argTypes:
    - Keyset<T>
    - DawgBuilder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1598
    functionName: Darts::Details::DoubleArrayBuilder::build_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - DawgBuilder*::init
    - Keyset<T>::lengths
    - Keyset<T>::values
    - Keyset<T>::keys
    - DawgBuilder*::insert
    - Keyset<T>::num_keys
    - DawgBuilder*::finish
    - progress_func_
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::build_dawg(const Keyset<T> &keyset,\n    DawgBuilder
      *dawg_builder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1602,1
    - Dst: reserve
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1605,1
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1607,1
    - Dst: DawgBuilder::num_intersections
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1607,1
    - Dst: id_type::id_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1607,1
    - Dst: DawgBuilder::num_intersections
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1608,1
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1612,1
    - Dst: extra_type::extra_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1612,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1614,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1615,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1616,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1617,1
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1619,1
    - Dst: DawgBuilder::root
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1619,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1620,1
    - Dst: DawgBuilder::root
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1620,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_all_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1623,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1625,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1626,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - dawg
    argTypes:
    - DawgBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1600
    functionDepth: 2
    functionLinenumber: 1600
    functionLinenumberEnd: 1628
    functionName: Darts::Details::DoubleArrayBuilder::build_from_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 5
    functionsReached:
    - DawgBuilder::child
    - DawgBuilder::root
    - Darts::Details::DoubleArrayBuilder::reserve_id
    - Darts::Details::DoubleArrayBuilder::build_from_dawg
    - Darts::Details::DoubleArrayBuilder::clear
    - set_label
    - set_offset
    - Darts::Details::DoubleArrayBuilder::fix_all_blocks
    - reset
    - extra_type::extra_type
    - reserve
    - DawgBuilder::size
    - extras
    - id_type::id_type
    - DawgBuilder::num_intersections
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::build_from_dawg(const DawgBuilder &dawg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1632,1
    - Dst: DawgBuilder::is_intersection
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1633,1
    - Dst: DawgBuilder::intersection_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1634,1
    - Dst: DawgBuilder::is_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1639,1
    - Dst: set_has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1640,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1642,1
    - Dst: Darts::Details::DoubleArrayBuilder::arrange_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1648,1
    - Dst: DawgBuilder::is_intersection
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1649,1
    - Dst: DawgBuilder::intersection_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1650,1
    - Dst: DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1654,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1657,1
    - Dst: DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1659,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - dawg
    - dawg_id
    - dic_id
    argTypes:
    - DawgBuilder
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1630
    functionDepth: 2
    functionLinenumber: 1630
    functionLinenumberEnd: 1661
    functionName: Darts::Details::DoubleArrayBuilder::build_from_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 6
    functionsReached:
    - DawgBuilder::child
    - DawgBuilder::intersection_id
    - Darts::Details::DoubleArrayBuilder::build_from_dawg
    - Darts::Details::DoubleArrayBuilder::arrange_from_dawg
    - DawgBuilder::sibling
    - DawgBuilder::is_intersection
    - set_offset
    - DawgBuilder::label
    - set_has_leaf
    - DawgBuilder::is_leaf
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::build_from_dawg(const DawgBuilder &dawg,\n
      \   id_type dawg_id, id_type dic_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1665,1
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1667,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1669,1
    - Dst: DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1669,1
    - Dst: DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1670,1
    - Dst: Darts::Details::DoubleArrayBuilder::find_valid_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1673,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1674,1
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1676,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1677,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1679,1
    - Dst: DawgBuilder::is_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1681,1
    - Dst: set_has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1682,1
    - Dst: set_value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1683,1
    - Dst: DawgBuilder::value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1683,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1685,1
    - Dst: DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1688,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - dawg
    - dawg_id
    - dic_id
    argTypes:
    - DawgBuilder
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1663
    functionDepth: 2
    functionLinenumber: 1663
    functionLinenumberEnd: 1693
    functionName: Darts::Details::DoubleArrayBuilder::arrange_from_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - DawgBuilder::child
    - resize
    - set_value
    - size
    - set_label
    - DawgBuilder::sibling
    - set_offset
    - append
    - Darts::Details::DoubleArrayBuilder::find_valid_offset
    - DawgBuilder::label
    - DawgBuilder::value
    - set_has_leaf
    - DawgBuilder::is_leaf
    - extras
    - Darts::Details::DoubleArrayBuilder::reserve_id
    linkageType: ''
    returnType: id_type
    signature: "id_type DoubleArrayBuilder::arrange_from_dawg(const DawgBuilder &dawg,\n
      \   id_type dawg_id, id_type dic_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1698,1
    - Dst: reserve
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1701,1
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1703,1
    - Dst: extra_type::extra_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1703,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1705,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1706,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1707,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1708,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1710,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1711,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1711,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_all_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1714,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1716,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - keyset
    argTypes:
    - Keyset<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1718
    functionName: Darts::Details::DoubleArrayBuilder::build_from_keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 5
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::build_from_keyset
    - Darts::Details::DoubleArrayBuilder::clear
    - set_label
    - set_offset
    - Darts::Details::DoubleArrayBuilder::fix_all_blocks
    - Keyset<T>::num_keys
    - reset
    - extra_type::extra_type
    - reserve
    - extras
    - Darts::Details::DoubleArrayBuilder::reserve_id
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::build_from_keyset(const Keyset<T> &keyset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DoubleArrayBuilder::arrange_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1723,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1726,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1736,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1738,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1740,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1743,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1746,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - keyset
    - begin
    - end
    - depth
    - dic_id
    argTypes:
    - Keyset<T>
    - std::size_t
    - std::size_t
    - std::size_t
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1721
    functionDepth: 2
    functionLinenumber: 1721
    functionLinenumberEnd: 1747
    functionName: Darts::Details::DoubleArrayBuilder::build_from_keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 6
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::build_from_keyset
    - Darts::Details::DoubleArrayBuilder::arrange_from_keyset
    - Keyset<T>::keys
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::build_from_keyset(const Keyset<T> &keyset,\n
      \   std::size_t begin, std::size_t end, std::size_t depth, id_type dic_id)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1752,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1756,1
    - Dst: Keyset<T>::has_lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1758,1
    - Dst: Keyset<T>::lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1758,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1759,1
    - Dst: Keyset<T>::values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1761,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1762,1
    - Dst: Keyset<T>::values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1766,1
    - Dst: progress_func_
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1769,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1769,1
    - Dst: empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1773,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1774,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1775,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1776,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1777,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1779,1
    - Dst: Darts::Details::DoubleArrayBuilder::find_valid_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1783,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1784,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1786,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1788,1
    - Dst: set_has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1790,1
    - Dst: set_value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1791,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1793,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1796,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 5
    argNames:
    - keyset
    - begin
    - end
    - depth
    - dic_id
    argTypes:
    - Keyset<T>
    - std::size_t
    - std::size_t
    - std::size_t
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1750
    functionDepth: 2
    functionLinenumber: 1750
    functionLinenumberEnd: 1799
    functionName: Darts::Details::DoubleArrayBuilder::arrange_from_keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - set_value
    - resize
    - Keyset<T>::has_lengths
    - Keyset<T>::lengths
    - size
    - Keyset<T>::values
    - set_label
    - Keyset<T>::keys
    - append
    - Darts::Details::DoubleArrayBuilder::find_valid_offset
    - set_offset
    - empty
    - Keyset<T>::num_keys
    - set_has_leaf
    - extras
    - progress_func_
    - Darts::Details::DoubleArrayBuilder::reserve_id
    - DARTS_THROW
    linkageType: ''
    returnType: id_type
    signature: "id_type DoubleArrayBuilder::arrange_from_keyset(const Keyset<T> &keyset,\n
      \   std::size_t begin, std::size_t end, std::size_t depth, id_type dic_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1802,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1803,1
    - Dst: Darts::Details::DoubleArrayBuilder::is_valid_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1809,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1812,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1801
    functionDepth: 1
    functionLinenumber: 1801
    functionLinenumberEnd: 1816
    functionName: Darts::Details::DoubleArrayBuilder::find_valid_offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::is_valid_offset
    - extras
    - size
    linkageType: ''
    returnType: id_type
    signature: id_type DoubleArrayBuilder::find_valid_offset(id_type id) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1820,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1829,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - id
    - offset
    argTypes:
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1818
    functionDepth: 0
    functionLinenumber: 1818
    functionLinenumberEnd: 1836
    functionName: Darts::Details::DoubleArrayBuilder::is_valid_offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - extras
    - size
    linkageType: ''
    returnType: bool
    signature: "bool DoubleArrayBuilder::is_valid_offset(id_type id,\n    id_type
      offset) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1839,1
    - Dst: Darts::Details::DoubleArrayBuilder::expand_units
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1840,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1844,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1846,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1849,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1849,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1849,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1850,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1850,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1850,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1838
    functionDepth: 2
    functionLinenumber: 1838
    functionLinenumberEnd: 1852
    functionName: Darts::Details::DoubleArrayBuilder::reserve_id
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 9
    functionsReached:
    - extras
    - Darts::Details::DoubleArrayBuilder::expand_units
    - size
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::reserve_id(id_type id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1855,1
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1856,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_block
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1862,1
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1865,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1869,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1870,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1875,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1876,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1879,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1880,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1882,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1882,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1883,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1885,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1885,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1886,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1854
    functionDepth: 3
    functionLinenumber: 1854
    functionLinenumberEnd: 1887
    functionName: Darts::Details::DoubleArrayBuilder::expand_units
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - resize
    - size
    - Darts::Details::DoubleArrayBuilder::num_blocks
    - Darts::Details::DoubleArrayBuilder::fix_block
    - extras
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::expand_units()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1891,1
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1892,1
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1894,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_block
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1889
    functionDepth: 3
    functionLinenumber: 1889
    functionLinenumberEnd: 1899
    functionName: Darts::Details::DoubleArrayBuilder::fix_all_blocks
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::num_blocks
    - Darts::Details::DoubleArrayBuilder::fix_block
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::fix_all_blocks()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1907,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1914,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1915,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1916,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - block_id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1901
    functionDepth: 2
    functionLinenumber: 1901
    functionLinenumberEnd: 1919
    functionName: Darts::Details::DoubleArrayBuilder::fix_block
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - extras
    - set_label
    - Darts::Details::DoubleArrayBuilder::reserve_id
    - static_cast<uchar_type>
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::fix_block(id_type block_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Details::DoubleArrayBuilder::build
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1934,1
    - Dst: Details::DoubleArrayBuilder::copy
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1938,1
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1940,1
    - Dst: progress_func
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - num_keys
    - keys
    - lengths
    - values
    - progress_func
    argTypes:
    - std::size_t
    - key_type**
    - std::size_t*
    - value_type*
    - Details::progress_func_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1928
    functionDepth: 0
    functionLinenumber: 1928
    functionLinenumberEnd: 1951
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::build
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Details::DoubleArrayBuilder::build
    - clear
    - progress_func
    - Details::DoubleArrayBuilder::copy
    linkageType: ''
    returnType: int
    signature: "int DoubleArrayImpl<A, B, T, C>::build(std::size_t num_keys,\n    const
      key_type * const *keys, const std::size_t *lengths,\n    const value_type *values,
      Details::progress_func_type progress_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Darts::Details::DoubleArrayUnit::DoubleArrayUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayUnit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Darts::Details::DoubleArrayUnit::has_leaf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_leaf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Darts::Details::DoubleArrayUnit::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    linkageType: ''
    returnType: value_type
    signature: value_type value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Darts::Details::DoubleArrayUnit::label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Darts::Details::DoubleArrayUnit::offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type offset() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Darts::Details::Exception::Exception
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Exception(const char *msg = NULL) throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - Exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Darts::Details::Exception::Exception
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Exception(const Exception &rhs) throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~Exception() throw()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Exception() throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: Darts::Details::Exception::what
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *what() const throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Darts::Details::DoubleArrayUnit::DoubleArrayUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayUnit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Darts::Details::DoubleArrayUnit::has_leaf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_leaf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: Darts::Details::DoubleArrayUnit::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    linkageType: ''
    returnType: value_type
    signature: value_type value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Darts::Details::DoubleArrayUnit::label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Darts::Details::DoubleArrayUnit::offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type offset() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Darts::Details::Exception::Exception
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Exception(const char *msg = NULL) throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - Exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Darts::Details::Exception::Exception
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Exception(const Exception &rhs) throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~Exception() throw()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Exception() throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: Darts::Details::Exception::what
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char *what() const throw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: Darts::DoubleArrayImpl::DoubleArrayImpl
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 144
    functionName: ~DoubleArrayImpl()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~DoubleArrayImpl()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - result
    - value
    argTypes:
    - value_type*
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: Darts::DoubleArrayImpl::set_result
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_result(value_type *result, value_type value, std::size_t)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - result
    - value
    - length
    argTypes:
    - result_pair_type*
    - value_type
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: Darts::DoubleArrayImpl::set_result
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void set_result(result_pair_type *result,\n      value_type value,
      std::size_t length) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::DoubleArrayImpl::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:173,1
    - Dst: static_cast<const unit_type *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: Darts::DoubleArrayImpl::set_array
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<const unit_type *>
    - Darts::DoubleArrayImpl::clear
    linkageType: ''
    returnType: void
    signature: void set_array(const void *ptr, std::size_t size = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::DoubleArrayImpl::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:178,1
    - Dst: Darts::DoubleArrayImpl::unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:179,1
    - Dst: Darts::DoubleArrayImpl::unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:180,1
    - Dst: unit_type::unit_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:181,1
    - Dst: std::memcpy
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ptr
    - num_bytes
    argTypes:
    - void*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 184
    functionName: Darts::DoubleArrayImpl::copy_array
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - std::memcpy
    - unit_type::unit_type
    - Darts::DoubleArrayImpl::unit_size
    - Darts::DoubleArrayImpl::clear
    linkageType: ''
    returnType: void
    signature: void copy_array(const void* ptr, std::size_t num_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: Darts::DoubleArrayImpl::array
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void *array() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 201
    functionName: Darts::DoubleArrayImpl::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: Darts::DoubleArrayImpl::unit_size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t unit_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Darts::DoubleArrayImpl::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::DoubleArrayImpl::unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:214,1
    - Dst: Darts::DoubleArrayImpl::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: Darts::DoubleArrayImpl::total_size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::DoubleArrayImpl::size
    - Darts::DoubleArrayImpl::unit_size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t total_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::DoubleArrayImpl::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 220
    functionName: Darts::DoubleArrayImpl::nonzero_size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::DoubleArrayImpl::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t nonzero_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::DoubleArrayImpl::exactMatchSearch
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - result
    argTypes:
    - key_type*
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 275
    functionName: Darts::DoubleArrayImpl::exactMatchSearch
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - Darts::DoubleArrayImpl::exactMatchSearch
    linkageType: ''
    returnType: void
    signature: "void exactMatchSearch(const key_type *key, U &result,\n      std::size_t
      length = 0, std::size_t node_pos = 0) const"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ::fopen_s
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:342,1
    - Dst: std::fopen
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:346,1
    - Dst: std::fseek
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:353,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:354,1
    - Dst: std::ftell
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:357,1
    - Dst: unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:360,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:362,1
    - Dst: std::fseek
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:366,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:367,1
    - Dst: std::fread
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:372,1
    - Dst: unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:372,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:373,1
    - Dst: label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:377,1
    - Dst: has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:377,1
    - Dst: offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:378,1
    - Dst: offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:378,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:379,1
    - Dst: label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:383,1
    - Dst: offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:383,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:384,1
    - Dst: unit_type::unit_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:391,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:396,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:397,1
    - Dst: std::fread
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:401,1
    - Dst: unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:401,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:402,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:407,1
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:409,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 59
    argCount: 4
    argNames:
    - file_name
    - mode
    - offset
    - size
    argTypes:
    - char*
    - char*
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 415
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::open
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - std::ftell
    - unit_size
    - ::fopen_s
    - clear
    - std::fopen
    - std::fclose
    - label
    - has_leaf
    - std::fread
    - offset
    - unit_type::unit_type
    - std::fseek
    - DARTS_THROW
    linkageType: ''
    returnType: int
    signature: "int DoubleArrayImpl<A, B, T, C>::open(const char *file_name,\n    const
      char *mode, std::size_t offset, std::size_t size)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:420,1
    - Dst: ::fopen_s
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:426,1
    - Dst: std::fopen
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:430,1
    - Dst: std::fwrite
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:436,1
    - Dst: unit_size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:436,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:436,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:436,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:437,1
    - Dst: std::fclose
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - file_name
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 442
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::save
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - unit_size
    - ::fopen_s
    - size
    - std::fopen
    - std::fclose
    - std::fwrite
    linkageType: ''
    returnType: int
    signature: "int DoubleArrayImpl<A, B, T, C>::save(const char *file_name,\n    const
      char *mode, std::size_t) const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:447,1
    - Dst: has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:447,1
    - Dst: offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:448,1
    - Dst: offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:448,1
    - Dst: label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:452,1
    - Dst: offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:453,1
    - Dst: value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:458,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 20
    argCount: 1
    argNames:
    - max_value_limit
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 465
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::validate
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - offset
    - has_leaf
    - value
    - label
    linkageType: ''
    returnType: bool
    signature: bool DoubleArrayImpl<A, B, T, C>::validate(value_type max_value_limit)
      const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: set_result
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:472,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:472,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:477,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:477,1
    - Dst: unit_type::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:479,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:479,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:485,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:485,1
    - Dst: unit_type::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:487,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:487,1
    - Dst: unit_type::has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:493,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:496,1
    - Dst: set_result
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:497,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:497,1
    - Dst: unit_type::value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:497,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - key
    - length
    - node_pos
    argTypes:
    - key_type*
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 499
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::exactMatchSearch
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<uchar_type>
    - unit_type::has_leaf
    - unit_type::offset
    - unit_type::label
    - static_cast<value_type>
    - unit_type::value
    - set_result
    linkageType: ''
    returnType: U
    signature: "U DoubleArrayImpl<A, B, T, C>::exactMatchSearch(const key_type *key,\n
      \   std::size_t length, std::size_t node_pos) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:509,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:512,1
    - Dst: unit_type::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:514,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:514,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:518,1
    - Dst: unit_type::has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:519,1
    - Dst: set_result
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:521,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:521,1
    - Dst: value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:522,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:529,1
    - Dst: unit_type::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:531,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:531,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:535,1
    - Dst: unit_type::has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:536,1
    - Dst: set_result
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:538,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:538,1
    - Dst: value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:539,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 5
    argNames:
    - key
    - results
    - max_num_results
    - length
    - node_pos
    argTypes:
    - key_type*
    - U*
    - std::size_t
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 547
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::commonPrefixSearch
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<uchar_type>
    - unit_type::has_leaf
    - unit_type::offset
    - value
    - unit_type::label
    - static_cast<value_type>
    - set_result
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t DoubleArrayImpl<A, B, T, C>::commonPrefixSearch(\n    const
      key_type *key, U *results, std::size_t max_num_results,\n    std::size_t length,
      std::size_t node_pos) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:553,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:558,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:558,1
    - Dst: unit_type::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:560,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:560,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:561,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:567,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:567,1
    - Dst: unit_type::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:569,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:569,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:570,1
    - Dst: unit_type::has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:576,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:577,1
    - Dst: unit_type::offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:579,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:580,1
    - Dst: unit_type::value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:580,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 4
    argNames:
    - key
    - node_pos
    - key_pos
    - length
    argTypes:
    - key_type*
    - std::size_t
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 581
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::traverse
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<uchar_type>
    - unit_type::has_leaf
    - unit_type::offset
    - unit_type::label
    - static_cast<value_type>
    - static_cast<id_type>
    - unit_type::value
    linkageType: ''
    returnType: typename DoubleArrayImpl<A, B, T, C>::value_type
    signature: "typename DoubleArrayImpl<A, B, T, C>::value_type DoubleArrayImpl<A,
      B, T, C>::traverse(const key_type *key,\n    std::size_t &node_pos, std::size_t
      &key_pos, std::size_t length) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 592
    functionName: Darts::Details::AutoArray::AutoArray
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutoArray(T *array = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 595
    functionName: ~AutoArray()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~AutoArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: '&operator[](std::size_t id) const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 602
    functionName: '&operator[](std::size_t id)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 606
    functionName: Darts::Details::AutoArray::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 613
    functionName: Darts::Details::AutoArray::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - array
    argTypes:
    - AutoArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 618
    functionName: Darts::Details::AutoArray::swap
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap(AutoArray *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoArray::AutoArray
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 621
    functionName: Darts::Details::AutoArray::reset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::AutoArray::AutoArray
    linkageType: ''
    returnType: void
    signature: void reset(T *array = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: Darts::Details::AutoPool::AutoPool
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutoPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 639
    functionName: ~AutoPool()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~AutoPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 643
    functionName: '&operator[](std::size_t id) const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const T *>
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 646
    functionName: '&operator[](std::size_t id)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T *>
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 650
    functionName: Darts::Details::AutoPool::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: Darts::Details::AutoPool::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoPool::resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:656,1
    - Dst: Darts::Details::AutoPool::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 660
    functionName: Darts::Details::AutoPool::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::AutoPool::clear
    - Darts::Details::AutoPool::resize
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoPool::append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 664
    functionName: Darts::Details::AutoPool::push_back
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::AutoPool::append
    linkageType: ''
    returnType: void
    signature: void push_back(const T &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 667
    functionName: Darts::Details::AutoPool::pop_back
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void pop_back()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:671,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: Darts::Details::AutoPool::append
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - T::T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void append()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:676,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: Darts::Details::AutoPool::append
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - T::T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void append(const T &value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:682,1
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:685,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: Darts::Details::AutoPool::resize
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - T::T
    - ~T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:693,1
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:696,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - size
    - value
    argTypes:
    - std::size_t
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 701
    functionName: Darts::Details::AutoPool::resize
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - T::T
    - ~T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t size, const T &value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 707
    functionName: Darts::Details::AutoPool::reserve
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void reserve(std::size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AutoArray::reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:735,1
    - Dst: char::char
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:735,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:737,1
    - Dst: reinterpret_cast<T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:741,1
    - Dst: reinterpret_cast<T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:742,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:744,1
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:745,1
    - Dst: swap
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:749,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 751
    functionName: Darts::Details::AutoPool<T>::resize_buf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - char::char
    - ~T
    - swap
    - T::T
    - AutoArray::reset
    - reinterpret_cast<T *>
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: void AutoPool<T>::resize_buf(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 760
    functionName: Darts::Details::AutoStack::AutoStack
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutoStack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 763
    functionName: ~AutoStack()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~AutoStack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 767
    functionName: '&top() const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: T
    signature: T &top() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 770
    functionName: '&top()'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: T
    signature: T &top()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoStack::empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 774
    functionName: Darts::Details::AutoStack::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::AutoStack::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoStack::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 777
    functionName: Darts::Details::AutoStack::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::AutoStack::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 781
    functionName: Darts::Details::AutoStack::push
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void push(const T &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 784
    functionName: Darts::Details::AutoStack::pop
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: void
    signature: void pop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoStack::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 788
    functionName: Darts::Details::AutoStack::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::AutoStack::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 804
    functionName: Darts::Details::BitVector::BitVector
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 807
    functionName: ~BitVector()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~BitVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 811
    functionName: operator[](std::size_t id) const
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator[](std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::pop_count
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 817
    functionName: Darts::Details::BitVector::rank
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::BitVector::pop_count
    linkageType: ''
    returnType: id_type
    signature: id_type rank(std::size_t id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - id
    - bit
    argTypes:
    - std::size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 825
    functionName: Darts::Details::BitVector::set
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set(std::size_t id, bool bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 829
    functionName: Darts::Details::BitVector::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::BitVector::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 832
    functionName: Darts::Details::BitVector::num_ones
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_ones() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 835
    functionName: Darts::Details::BitVector::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 842
    functionName: Darts::Details::BitVector::append
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::BitVector::append
    linkageType: ''
    returnType: void
    signature: void append()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:846,1
    - Dst: Darts::Details::BitVector::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 848
    functionName: Darts::Details::BitVector::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::BitVector::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - unit
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 869
    functionName: Darts::Details::BitVector::pop_count
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type pop_count(id_type unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:874,1
    - Dst: Darts::Details::BitVector::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:874,1
    - Dst: id_type::id_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:874,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:876,1
    - Dst: Darts::Details::BitVector::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:880,1
    - Dst: Darts::Details::BitVector::pop_count
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 884
    functionName: Darts::Details::BitVector::build
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::BitVector::pop_count
    - reset
    - id_type::id_type
    - Darts::Details::BitVector::size
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: void BitVector::build()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - num_keys
    - keys
    - lengths
    - values
    argTypes:
    - std::size_t
    - char_type**
    - std::size_t*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 895
    functionName: Darts::Details::Keyset::Keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Keyset(std::size_t num_keys, const char_type * const *keys,\n
      \     const std::size_t *lengths, const T *values)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 899
    functionName: Darts::Details::Keyset::num_keys
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 902
    functionName: Darts::Details::Keyset::keys
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char_type
    signature: char_type *keys(std::size_t id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::Keyset::has_lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - key_id
    - char_id
    argTypes:
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 907
    functionName: Darts::Details::Keyset::keys
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::Keyset::has_lengths
    linkageType: ''
    returnType: uchar_type
    signature: uchar_type keys(std::size_t key_id, std::size_t char_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 911
    functionName: Darts::Details::Keyset::has_lengths
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_lengths() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::Keyset::has_lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 921
    functionName: Darts::Details::Keyset::lengths
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::Keyset::has_lengths
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t lengths(std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 925
    functionName: Darts::Details::Keyset::has_values
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_values() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::Keyset::has_values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:927,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:928,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 931
    functionName: Darts::Details::Keyset::values
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    - Darts::Details::Keyset::has_values
    linkageType: ''
    returnType: value_type
    signature: value_type values(std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 951
    functionName: Darts::Details::DawgNode::DawgNode
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgNode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - child
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 955
    functionName: Darts::Details::DawgNode::set_child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_child(id_type child)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sibling
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 958
    functionName: Darts::Details::DawgNode::set_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_sibling(id_type sibling)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 961
    functionName: Darts::Details::DawgNode::set_value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_value(value_type value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - label
    argTypes:
    - uchar_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 964
    functionName: Darts::Details::DawgNode::set_label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_label(uchar_type label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_state
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 967
    functionName: Darts::Details::DawgNode::set_is_state
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_is_state(bool is_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - has_sibling
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 970
    functionName: Darts::Details::DawgNode::set_has_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_has_sibling(bool has_sibling)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 974
    functionName: Darts::Details::DawgNode::child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type child() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 977
    functionName: Darts::Details::DawgNode::sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type sibling() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 980
    functionName: Darts::Details::DawgNode::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    linkageType: ''
    returnType: value_type
    signature: value_type value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 983
    functionName: Darts::Details::DawgNode::label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uchar_type
    signature: uchar_type label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 986
    functionName: Darts::Details::DawgNode::is_state
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 989
    functionName: Darts::Details::DawgNode::has_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_sibling() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 996
    functionName: Darts::Details::DawgNode::unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type unit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1014
    functionName: Darts::Details::DawgUnit::DawgUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgUnit(id_type unit = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unit
    argTypes:
    - DawgUnit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1015
    functionName: Darts::Details::DawgUnit::DawgUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgUnit(const DawgUnit &unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unit
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1020
    functionName: '&operator=(id_type unit)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DawgUnit
    signature: DawgUnit &operator=(id_type unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1024
    functionName: Darts::Details::DawgUnit::unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type unit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1028
    functionName: Darts::Details::DawgUnit::child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type child() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1031
    functionName: Darts::Details::DawgUnit::has_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_sibling() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1034
    functionName: Darts::Details::DawgUnit::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    linkageType: ''
    returnType: value_type
    signature: value_type value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1037
    functionName: Darts::Details::DawgUnit::is_state
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1052
    functionName: Darts::Details::DawgBuilder::DawgBuilder
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1055
    functionName: ~DawgBuilder()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~DawgBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1059
    functionName: Darts::Details::DawgBuilder::root
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type root() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1063
    functionName: Darts::Details::DawgBuilder::child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 5
    functionsReached:
    - Darts::Details::DawgBuilder::child
    linkageType: ''
    returnType: id_type
    signature: id_type child(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1066
    functionName: Darts::Details::DawgBuilder::sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 6
    functionsReached:
    - has_sibling
    linkageType: ''
    returnType: id_type
    signature: id_type sibling(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1069
    functionName: Darts::Details::DawgBuilder::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::DawgBuilder::value
    linkageType: ''
    returnType: int
    signature: int value(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1073
    functionName: Darts::Details::DawgBuilder::is_leaf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DawgBuilder::label
    linkageType: ''
    returnType: bool
    signature: bool is_leaf(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1076
    functionName: Darts::Details::DawgBuilder::label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: uchar_type
    signature: uchar_type label(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1080
    functionName: Darts::Details::DawgBuilder::is_intersection
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_intersection(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rank
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1083
    functionName: Darts::Details::DawgBuilder::intersection_id
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - rank
    linkageType: ''
    returnType: id_type
    signature: id_type intersection_id(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_ones
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1087
    functionName: Darts::Details::DawgBuilder::num_intersections
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - num_ones
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_intersections() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1091
    functionName: Darts::Details::DawgBuilder::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 15
    functionsReached:
    - Darts::Details::DawgBuilder::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1133
    functionName: Darts::Details::DawgBuilder::free_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 2
    functionsReached:
    - push
    linkageType: ''
    returnType: void
    signature: void free_node(id_type id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1143
    functionName: Darts::Details::DawgBuilder::hash
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type hash(id_type key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1147,1
    - Dst: Darts::Details::DawgBuilder::append_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1149,1
    - Dst: Darts::Details::DawgBuilder::append_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1150,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1154,1
    - Dst: push
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1146
    functionDepth: 3
    functionLinenumber: 1146
    functionLinenumberEnd: 1156
    functionName: Darts::Details::DawgBuilder::init
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DawgBuilder::append_node
    - resize
    - push
    - set_label
    - Darts::Details::DawgBuilder::append_unit
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::flush
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1159,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1161,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1162,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1164,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1165,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1166,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1167,1
    - Dst: build
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1158
    functionDepth: 3
    functionLinenumber: 1158
    functionLinenumberEnd: 1170
    functionName: Darts::Details::DawgBuilder::finish
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - Darts::Details::DawgBuilder::flush
    - Darts::Details::DawgBuilder::clear
    - build
    - unit
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::finish()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1175,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1177,1
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1184,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1189,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1191,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1194,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1196,1
    - Dst: set_has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1198,1
    - Dst: Darts::Details::DawgBuilder::flush
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1199,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1210,1
    - Dst: Darts::Details::DawgBuilder::append_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1212,1
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1214,1
    - Dst: set_is_state
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1215,1
    - Dst: set_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1217,1
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1217,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1218,1
    - Dst: set_child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1219,1
    - Dst: push
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1220,1
    - Dst: set_value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1224,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - key
    - length
    - value
    argTypes:
    - char*
    - std::size_t
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1172
    functionDepth: 3
    functionLinenumber: 1172
    functionLinenumberEnd: 1225
    functionName: Darts::Details::DawgBuilder::insert
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - set_value
    - Darts::Details::DawgBuilder::label
    - static_cast<uchar_type>
    - Darts::Details::DawgBuilder::append_node
    - push
    - Darts::Details::DawgBuilder::child
    - set_label
    - set_sibling
    - Darts::Details::DawgBuilder::flush
    - set_child
    - set_is_state
    - set_has_sibling
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: "void DawgBuilder::insert(const char *key, std::size_t length,\n    value_type
      value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1228,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1229,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1230,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1231,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1232,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1233,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1236
    functionName: Darts::Details::DawgBuilder::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 8
    functionsReached:
    - Darts::Details::DawgBuilder::clear
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1239,1
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1240,1
    - Dst: pop
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1241,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1243,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1243,1
    - Dst: Darts::Details::DawgBuilder::expand_table
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1244,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1248,1
    - Dst: Darts::Details::DawgBuilder::find_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1253,1
    - Dst: set
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1255,1
    - Dst: Darts::Details::DawgBuilder::append_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1259,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1261,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1262,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1263,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1272,1
    - Dst: Darts::Details::DawgBuilder::free_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1273,1
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1276,1
    - Dst: set_child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1276,1
    - Dst: pop
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1238
    functionDepth: 3
    functionLinenumber: 1238
    functionLinenumberEnd: 1279
    functionName: Darts::Details::DawgBuilder::flush
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 6
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - set
    - Darts::Details::DawgBuilder::expand_table
    - Darts::Details::DawgBuilder::find_node
    - Darts::Details::DawgBuilder::append_unit
    - Darts::Details::DawgBuilder::free_node
    - Darts::Details::DawgBuilder::size
    - set_child
    - Darts::Details::DawgBuilder::sibling
    - top
    - pop
    - unit
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::flush(id_type id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1282,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1283,1
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1284,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1286,1
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1287,1
    - Dst: is_state
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1288,1
    - Dst: Darts::Details::DawgBuilder::find_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1281
    functionDepth: 3
    functionLinenumber: 1281
    functionLinenumberEnd: 1294
    functionName: Darts::Details::DawgBuilder::expand_table
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - resize
    - is_state
    - Darts::Details::DawgBuilder::size
    - Darts::Details::DawgBuilder::find_unit
    - static_cast<id_type>
    - Darts::Details::DawgBuilder::clear
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::expand_table()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::hash_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1297,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1297,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - id
    - hash_id
    argTypes:
    - id_type
    - id_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1307
    functionName: Darts::Details::DawgBuilder::find_unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::DawgBuilder::hash_unit
    - Darts::Details::DawgBuilder::size
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::find_unit(id_type id, id_type *hash_id) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::hash_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1311,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1311,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1312,1
    - Dst: Darts::Details::DawgBuilder::are_equal
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - node_id
    - hash_id
    argTypes:
    - id_type
    - id_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1309
    functionDepth: 2
    functionLinenumber: 1309
    functionLinenumberEnd: 1323
    functionName: Darts::Details::DawgBuilder::find_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::DawgBuilder::size
    - Darts::Details::DawgBuilder::are_equal
    - Darts::Details::DawgBuilder::hash_node
    linkageType: ''
    returnType: id_type
    signature: "id_type DawgBuilder::find_node(id_type node_id,\n    id_type *hash_id)
      const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1326,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1327,1
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1328,1
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1333,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1337,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1338,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1338,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - node_id
    - unit_id
    argTypes:
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1344
    functionName: Darts::Details::DawgBuilder::are_equal
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - has_sibling
    - Darts::Details::DawgBuilder::sibling
    - unit
    linkageType: ''
    returnType: bool
    signature: bool DawgBuilder::are_equal(id_type node_id, id_type unit_id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1349,1
    - Dst: Darts::Details::DawgBuilder::hash
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1351,1
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1358
    functionName: Darts::Details::DawgBuilder::hash_unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - has_sibling
    - Darts::Details::DawgBuilder::hash
    - unit
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::hash_unit(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1362,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1363,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1364,1
    - Dst: Darts::Details::DawgBuilder::hash
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1360
    functionDepth: 1
    functionLinenumber: 1360
    functionLinenumberEnd: 1368
    functionName: Darts::Details::DawgBuilder::hash_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - Darts::Details::DawgBuilder::sibling
    - Darts::Details::DawgBuilder::hash
    - unit
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::hash_node(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1371,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1372,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1373,1
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1375,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1370
    functionDepth: 2
    functionLinenumber: 1370
    functionLinenumberEnd: 1376
    functionName: Darts::Details::DawgBuilder::append_unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 6
    functionsReached:
    - Darts::Details::DawgBuilder::size
    - static_cast<id_type>
    - append
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::append_unit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1380,1
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1381,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1381,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1382,1
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1384,1
    - Dst: DawgNode
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1385,1
    - Dst: pop
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1389
    functionName: Darts::Details::DawgBuilder::append_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 6
    functionsReached:
    - append
    - DawgNode
    - empty
    - Darts::Details::DawgBuilder::size
    - static_cast<id_type>
    - top
    - pop
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::append_node()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1397
    functionName: Darts::Details::DoubleArrayBuilderUnit::DoubleArrayBuilderUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilderUnit()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - has_leaf
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1405
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_has_leaf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_has_leaf(bool has_leaf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1408
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_value(value_type value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - label
    argTypes:
    - uchar_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1411
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_label(uchar_type label)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - offset
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1422
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: void set_offset(id_type offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1436
    functionDepth: 0
    functionLinenumber: 1436
    functionLinenumberEnd: 1437
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::DoubleArrayBuilderExtraUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilderExtraUnit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prev
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1439
    functionDepth: 0
    functionLinenumber: 1439
    functionLinenumberEnd: 1441
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_prev
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_prev(id_type prev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - next
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1444
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_next
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_next(id_type next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_fixed
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1447
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_is_fixed
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_is_fixed(bool is_fixed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_used
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1450
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_is_used
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_is_used(bool is_used)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1452
    functionDepth: 0
    functionLinenumber: 1452
    functionLinenumberEnd: 1454
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::prev
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type prev() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1457
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::next
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type next() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1458
    functionDepth: 0
    functionLinenumber: 1458
    functionLinenumberEnd: 1460
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::is_fixed
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_fixed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1463
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::is_used
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_used() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - progress_func
    argTypes:
    - progress_func_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1482
    functionName: Darts::Details::DoubleArrayBuilder::DoubleArrayBuilder
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder(progress_func_type progress_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1485
    functionName: ~DoubleArrayBuilder()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~DoubleArrayBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1517
    functionName: Darts::Details::DoubleArrayBuilder::num_blocks
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1521
    functionName: '&extras(id_type id) const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: extra_type
    signature: extra_type &extras(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1524
    functionName: '&extras(id_type id)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: extra_type
    signature: extra_type &extras(id_type id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Keyset<T>::has_values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1555,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1557,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1558,1
    - Dst: Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1559,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - keyset
    argTypes:
    - Keyset<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1554
    functionDepth: 3
    functionLinenumber: 1554
    functionLinenumberEnd: 1563
    functionName: Darts::Details::DoubleArrayBuilder::build
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::build_from_keyset
    - Details::DawgBuilder::clear
    - Darts::Details::DoubleArrayBuilder::build_from_dawg
    - Keyset<T>::has_values
    - Darts::Details::DoubleArrayBuilder::build_dawg
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::build(const Keyset<T> &keyset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1568,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1571,1
    - Dst: DoubleArrayUnit::DoubleArrayUnit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1571,1
    - Dst: reinterpret_cast<unit_type *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1572,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - size_ptr
    - buf_ptr
    argTypes:
    - std::size_t*
    - DoubleArrayUnit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1565
    functionDepth: 0
    functionLinenumber: 1565
    functionLinenumberEnd: 1577
    functionName: Darts::Details::DoubleArrayBuilder::copy
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unit_type *>
    - size
    - DoubleArrayUnit::DoubleArrayUnit
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::copy(std::size_t *size_ptr,\n    DoubleArrayUnit
      **buf_ptr) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1580,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1581,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1582,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1579
    functionDepth: 1
    functionLinenumber: 1579
    functionLinenumberEnd: 1585
    functionName: Darts::Details::DoubleArrayBuilder::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 7
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::clear
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DawgBuilder*::init
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1590,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1591,1
    - Dst: DawgBuilder*::insert
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: Keyset<T>::lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: Keyset<T>::values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: progress_func_
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1594,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1594,1
    - Dst: DawgBuilder*::finish
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - keyset
    - dawg_builder
    argTypes:
    - Keyset<T>
    - DawgBuilder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1598
    functionName: Darts::Details::DoubleArrayBuilder::build_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - DawgBuilder*::init
    - Keyset<T>::lengths
    - Keyset<T>::values
    - Keyset<T>::keys
    - DawgBuilder*::insert
    - Keyset<T>::num_keys
    - DawgBuilder*::finish
    - progress_func_
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::build_dawg(const Keyset<T> &keyset,\n    DawgBuilder
      *dawg_builder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1602,1
    - Dst: reserve
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1605,1
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1607,1
    - Dst: DawgBuilder::num_intersections
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1607,1
    - Dst: id_type::id_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1607,1
    - Dst: DawgBuilder::num_intersections
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1608,1
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1612,1
    - Dst: extra_type::extra_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1612,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1614,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1615,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1616,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1617,1
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1619,1
    - Dst: DawgBuilder::root
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1619,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1620,1
    - Dst: DawgBuilder::root
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1620,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_all_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1623,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1625,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1626,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - dawg
    argTypes:
    - DawgBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1600
    functionDepth: 2
    functionLinenumber: 1600
    functionLinenumberEnd: 1628
    functionName: Darts::Details::DoubleArrayBuilder::build_from_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 8
    functionsReached:
    - DawgBuilder::child
    - DawgBuilder::root
    - Darts::Details::DoubleArrayBuilder::reserve_id
    - Darts::Details::DoubleArrayBuilder::build_from_dawg
    - Darts::Details::DoubleArrayBuilder::clear
    - set_label
    - set_offset
    - Darts::Details::DoubleArrayBuilder::fix_all_blocks
    - reset
    - extra_type::extra_type
    - reserve
    - DawgBuilder::size
    - extras
    - id_type::id_type
    - DawgBuilder::num_intersections
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::build_from_dawg(const DawgBuilder &dawg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1632,1
    - Dst: DawgBuilder::is_intersection
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1633,1
    - Dst: DawgBuilder::intersection_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1634,1
    - Dst: DawgBuilder::is_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1639,1
    - Dst: set_has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1640,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1642,1
    - Dst: Darts::Details::DoubleArrayBuilder::arrange_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1648,1
    - Dst: DawgBuilder::is_intersection
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1649,1
    - Dst: DawgBuilder::intersection_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1650,1
    - Dst: DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1654,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1657,1
    - Dst: DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1659,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - dawg
    - dawg_id
    - dic_id
    argTypes:
    - DawgBuilder
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1630
    functionDepth: 2
    functionLinenumber: 1630
    functionLinenumberEnd: 1661
    functionName: Darts::Details::DoubleArrayBuilder::build_from_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 9
    functionsReached:
    - DawgBuilder::child
    - DawgBuilder::intersection_id
    - Darts::Details::DoubleArrayBuilder::build_from_dawg
    - Darts::Details::DoubleArrayBuilder::arrange_from_dawg
    - DawgBuilder::sibling
    - DawgBuilder::is_intersection
    - set_offset
    - DawgBuilder::label
    - set_has_leaf
    - DawgBuilder::is_leaf
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::build_from_dawg(const DawgBuilder &dawg,\n
      \   id_type dawg_id, id_type dic_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1665,1
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1667,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1669,1
    - Dst: DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1669,1
    - Dst: DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1670,1
    - Dst: Darts::Details::DoubleArrayBuilder::find_valid_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1673,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1674,1
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1676,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1677,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1679,1
    - Dst: DawgBuilder::is_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1681,1
    - Dst: set_has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1682,1
    - Dst: set_value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1683,1
    - Dst: DawgBuilder::value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1683,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1685,1
    - Dst: DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1688,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - dawg
    - dawg_id
    - dic_id
    argTypes:
    - DawgBuilder
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1663
    functionDepth: 2
    functionLinenumber: 1663
    functionLinenumberEnd: 1693
    functionName: Darts::Details::DoubleArrayBuilder::arrange_from_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - DawgBuilder::child
    - resize
    - set_value
    - size
    - set_label
    - DawgBuilder::sibling
    - set_offset
    - append
    - Darts::Details::DoubleArrayBuilder::find_valid_offset
    - DawgBuilder::label
    - DawgBuilder::value
    - set_has_leaf
    - DawgBuilder::is_leaf
    - extras
    - Darts::Details::DoubleArrayBuilder::reserve_id
    linkageType: ''
    returnType: id_type
    signature: "id_type DoubleArrayBuilder::arrange_from_dawg(const DawgBuilder &dawg,\n
      \   id_type dawg_id, id_type dic_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1698,1
    - Dst: reserve
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1701,1
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1703,1
    - Dst: extra_type::extra_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1703,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1705,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1706,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1707,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1708,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1710,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1711,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1711,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_all_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1714,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1716,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - keyset
    argTypes:
    - Keyset<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1718
    functionName: Darts::Details::DoubleArrayBuilder::build_from_keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 8
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::build_from_keyset
    - Darts::Details::DoubleArrayBuilder::clear
    - set_label
    - set_offset
    - Darts::Details::DoubleArrayBuilder::fix_all_blocks
    - Keyset<T>::num_keys
    - reset
    - extra_type::extra_type
    - reserve
    - extras
    - Darts::Details::DoubleArrayBuilder::reserve_id
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::build_from_keyset(const Keyset<T> &keyset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DoubleArrayBuilder::arrange_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1723,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1726,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1736,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1738,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1740,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1743,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1746,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - keyset
    - begin
    - end
    - depth
    - dic_id
    argTypes:
    - Keyset<T>
    - std::size_t
    - std::size_t
    - std::size_t
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1721
    functionDepth: 2
    functionLinenumber: 1721
    functionLinenumberEnd: 1747
    functionName: Darts::Details::DoubleArrayBuilder::build_from_keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 9
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::build_from_keyset
    - Darts::Details::DoubleArrayBuilder::arrange_from_keyset
    - Keyset<T>::keys
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::build_from_keyset(const Keyset<T> &keyset,\n
      \   std::size_t begin, std::size_t end, std::size_t depth, id_type dic_id)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1752,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1756,1
    - Dst: Keyset<T>::has_lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1758,1
    - Dst: Keyset<T>::lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1758,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1759,1
    - Dst: Keyset<T>::values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1761,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1762,1
    - Dst: Keyset<T>::values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1766,1
    - Dst: progress_func_
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1769,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1769,1
    - Dst: empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1773,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1774,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1775,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1776,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1777,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1779,1
    - Dst: Darts::Details::DoubleArrayBuilder::find_valid_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1783,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1784,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1786,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1788,1
    - Dst: set_has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1790,1
    - Dst: set_value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1791,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1793,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1796,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 5
    argNames:
    - keyset
    - begin
    - end
    - depth
    - dic_id
    argTypes:
    - Keyset<T>
    - std::size_t
    - std::size_t
    - std::size_t
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1750
    functionDepth: 2
    functionLinenumber: 1750
    functionLinenumberEnd: 1799
    functionName: Darts::Details::DoubleArrayBuilder::arrange_from_keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - set_value
    - resize
    - Keyset<T>::has_lengths
    - Keyset<T>::lengths
    - size
    - Keyset<T>::values
    - set_label
    - Keyset<T>::keys
    - append
    - Darts::Details::DoubleArrayBuilder::find_valid_offset
    - set_offset
    - empty
    - Keyset<T>::num_keys
    - set_has_leaf
    - extras
    - progress_func_
    - Darts::Details::DoubleArrayBuilder::reserve_id
    - DARTS_THROW
    linkageType: ''
    returnType: id_type
    signature: "id_type DoubleArrayBuilder::arrange_from_keyset(const Keyset<T> &keyset,\n
      \   std::size_t begin, std::size_t end, std::size_t depth, id_type dic_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1802,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1803,1
    - Dst: Darts::Details::DoubleArrayBuilder::is_valid_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1809,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1812,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1801
    functionDepth: 1
    functionLinenumber: 1801
    functionLinenumberEnd: 1816
    functionName: Darts::Details::DoubleArrayBuilder::find_valid_offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 6
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::is_valid_offset
    - extras
    - size
    linkageType: ''
    returnType: id_type
    signature: id_type DoubleArrayBuilder::find_valid_offset(id_type id) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1820,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1829,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - id
    - offset
    argTypes:
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1818
    functionDepth: 0
    functionLinenumber: 1818
    functionLinenumberEnd: 1836
    functionName: Darts::Details::DoubleArrayBuilder::is_valid_offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - extras
    - size
    linkageType: ''
    returnType: bool
    signature: "bool DoubleArrayBuilder::is_valid_offset(id_type id,\n    id_type
      offset) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1839,1
    - Dst: Darts::Details::DoubleArrayBuilder::expand_units
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1840,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1844,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1846,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1849,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1849,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1849,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1850,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1850,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1850,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1838
    functionDepth: 2
    functionLinenumber: 1838
    functionLinenumberEnd: 1852
    functionName: Darts::Details::DoubleArrayBuilder::reserve_id
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 14
    functionsReached:
    - extras
    - Darts::Details::DoubleArrayBuilder::expand_units
    - size
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::reserve_id(id_type id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1855,1
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1856,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_block
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1862,1
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1865,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1869,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1870,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1875,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1876,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1879,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1880,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1882,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1882,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1883,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1885,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1885,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1886,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1854
    functionDepth: 3
    functionLinenumber: 1854
    functionLinenumberEnd: 1887
    functionName: Darts::Details::DoubleArrayBuilder::expand_units
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - resize
    - size
    - Darts::Details::DoubleArrayBuilder::num_blocks
    - Darts::Details::DoubleArrayBuilder::fix_block
    - extras
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::expand_units()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1891,1
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1892,1
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1894,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_block
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1889
    functionDepth: 3
    functionLinenumber: 1889
    functionLinenumberEnd: 1899
    functionName: Darts::Details::DoubleArrayBuilder::fix_all_blocks
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 6
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::num_blocks
    - Darts::Details::DoubleArrayBuilder::fix_block
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::fix_all_blocks()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1907,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1914,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1915,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1916,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - block_id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1901
    functionDepth: 2
    functionLinenumber: 1901
    functionLinenumberEnd: 1919
    functionName: Darts::Details::DoubleArrayBuilder::fix_block
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 6
    functionsReached:
    - extras
    - set_label
    - Darts::Details::DoubleArrayBuilder::reserve_id
    - static_cast<uchar_type>
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::fix_block(id_type block_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 592
    functionName: Darts::Details::AutoArray::AutoArray
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutoArray(T *array = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 595
    functionName: ~AutoArray()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~AutoArray()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 597
    functionDepth: 0
    functionLinenumber: 597
    functionLinenumberEnd: 599
    functionName: '&operator[](std::size_t id) const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 602
    functionName: '&operator[](std::size_t id)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 604
    functionDepth: 0
    functionLinenumber: 604
    functionLinenumberEnd: 606
    functionName: Darts::Details::AutoArray::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 613
    functionName: Darts::Details::AutoArray::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - array
    argTypes:
    - AutoArray*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 614
    functionDepth: 0
    functionLinenumber: 614
    functionLinenumberEnd: 618
    functionName: Darts::Details::AutoArray::swap
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void swap(AutoArray *array)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoArray::AutoArray
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:620,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 621
    functionName: Darts::Details::AutoArray::reset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::AutoArray::AutoArray
    linkageType: ''
    returnType: void
    signature: void reset(T *array = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 638
    functionName: Darts::Details::AutoPool::AutoPool
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutoPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 639
    functionName: ~AutoPool()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~AutoPool()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 643
    functionName: '&operator[](std::size_t id) const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const T *>
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 646
    functionName: '&operator[](std::size_t id)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<T *>
    linkageType: ''
    returnType: T
    signature: T &operator[](std::size_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 650
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 650
    functionName: Darts::Details::AutoPool::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 653
    functionName: Darts::Details::AutoPool::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoPool::resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:656,1
    - Dst: Darts::Details::AutoPool::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 655
    functionDepth: 1
    functionLinenumber: 655
    functionLinenumberEnd: 660
    functionName: Darts::Details::AutoPool::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::AutoPool::clear
    - Darts::Details::AutoPool::resize
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoPool::append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 664
    functionName: Darts::Details::AutoPool::push_back
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::AutoPool::append
    linkageType: ''
    returnType: void
    signature: void push_back(const T &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 667
    functionName: Darts::Details::AutoPool::pop_back
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - ~T
    linkageType: ''
    returnType: void
    signature: void pop_back()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:671,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 669
    functionDepth: 0
    functionLinenumber: 669
    functionLinenumberEnd: 673
    functionName: Darts::Details::AutoPool::append
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - T::T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void append()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:676,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:677,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: Darts::Details::AutoPool::append
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - T::T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void append(const T &value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:682,1
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:685,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:688,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 690
    functionName: Darts::Details::AutoPool::resize
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - T::T
    - ~T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:693,1
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:696,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:699,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - size
    - value
    argTypes:
    - std::size_t
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 701
    functionName: Darts::Details::AutoPool::resize
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - T::T
    - ~T
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void resize(std::size_t size, const T &value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize_buf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:705,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 707
    functionName: Darts::Details::AutoPool::reserve
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - resize_buf
    linkageType: ''
    returnType: void
    signature: void reserve(std::size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: AutoArray::reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:735,1
    - Dst: char::char
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:735,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:737,1
    - Dst: reinterpret_cast<T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:741,1
    - Dst: reinterpret_cast<T *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:742,1
    - Dst: T::T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:744,1
    - Dst: ~T
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:745,1
    - Dst: swap
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:749,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - size
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 751
    functionName: Darts::Details::AutoPool<T>::resize_buf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - char::char
    - ~T
    - swap
    - T::T
    - AutoArray::reset
    - reinterpret_cast<T *>
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: void AutoPool<T>::resize_buf(std::size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 760
    functionName: Darts::Details::AutoStack::AutoStack
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AutoStack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 763
    functionName: ~AutoStack()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~AutoStack()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 765
    functionDepth: 0
    functionLinenumber: 765
    functionLinenumberEnd: 767
    functionName: '&top() const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: T
    signature: T &top() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:769,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 770
    functionName: '&top()'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: T
    signature: T &top()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoStack::empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 774
    functionName: Darts::Details::AutoStack::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::AutoStack::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoStack::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 777
    functionName: Darts::Details::AutoStack::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::AutoStack::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 781
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 781
    functionName: Darts::Details::AutoStack::push
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void push(const T &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pop_back
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:783,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 784
    functionName: Darts::Details::AutoStack::pop
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - pop_back
    linkageType: ''
    returnType: void
    signature: void pop()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::AutoStack::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 786
    functionDepth: 1
    functionLinenumber: 786
    functionLinenumberEnd: 788
    functionName: Darts::Details::AutoStack::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::AutoStack::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 804
    functionName: Darts::Details::BitVector::BitVector
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 807
    functionName: ~BitVector()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~BitVector()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 809
    functionDepth: 0
    functionLinenumber: 809
    functionLinenumberEnd: 811
    functionName: operator[](std::size_t id) const
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator[](std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::pop_count
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 817
    functionName: Darts::Details::BitVector::rank
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::BitVector::pop_count
    linkageType: ''
    returnType: id_type
    signature: id_type rank(std::size_t id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - id
    - bit
    argTypes:
    - std::size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 825
    functionName: Darts::Details::BitVector::set
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set(std::size_t id, bool bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:828,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 829
    functionName: Darts::Details::BitVector::empty
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::BitVector::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 832
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 832
    functionName: Darts::Details::BitVector::num_ones
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_ones() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 833
    functionDepth: 0
    functionLinenumber: 833
    functionLinenumberEnd: 835
    functionName: Darts::Details::BitVector::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:839,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 842
    functionName: Darts::Details::BitVector::append
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::BitVector::append
    linkageType: ''
    returnType: void
    signature: void append()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::BitVector::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:846,1
    - Dst: Darts::Details::BitVector::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 845
    functionDepth: 1
    functionLinenumber: 845
    functionLinenumberEnd: 848
    functionName: Darts::Details::BitVector::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::BitVector::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - unit
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 869
    functionName: Darts::Details::BitVector::pop_count
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type pop_count(id_type unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:874,1
    - Dst: Darts::Details::BitVector::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:874,1
    - Dst: id_type::id_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:874,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:876,1
    - Dst: Darts::Details::BitVector::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:880,1
    - Dst: Darts::Details::BitVector::pop_count
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 884
      start: 872
    functionDepth: 1
    functionLinenumber: 872
    functionLinenumberEnd: 884
    functionName: Darts::Details::BitVector::build
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::BitVector::pop_count
    - reset
    - id_type::id_type
    - Darts::Details::BitVector::size
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: void BitVector::build()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - num_keys
    - keys
    - lengths
    - values
    argTypes:
    - std::size_t
    - char_type**
    - std::size_t*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 895
    functionName: Darts::Details::Keyset::Keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Keyset(std::size_t num_keys, const char_type * const *keys,\n
      \     const std::size_t *lengths, const T *values)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 899
    functionName: Darts::Details::Keyset::num_keys
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_keys() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 902
    functionName: Darts::Details::Keyset::keys
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char_type
    signature: char_type *keys(std::size_t id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::Keyset::has_lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - key_id
    - char_id
    argTypes:
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 903
    functionDepth: 1
    functionLinenumber: 903
    functionLinenumberEnd: 907
    functionName: Darts::Details::Keyset::keys
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::Keyset::has_lengths
    linkageType: ''
    returnType: uchar_type
    signature: uchar_type keys(std::size_t key_id, std::size_t char_id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 911
    functionName: Darts::Details::Keyset::has_lengths
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_lengths() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::Keyset::has_lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:913,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 912
    functionDepth: 1
    functionLinenumber: 912
    functionLinenumberEnd: 921
    functionName: Darts::Details::Keyset::lengths
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::Keyset::has_lengths
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t lengths(std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 925
    functionName: Darts::Details::Keyset::has_values
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_values() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::Keyset::has_values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:927,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:928,1
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 926
    functionDepth: 1
    functionLinenumber: 926
    functionLinenumberEnd: 931
    functionName: Darts::Details::Keyset::values
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    - Darts::Details::Keyset::has_values
    linkageType: ''
    returnType: value_type
    signature: value_type values(std::size_t id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 951
    functionName: Darts::Details::DawgNode::DawgNode
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgNode()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - child
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 955
    functionName: Darts::Details::DawgNode::set_child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_child(id_type child)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sibling
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 958
    functionName: Darts::Details::DawgNode::set_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_sibling(id_type sibling)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 959
    functionDepth: 0
    functionLinenumber: 959
    functionLinenumberEnd: 961
    functionName: Darts::Details::DawgNode::set_value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_value(value_type value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - label
    argTypes:
    - uchar_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 962
    functionDepth: 0
    functionLinenumber: 962
    functionLinenumberEnd: 964
    functionName: Darts::Details::DawgNode::set_label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_label(uchar_type label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_state
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 967
    functionName: Darts::Details::DawgNode::set_is_state
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_is_state(bool is_state)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - has_sibling
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 970
    functionName: Darts::Details::DawgNode::set_has_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_has_sibling(bool has_sibling)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 974
    functionName: Darts::Details::DawgNode::child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type child() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 975
    functionDepth: 0
    functionLinenumber: 975
    functionLinenumberEnd: 977
    functionName: Darts::Details::DawgNode::sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type sibling() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 980
    functionName: Darts::Details::DawgNode::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    linkageType: ''
    returnType: value_type
    signature: value_type value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 983
    functionName: Darts::Details::DawgNode::label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uchar_type
    signature: uchar_type label() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 984
    functionDepth: 0
    functionLinenumber: 984
    functionLinenumberEnd: 986
    functionName: Darts::Details::DawgNode::is_state
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 989
    functionName: Darts::Details::DawgNode::has_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_sibling() const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 996
    functionName: Darts::Details::DawgNode::unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type unit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1014
    functionDepth: 0
    functionLinenumber: 1014
    functionLinenumberEnd: 1014
    functionName: Darts::Details::DawgUnit::DawgUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgUnit(id_type unit = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - unit
    argTypes:
    - DawgUnit
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1015
    functionName: Darts::Details::DawgUnit::DawgUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgUnit(const DawgUnit &unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - unit
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1020
    functionName: '&operator=(id_type unit)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DawgUnit
    signature: DawgUnit &operator=(id_type unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1024
      start: 1022
    functionDepth: 0
    functionLinenumber: 1022
    functionLinenumberEnd: 1024
    functionName: Darts::Details::DawgUnit::unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type unit() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1028
    functionName: Darts::Details::DawgUnit::child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type child() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1031
    functionName: Darts::Details::DawgUnit::has_sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_sibling() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1034
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1034
    functionName: Darts::Details::DawgUnit::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - static_cast<value_type>
    linkageType: ''
    returnType: value_type
    signature: value_type value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1037
    functionName: Darts::Details::DawgUnit::is_state
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_state() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1051
    functionDepth: 0
    functionLinenumber: 1051
    functionLinenumberEnd: 1052
    functionName: Darts::Details::DawgBuilder::DawgBuilder
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DawgBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1053
    functionDepth: 0
    functionLinenumber: 1053
    functionLinenumberEnd: 1055
    functionName: ~DawgBuilder()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~DawgBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1059
      start: 1057
    functionDepth: 0
    functionLinenumber: 1057
    functionLinenumberEnd: 1059
    functionName: Darts::Details::DawgBuilder::root
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type root() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1063
    functionName: Darts::Details::DawgBuilder::child
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 7
    functionsReached:
    - Darts::Details::DawgBuilder::child
    linkageType: ''
    returnType: id_type
    signature: id_type child(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1065,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1064
    functionDepth: 0
    functionLinenumber: 1064
    functionLinenumberEnd: 1066
    functionName: Darts::Details::DawgBuilder::sibling
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 9
    functionsReached:
    - has_sibling
    linkageType: ''
    returnType: id_type
    signature: id_type sibling(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1068,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1067
    functionDepth: 1
    functionLinenumber: 1067
    functionLinenumberEnd: 1069
    functionName: Darts::Details::DawgBuilder::value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::DawgBuilder::value
    linkageType: ''
    returnType: int
    signature: int value(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1072,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1073
    functionName: Darts::Details::DawgBuilder::is_leaf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DawgBuilder::label
    linkageType: ''
    returnType: bool
    signature: bool is_leaf(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1074
    functionDepth: 0
    functionLinenumber: 1074
    functionLinenumberEnd: 1076
    functionName: Darts::Details::DawgBuilder::label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 19
    functionsReached: []
    linkageType: ''
    returnType: uchar_type
    signature: uchar_type label(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1078
    functionDepth: 0
    functionLinenumber: 1078
    functionLinenumberEnd: 1080
    functionName: Darts::Details::DawgBuilder::is_intersection
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_intersection(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rank
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1081
    functionDepth: 0
    functionLinenumber: 1081
    functionLinenumberEnd: 1083
    functionName: Darts::Details::DawgBuilder::intersection_id
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - rank
    linkageType: ''
    returnType: id_type
    signature: id_type intersection_id(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: num_ones
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1086,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1087
    functionName: Darts::Details::DawgBuilder::num_intersections
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - num_ones
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_intersections() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1091
    functionName: Darts::Details::DawgBuilder::size
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 22
    functionsReached:
    - Darts::Details::DawgBuilder::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1133
    functionName: Darts::Details::DawgBuilder::free_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 3
    functionsReached:
    - push
    linkageType: ''
    returnType: void
    signature: void free_node(id_type id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1143
      start: 1135
    functionDepth: 0
    functionLinenumber: 1135
    functionLinenumberEnd: 1143
    functionName: Darts::Details::DawgBuilder::hash
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type hash(id_type key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1147,1
    - Dst: Darts::Details::DawgBuilder::append_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1149,1
    - Dst: Darts::Details::DawgBuilder::append_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1150,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1154,1
    - Dst: push
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1146
    functionDepth: 3
    functionLinenumber: 1146
    functionLinenumberEnd: 1156
    functionName: Darts::Details::DawgBuilder::init
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DawgBuilder::append_node
    - resize
    - push
    - set_label
    - Darts::Details::DawgBuilder::append_unit
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::flush
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1159,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1161,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1162,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1164,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1165,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1166,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1167,1
    - Dst: build
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1170
      start: 1158
    functionDepth: 3
    functionLinenumber: 1158
    functionLinenumberEnd: 1170
    functionName: Darts::Details::DawgBuilder::finish
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - Darts::Details::DawgBuilder::flush
    - Darts::Details::DawgBuilder::clear
    - build
    - unit
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::finish()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1175,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1177,1
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1184,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1189,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1191,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1194,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1196,1
    - Dst: set_has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1198,1
    - Dst: Darts::Details::DawgBuilder::flush
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1199,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1210,1
    - Dst: Darts::Details::DawgBuilder::append_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1212,1
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1214,1
    - Dst: set_is_state
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1215,1
    - Dst: set_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1217,1
    - Dst: Darts::Details::DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1217,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1218,1
    - Dst: set_child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1219,1
    - Dst: push
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1220,1
    - Dst: set_value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1224,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - key
    - length
    - value
    argTypes:
    - char*
    - std::size_t
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1225
      start: 1172
    functionDepth: 3
    functionLinenumber: 1172
    functionLinenumberEnd: 1225
    functionName: Darts::Details::DawgBuilder::insert
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - set_value
    - Darts::Details::DawgBuilder::label
    - static_cast<uchar_type>
    - Darts::Details::DawgBuilder::append_node
    - push
    - Darts::Details::DawgBuilder::child
    - set_label
    - set_sibling
    - Darts::Details::DawgBuilder::flush
    - set_child
    - set_is_state
    - set_has_sibling
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: "void DawgBuilder::insert(const char *key, std::size_t length,\n    value_type
      value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1228,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1229,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1230,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1231,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1232,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1233,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1227
    functionDepth: 1
    functionLinenumber: 1227
    functionLinenumberEnd: 1236
    functionName: Darts::Details::DawgBuilder::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 11
    functionsReached:
    - Darts::Details::DawgBuilder::clear
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1239,1
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1240,1
    - Dst: pop
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1241,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1243,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1243,1
    - Dst: Darts::Details::DawgBuilder::expand_table
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1244,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1248,1
    - Dst: Darts::Details::DawgBuilder::find_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1253,1
    - Dst: set
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1255,1
    - Dst: Darts::Details::DawgBuilder::append_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1259,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1261,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1262,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1263,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1272,1
    - Dst: Darts::Details::DawgBuilder::free_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1273,1
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1276,1
    - Dst: set_child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1276,1
    - Dst: pop
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1278,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1238
    functionDepth: 3
    functionLinenumber: 1238
    functionLinenumberEnd: 1279
    functionName: Darts::Details::DawgBuilder::flush
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 8
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - set
    - Darts::Details::DawgBuilder::expand_table
    - Darts::Details::DawgBuilder::find_node
    - Darts::Details::DawgBuilder::append_unit
    - Darts::Details::DawgBuilder::free_node
    - Darts::Details::DawgBuilder::size
    - set_child
    - Darts::Details::DawgBuilder::sibling
    - top
    - pop
    - unit
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::flush(id_type id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1282,1
    - Dst: Darts::Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1283,1
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1284,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1286,1
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1287,1
    - Dst: is_state
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1288,1
    - Dst: Darts::Details::DawgBuilder::find_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1281
    functionDepth: 3
    functionLinenumber: 1281
    functionLinenumberEnd: 1294
    functionName: Darts::Details::DawgBuilder::expand_table
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - resize
    - is_state
    - Darts::Details::DawgBuilder::size
    - Darts::Details::DawgBuilder::find_unit
    - static_cast<id_type>
    - Darts::Details::DawgBuilder::clear
    linkageType: ''
    returnType: void
    signature: void DawgBuilder::expand_table()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::hash_unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1297,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1297,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1298,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - id
    - hash_id
    argTypes:
    - id_type
    - id_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1296
    functionDepth: 2
    functionLinenumber: 1296
    functionLinenumberEnd: 1307
    functionName: Darts::Details::DawgBuilder::find_unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::DawgBuilder::hash_unit
    - Darts::Details::DawgBuilder::size
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::find_unit(id_type id, id_type *hash_id) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::hash_node
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1311,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1311,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1312,1
    - Dst: Darts::Details::DawgBuilder::are_equal
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1318,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - node_id
    - hash_id
    argTypes:
    - id_type
    - id_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1323
      start: 1309
    functionDepth: 2
    functionLinenumber: 1309
    functionLinenumberEnd: 1323
    functionName: Darts::Details::DawgBuilder::find_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::DawgBuilder::size
    - Darts::Details::DawgBuilder::are_equal
    - Darts::Details::DawgBuilder::hash_node
    linkageType: ''
    returnType: id_type
    signature: "id_type DawgBuilder::find_node(id_type node_id,\n    id_type *hash_id)
      const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1326,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1327,1
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1328,1
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1333,1
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1337,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1338,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1338,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - node_id
    - unit_id
    argTypes:
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1344
      start: 1325
    functionDepth: 1
    functionLinenumber: 1325
    functionLinenumberEnd: 1344
    functionName: Darts::Details::DawgBuilder::are_equal
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - has_sibling
    - Darts::Details::DawgBuilder::sibling
    - unit
    linkageType: ''
    returnType: bool
    signature: bool DawgBuilder::are_equal(id_type node_id, id_type unit_id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1349,1
    - Dst: Darts::Details::DawgBuilder::hash
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1351,1
    - Dst: has_sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1353,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1358
      start: 1346
    functionDepth: 1
    functionLinenumber: 1346
    functionLinenumberEnd: 1358
    functionName: Darts::Details::DawgBuilder::hash_unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - has_sibling
    - Darts::Details::DawgBuilder::hash
    - unit
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::hash_unit(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1362,1
    - Dst: unit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1363,1
    - Dst: Darts::Details::DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1364,1
    - Dst: Darts::Details::DawgBuilder::hash
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1368
      start: 1360
    functionDepth: 1
    functionLinenumber: 1360
    functionLinenumberEnd: 1368
    functionName: Darts::Details::DawgBuilder::hash_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - Darts::Details::DawgBuilder::label
    - Darts::Details::DawgBuilder::sibling
    - Darts::Details::DawgBuilder::hash
    - unit
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::hash_node(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1371,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1372,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1373,1
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1375,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1370
    functionDepth: 2
    functionLinenumber: 1370
    functionLinenumberEnd: 1376
    functionName: Darts::Details::DawgBuilder::append_unit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 8
    functionsReached:
    - Darts::Details::DawgBuilder::size
    - static_cast<id_type>
    - append
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::append_unit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1380,1
    - Dst: static_cast<id_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1381,1
    - Dst: Darts::Details::DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1381,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1382,1
    - Dst: top
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1384,1
    - Dst: DawgNode
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1385,1
    - Dst: pop
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1378
    functionDepth: 2
    functionLinenumber: 1378
    functionLinenumberEnd: 1389
    functionName: Darts::Details::DawgBuilder::append_node
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 8
    functionsReached:
    - append
    - DawgNode
    - empty
    - Darts::Details::DawgBuilder::size
    - static_cast<id_type>
    - top
    - pop
    linkageType: ''
    returnType: id_type
    signature: id_type DawgBuilder::append_node()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1397
      start: 1397
    functionDepth: 0
    functionLinenumber: 1397
    functionLinenumberEnd: 1397
    functionName: Darts::Details::DoubleArrayBuilderUnit::DoubleArrayBuilderUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilderUnit()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - has_leaf
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1399
    functionDepth: 0
    functionLinenumber: 1399
    functionLinenumberEnd: 1405
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_has_leaf
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_has_leaf(bool has_leaf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1408
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_value
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_value(value_type value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - label
    argTypes:
    - uchar_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1411
      start: 1409
    functionDepth: 0
    functionLinenumber: 1409
    functionLinenumberEnd: 1411
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_label
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_label(uchar_type label)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1414,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - offset
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1422
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1422
    functionName: Darts::Details::DoubleArrayBuilderUnit::set_offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - DARTS_THROW
    linkageType: ''
    returnType: void
    signature: void set_offset(id_type offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1437
      start: 1436
    functionDepth: 0
    functionLinenumber: 1436
    functionLinenumberEnd: 1437
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::DoubleArrayBuilderExtraUnit
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilderExtraUnit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - prev
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1439
    functionDepth: 0
    functionLinenumber: 1439
    functionLinenumberEnd: 1441
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_prev
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_prev(id_type prev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - next
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1442
    functionDepth: 0
    functionLinenumber: 1442
    functionLinenumberEnd: 1444
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_next
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_next(id_type next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_fixed
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1445
    functionDepth: 0
    functionLinenumber: 1445
    functionLinenumberEnd: 1447
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_is_fixed
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_is_fixed(bool is_fixed)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is_used
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1450
      start: 1448
    functionDepth: 0
    functionLinenumber: 1448
    functionLinenumberEnd: 1450
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::set_is_used
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_is_used(bool is_used)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1454
      start: 1452
    functionDepth: 0
    functionLinenumber: 1452
    functionLinenumberEnd: 1454
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::prev
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type prev() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1457
      start: 1455
    functionDepth: 0
    functionLinenumber: 1455
    functionLinenumberEnd: 1457
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::next
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type next() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1458
    functionDepth: 0
    functionLinenumber: 1458
    functionLinenumberEnd: 1460
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::is_fixed
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_fixed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1463
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1463
    functionName: Darts::Details::DoubleArrayBuilderExtraUnit::is_used
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_used() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - progress_func
    argTypes:
    - progress_func_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1482
      start: 1480
    functionDepth: 0
    functionLinenumber: 1480
    functionLinenumberEnd: 1482
    functionName: Darts::Details::DoubleArrayBuilder::DoubleArrayBuilder
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder(progress_func_type progress_func)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1485
      start: 1483
    functionDepth: 0
    functionLinenumber: 1483
    functionLinenumberEnd: 1485
    functionName: ~DoubleArrayBuilder()
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void ~DoubleArrayBuilder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1517
      start: 1515
    functionDepth: 0
    functionLinenumber: 1515
    functionLinenumberEnd: 1517
    functionName: Darts::Details::DoubleArrayBuilder::num_blocks
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 6
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t num_blocks() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1521
      start: 1519
    functionDepth: 0
    functionLinenumber: 1519
    functionLinenumberEnd: 1521
    functionName: '&extras(id_type id) const'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: extra_type
    signature: extra_type &extras(id_type id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1524
      start: 1522
    functionDepth: 0
    functionLinenumber: 1522
    functionLinenumberEnd: 1524
    functionName: '&extras(id_type id)'
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: extra_type
    signature: extra_type &extras(id_type id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Keyset<T>::has_values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1555,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1557,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1558,1
    - Dst: Details::DawgBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1559,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1561,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - keyset
    argTypes:
    - Keyset<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1554
    functionDepth: 3
    functionLinenumber: 1554
    functionLinenumberEnd: 1563
    functionName: Darts::Details::DoubleArrayBuilder::build
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::build_from_keyset
    - Details::DawgBuilder::clear
    - Darts::Details::DoubleArrayBuilder::build_from_dawg
    - Keyset<T>::has_values
    - Darts::Details::DoubleArrayBuilder::build_dawg
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::build(const Keyset<T> &keyset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1568,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1571,1
    - Dst: DoubleArrayUnit::DoubleArrayUnit
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1571,1
    - Dst: reinterpret_cast<unit_type *>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1572,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1573,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - size_ptr
    - buf_ptr
    argTypes:
    - std::size_t*
    - DoubleArrayUnit**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1565
    functionDepth: 0
    functionLinenumber: 1565
    functionLinenumberEnd: 1577
    functionName: Darts::Details::DoubleArrayBuilder::copy
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - reinterpret_cast<unit_type *>
    - size
    - DoubleArrayUnit::DoubleArrayUnit
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::copy(std::size_t *size_ptr,\n    DoubleArrayUnit
      **buf_ptr) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1580,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1581,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1582,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1579
    functionDepth: 1
    functionLinenumber: 1579
    functionLinenumberEnd: 1585
    functionName: Darts::Details::DoubleArrayBuilder::clear
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 10
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::clear
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DawgBuilder*::init
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1590,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1591,1
    - Dst: DawgBuilder*::insert
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: Keyset<T>::lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: Keyset<T>::values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1592,1
    - Dst: progress_func_
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1594,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1594,1
    - Dst: DawgBuilder*::finish
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1597,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - keyset
    - dawg_builder
    argTypes:
    - Keyset<T>
    - DawgBuilder*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1598
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1598
    functionName: Darts::Details::DoubleArrayBuilder::build_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - DawgBuilder*::init
    - Keyset<T>::lengths
    - Keyset<T>::values
    - Keyset<T>::keys
    - DawgBuilder*::insert
    - Keyset<T>::num_keys
    - DawgBuilder*::finish
    - progress_func_
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::build_dawg(const Keyset<T> &keyset,\n    DawgBuilder
      *dawg_builder)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: DawgBuilder::size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1602,1
    - Dst: reserve
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1605,1
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1607,1
    - Dst: DawgBuilder::num_intersections
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1607,1
    - Dst: id_type::id_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1607,1
    - Dst: DawgBuilder::num_intersections
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1608,1
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1612,1
    - Dst: extra_type::extra_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1612,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1614,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1615,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1616,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1617,1
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1619,1
    - Dst: DawgBuilder::root
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1619,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1620,1
    - Dst: DawgBuilder::root
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1620,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_all_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1623,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1625,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1626,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 1
    argNames:
    - dawg
    argTypes:
    - DawgBuilder
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1628
      start: 1600
    functionDepth: 2
    functionLinenumber: 1600
    functionLinenumberEnd: 1628
    functionName: Darts::Details::DoubleArrayBuilder::build_from_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 11
    functionsReached:
    - DawgBuilder::child
    - DawgBuilder::root
    - Darts::Details::DoubleArrayBuilder::reserve_id
    - Darts::Details::DoubleArrayBuilder::build_from_dawg
    - Darts::Details::DoubleArrayBuilder::clear
    - set_label
    - set_offset
    - Darts::Details::DoubleArrayBuilder::fix_all_blocks
    - reset
    - extra_type::extra_type
    - reserve
    - DawgBuilder::size
    - extras
    - id_type::id_type
    - DawgBuilder::num_intersections
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::build_from_dawg(const DawgBuilder &dawg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1632,1
    - Dst: DawgBuilder::is_intersection
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1633,1
    - Dst: DawgBuilder::intersection_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1634,1
    - Dst: DawgBuilder::is_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1639,1
    - Dst: set_has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1640,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1642,1
    - Dst: Darts::Details::DoubleArrayBuilder::arrange_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1648,1
    - Dst: DawgBuilder::is_intersection
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1649,1
    - Dst: DawgBuilder::intersection_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1650,1
    - Dst: DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1654,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_dawg
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1657,1
    - Dst: DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1659,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - dawg
    - dawg_id
    - dic_id
    argTypes:
    - DawgBuilder
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1661
      start: 1630
    functionDepth: 2
    functionLinenumber: 1630
    functionLinenumberEnd: 1661
    functionName: Darts::Details::DoubleArrayBuilder::build_from_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 12
    functionsReached:
    - DawgBuilder::child
    - DawgBuilder::intersection_id
    - Darts::Details::DoubleArrayBuilder::build_from_dawg
    - Darts::Details::DoubleArrayBuilder::arrange_from_dawg
    - DawgBuilder::sibling
    - DawgBuilder::is_intersection
    - set_offset
    - DawgBuilder::label
    - set_has_leaf
    - DawgBuilder::is_leaf
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::build_from_dawg(const DawgBuilder &dawg,\n
      \   id_type dawg_id, id_type dic_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1665,1
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1667,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1669,1
    - Dst: DawgBuilder::label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1669,1
    - Dst: DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1670,1
    - Dst: Darts::Details::DoubleArrayBuilder::find_valid_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1673,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1674,1
    - Dst: DawgBuilder::child
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1676,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1677,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1679,1
    - Dst: DawgBuilder::is_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1681,1
    - Dst: set_has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1682,1
    - Dst: set_value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1683,1
    - Dst: DawgBuilder::value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1683,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1685,1
    - Dst: DawgBuilder::sibling
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1688,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1690,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - dawg
    - dawg_id
    - dic_id
    argTypes:
    - DawgBuilder
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1693
      start: 1663
    functionDepth: 2
    functionLinenumber: 1663
    functionLinenumberEnd: 1693
    functionName: Darts::Details::DoubleArrayBuilder::arrange_from_dawg
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - DawgBuilder::child
    - resize
    - set_value
    - size
    - set_label
    - DawgBuilder::sibling
    - set_offset
    - append
    - Darts::Details::DoubleArrayBuilder::find_valid_offset
    - DawgBuilder::label
    - DawgBuilder::value
    - set_has_leaf
    - DawgBuilder::is_leaf
    - extras
    - Darts::Details::DoubleArrayBuilder::reserve_id
    linkageType: ''
    returnType: id_type
    signature: "id_type DoubleArrayBuilder::arrange_from_dawg(const DawgBuilder &dawg,\n
      \   id_type dawg_id, id_type dic_id)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1698,1
    - Dst: reserve
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1701,1
    - Dst: reset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1703,1
    - Dst: extra_type::extra_type
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1703,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1705,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1706,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1707,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1708,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1710,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1711,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1711,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_all_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1714,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1716,1
    - Dst: Darts::Details::DoubleArrayBuilder::clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1717,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - keyset
    argTypes:
    - Keyset<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1696
    functionDepth: 2
    functionLinenumber: 1696
    functionLinenumberEnd: 1718
    functionName: Darts::Details::DoubleArrayBuilder::build_from_keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 11
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::build_from_keyset
    - Darts::Details::DoubleArrayBuilder::clear
    - set_label
    - set_offset
    - Darts::Details::DoubleArrayBuilder::fix_all_blocks
    - Keyset<T>::num_keys
    - reset
    - extra_type::extra_type
    - reserve
    - extras
    - Darts::Details::DoubleArrayBuilder::reserve_id
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::build_from_keyset(const Keyset<T> &keyset)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DoubleArrayBuilder::arrange_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1723,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1726,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1736,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1738,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1740,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1743,1
    - Dst: Darts::Details::DoubleArrayBuilder::build_from_keyset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1746,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 5
    argNames:
    - keyset
    - begin
    - end
    - depth
    - dic_id
    argTypes:
    - Keyset<T>
    - std::size_t
    - std::size_t
    - std::size_t
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1721
    functionDepth: 2
    functionLinenumber: 1721
    functionLinenumberEnd: 1747
    functionName: Darts::Details::DoubleArrayBuilder::build_from_keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 12
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::build_from_keyset
    - Darts::Details::DoubleArrayBuilder::arrange_from_keyset
    - Keyset<T>::keys
    linkageType: ''
    returnType: void
    signature: "void DoubleArrayBuilder::build_from_keyset(const Keyset<T> &keyset,\n
      \   std::size_t begin, std::size_t end, std::size_t depth, id_type dic_id)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1752,1
    - Dst: Keyset<T>::keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1756,1
    - Dst: Keyset<T>::has_lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1758,1
    - Dst: Keyset<T>::lengths
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1758,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1759,1
    - Dst: Keyset<T>::values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1761,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1762,1
    - Dst: Keyset<T>::values
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1766,1
    - Dst: progress_func_
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1769,1
    - Dst: Keyset<T>::num_keys
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1769,1
    - Dst: empty
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1773,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1774,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1775,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1776,1
    - Dst: DARTS_THROW
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1777,1
    - Dst: append
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1779,1
    - Dst: Darts::Details::DoubleArrayBuilder::find_valid_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1783,1
    - Dst: set_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1784,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1786,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1788,1
    - Dst: set_has_leaf
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1790,1
    - Dst: set_value
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1791,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1793,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1796,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 5
    argNames:
    - keyset
    - begin
    - end
    - depth
    - dic_id
    argTypes:
    - Keyset<T>
    - std::size_t
    - std::size_t
    - std::size_t
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1799
      start: 1750
    functionDepth: 2
    functionLinenumber: 1750
    functionLinenumberEnd: 1799
    functionName: Darts::Details::DoubleArrayBuilder::arrange_from_keyset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - set_value
    - resize
    - Keyset<T>::has_lengths
    - Keyset<T>::lengths
    - size
    - Keyset<T>::values
    - set_label
    - Keyset<T>::keys
    - append
    - Darts::Details::DoubleArrayBuilder::find_valid_offset
    - set_offset
    - empty
    - Keyset<T>::num_keys
    - set_has_leaf
    - extras
    - progress_func_
    - Darts::Details::DoubleArrayBuilder::reserve_id
    - DARTS_THROW
    linkageType: ''
    returnType: id_type
    signature: "id_type DoubleArrayBuilder::arrange_from_keyset(const Keyset<T> &keyset,\n
      \   std::size_t begin, std::size_t end, std::size_t depth, id_type dic_id)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1802,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1803,1
    - Dst: Darts::Details::DoubleArrayBuilder::is_valid_offset
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1809,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1812,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1815,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1801
    functionDepth: 1
    functionLinenumber: 1801
    functionLinenumberEnd: 1816
    functionName: Darts::Details::DoubleArrayBuilder::find_valid_offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 8
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::is_valid_offset
    - extras
    - size
    linkageType: ''
    returnType: id_type
    signature: id_type DoubleArrayBuilder::find_valid_offset(id_type id) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1820,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1829,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1830,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - id
    - offset
    argTypes:
    - id_type
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1836
      start: 1818
    functionDepth: 0
    functionLinenumber: 1818
    functionLinenumberEnd: 1836
    functionName: Darts::Details::DoubleArrayBuilder::is_valid_offset
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - extras
    - size
    linkageType: ''
    returnType: bool
    signature: "bool DoubleArrayBuilder::is_valid_offset(id_type id,\n    id_type
      offset) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1839,1
    - Dst: Darts::Details::DoubleArrayBuilder::expand_units
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1840,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1844,1
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1846,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1849,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1849,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1849,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1850,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1850,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1850,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1851,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1852
      start: 1838
    functionDepth: 2
    functionLinenumber: 1838
    functionLinenumberEnd: 1852
    functionName: Darts::Details::DoubleArrayBuilder::reserve_id
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 19
    functionsReached:
    - extras
    - Darts::Details::DoubleArrayBuilder::expand_units
    - size
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::reserve_id(id_type id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1855,1
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1856,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_block
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1862,1
    - Dst: resize
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1865,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1869,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1870,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1875,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1876,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1879,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1880,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1882,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1882,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1883,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1885,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1885,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1886,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1887
      start: 1854
    functionDepth: 3
    functionLinenumber: 1854
    functionLinenumberEnd: 1887
    functionName: Darts::Details::DoubleArrayBuilder::expand_units
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 4
    functionsReached:
    - resize
    - size
    - Darts::Details::DoubleArrayBuilder::num_blocks
    - Darts::Details::DoubleArrayBuilder::fix_block
    - extras
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::expand_units()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1891,1
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1892,1
    - Dst: Darts::Details::DoubleArrayBuilder::num_blocks
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1894,1
    - Dst: Darts::Details::DoubleArrayBuilder::fix_block
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1897,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1899
      start: 1889
    functionDepth: 3
    functionLinenumber: 1889
    functionLinenumberEnd: 1899
    functionName: Darts::Details::DoubleArrayBuilder::fix_all_blocks
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 8
    functionsReached:
    - Darts::Details::DoubleArrayBuilder::num_blocks
    - Darts::Details::DoubleArrayBuilder::fix_block
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::fix_all_blocks()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1907,1
    - Dst: extras
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1914,1
    - Dst: Darts::Details::DoubleArrayBuilder::reserve_id
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1915,1
    - Dst: set_label
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1916,1
    - Dst: static_cast<uchar_type>
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1916,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - block_id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1901
    functionDepth: 2
    functionLinenumber: 1901
    functionLinenumberEnd: 1919
    functionName: Darts::Details::DoubleArrayBuilder::fix_block
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 8
    functionsReached:
    - extras
    - set_label
    - Darts::Details::DoubleArrayBuilder::reserve_id
    - static_cast<uchar_type>
    linkageType: ''
    returnType: void
    signature: void DoubleArrayBuilder::fix_block(id_type block_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Details::DoubleArrayBuilder::build
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1934,1
    - Dst: Details::DoubleArrayBuilder::copy
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1938,1
    - Dst: clear
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1940,1
    - Dst: progress_func
      Src: /src/sentencepiece/third_party/darts_clone/darts.h:1947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - num_keys
    - keys
    - lengths
    - values
    - progress_func
    argTypes:
    - std::size_t
    - key_type**
    - std::size_t*
    - value_type*
    - Details::progress_func_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1951
      start: 1928
    functionDepth: 0
    functionLinenumber: 1928
    functionLinenumberEnd: 1951
    functionName: Darts::DoubleArrayImpl<A, B, T, C>::build
    functionSourceFile: /src/sentencepiece/third_party/darts_clone/darts.h
    functionUses: 0
    functionsReached:
    - Details::DoubleArrayBuilder::build
    - clear
    - progress_func
    - Details::DoubleArrayBuilder::copy
    linkageType: ''
    returnType: int
    signature: "int DoubleArrayImpl<A, B, T, C>::build(std::size_t num_keys,\n    const
      key_type * const *keys, const std::size_t *lengths,\n    const value_type *values,
      Details::progress_func_type progress_func)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: UNUSED
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: UNUSED(_x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _c
    - ','
    - _s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: BUCKETS_INDEX2
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKETS_INDEX2(_c, _s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - _c
    - ','
    - _s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: BUCKETS_INDEX4
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BUCKETS_INDEX4(_c, _s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: libsais_prefetchr
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libsais_prefetchr(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: libsais_prefetchw
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libsais_prefetchw(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: libsais_prefetchr
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libsais_prefetchr(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: libsais_prefetchw
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libsais_prefetchw(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: libsais_prefetchr
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libsais_prefetchr(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: libsais_prefetchw
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libsais_prefetchw(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 139
    functionName: libsais_prefetchr
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libsais_prefetchr(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - address
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: libsais_prefetchw
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libsais_prefetchw(address)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 173
    functionName: libsais_bswap16
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libsais_bswap16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 175
    functionName: libsais_bswap16
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libsais_bswap16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 177
    functionName: libsais_bswap16
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libsais_bswap16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: libsais_bswap16
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: libsais_bswap16(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - address
    - alignment
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 187
    functionName: libsais_align_up
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * libsais_align_up(const void* address, size_t alignment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/sentencepiece/third_party/libsais/libsais.c:190,1
    - Dst: libsais_align_up
      Src: /src/sentencepiece/third_party/libsais/libsais.c:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - size
    - alignment
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 201
    functionName: libsais_alloc_aligned
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_align_up
    - malloc
    linkageType: ''
    returnType: void
    signature: void * libsais_alloc_aligned(size_t size, size_t alignment)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/sentencepiece/third_party/libsais/libsais.c:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - aligned_address
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: libsais_free_aligned
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void libsais_free_aligned(void* aligned_address)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libsais_alloc_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:211,1
    - Dst: libsais_alloc_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:213,1
    - Dst: libsais_alloc_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:216,1
    - Dst: libsais_free_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:233,1
    - Dst: libsais_free_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:234,1
    - Dst: libsais_free_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - threads
    argTypes:
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 209
    functionDepth: 2
    functionLinenumber: 209
    functionLinenumberEnd: 237
    functionName: libsais_alloc_thread_state
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_alloc_aligned
    - libsais_free_aligned
    linkageType: ''
    returnType: LIBSAIS_THREAD_STATE
    signature: LIBSAIS_THREAD_STATE * libsais_alloc_thread_state(sa_sint_t threads)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libsais_free_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:241,1
    - Dst: libsais_free_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:242,1
    - Dst: libsais_free_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - thread_state
    argTypes:
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 245
    functionName: libsais_free_thread_state
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_free_aligned
    linkageType: ''
    returnType: void
    signature: void libsais_free_thread_state(LIBSAIS_THREAD_STATE* thread_state)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libsais_alloc_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:249,1
    - Dst: libsais_alloc_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:250,1
    - Dst: libsais_alloc_thread_state
      Src: /src/sentencepiece/third_party/libsais/libsais.c:253,1
    - Dst: libsais_free_thread_state
      Src: /src/sentencepiece/third_party/libsais/libsais.c:264,1
    - Dst: libsais_free_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:265,1
    - Dst: libsais_free_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:266,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - threads
    argTypes:
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 247
    functionDepth: 3
    functionLinenumber: 247
    functionLinenumberEnd: 268
    functionName: libsais_create_ctx_main
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_alloc_aligned
    - libsais_free_aligned
    - libsais_alloc_thread_state
    - libsais_free_thread_state
    linkageType: ''
    returnType: LIBSAIS_CONTEXT
    signature: LIBSAIS_CONTEXT * libsais_create_ctx_main(sa_sint_t threads)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libsais_free_thread_state
      Src: /src/sentencepiece/third_party/libsais/libsais.c:272,1
    - Dst: libsais_free_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:273,1
    - Dst: libsais_free_aligned
      Src: /src/sentencepiece/third_party/libsais/libsais.c:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - LIBSAIS_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 276
    functionName: libsais_free_ctx_main
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_free_aligned
    - libsais_free_thread_state
    linkageType: ''
    returnType: void
    signature: void libsais_free_ctx_main(LIBSAIS_CONTEXT* ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:566,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 6
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - m
    - omp_block_start
    - omp_block_size
    argTypes:
    - uint8_t*
    - sa_sint_t*
    - sa_sint_t
    - fast_sint_t
    - fast_sint_t
    - fast_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 597
    functionName: libsais_gather_lms_suffixes_8u
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchr
    linkageType: ''
    returnType: void
    signature: "void libsais_gather_lms_suffixes_8u(const uint8_t* RESTRICT T,\n                                           sa_sint_t*
      RESTRICT SA, sa_sint_t n,\n                                           fast_sint_t
      m,\n                                           fast_sint_t omp_block_start,\n
      \                                          fast_sint_t omp_block_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: omp_get_thread_num
      Src: /src/sentencepiece/third_party/libsais/libsais.c:608,1
    - Dst: omp_get_num_threads
      Src: /src/sentencepiece/third_party/libsais/libsais.c:609,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:611,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:612,1
    - Dst: libsais_gather_lms_suffixes_8u
      Src: /src/sentencepiece/third_party/libsais/libsais.c:624,1
    - Dst: libsais_gather_lms_suffixes_8u
      Src: /src/sentencepiece/third_party/libsais/libsais.c:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - threads
    - thread_state
    argTypes:
    - uint8_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 646
    functionName: libsais_gather_lms_suffixes_8u_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_gather_lms_suffixes_8u
    - omp_get_num_threads
    - UNUSED
    - omp_get_thread_num
    linkageType: ''
    returnType: void
    signature: "void libsais_gather_lms_suffixes_8u_omp(\n    const uint8_t* RESTRICT
      T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t threads, LIBSAIS_THREAD_STATE*
      RESTRICT thread_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:661,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 3
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 691
    functionName: libsais_gather_lms_suffixes_32s
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchr
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_gather_lms_suffixes_32s(const sa_sint_t* RESTRICT
      T,\n                                                 sa_sint_t* RESTRICT SA,\n
      \                                                sa_sint_t n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 3
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 735
    functionName: libsais_gather_compacted_lms_suffixes_32s
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchr
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_gather_compacted_lms_suffixes_32s(\n    const sa_sint_t*
      RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sentencepiece/third_party/libsais/libsais.c:744,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:753,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:755,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:756,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:757,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:758,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:759,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:760,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:761,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:762,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:766,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:770,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:774,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:778,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:786,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 4
    argNames:
    - RESTRICT
    - n
    - k
    - RESTRICT
    argTypes:
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 790
    functionName: libsais_count_lms_suffixes_32s_4k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchw
    - libsais_prefetchr
    - BUCKETS_INDEX4
    - memset
    linkageType: ''
    returnType: void
    signature: "void libsais_count_lms_suffixes_32s_4k(const sa_sint_t* RESTRICT T,\n
      \                                             sa_sint_t n, sa_sint_t k,\n                                              sa_sint_t*
      RESTRICT buckets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sentencepiece/third_party/libsais/libsais.c:799,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:808,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:810,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:811,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:812,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:813,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:814,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:815,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:816,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:817,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:821,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:825,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:829,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:833,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:841,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:844,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 4
    argNames:
    - RESTRICT
    - n
    - k
    - RESTRICT
    argTypes:
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 845
    functionName: libsais_count_lms_suffixes_32s_2k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchw
    - libsais_prefetchr
    - memset
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: void
    signature: "void libsais_count_lms_suffixes_32s_2k(const sa_sint_t* RESTRICT T,\n
      \                                             sa_sint_t n, sa_sint_t k,\n                                              sa_sint_t*
      RESTRICT buckets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sentencepiece/third_party/libsais/libsais.c:854,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:863,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:865,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:866,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:867,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:868,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:869,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:870,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:871,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:872,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:877,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:882,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:887,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:892,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:901,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 4
    argNames:
    - RESTRICT
    - n
    - k
    - RESTRICT
    argTypes:
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 906
    functionName: libsais_count_compacted_lms_suffixes_32s_2k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchw
    - libsais_prefetchr
    - memset
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: void
    signature: "void libsais_count_compacted_lms_suffixes_32s_2k(\n    const sa_sint_t*
      RESTRICT T, sa_sint_t n, sa_sint_t k,\n    sa_sint_t* RESTRICT buckets)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sentencepiece/third_party/libsais/libsais.c:914,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:930,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:936,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:942,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:948,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:954,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:964,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:971,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 45
    argCount: 6
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - RESTRICT
    - omp_block_start
    - omp_block_size
    argTypes:
    - uint8_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t*
    - fast_sint_t
    - fast_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 910
    functionDepth: 1
    functionLinenumber: 910
    functionLinenumberEnd: 975
    functionName: libsais_count_and_gather_lms_suffixes_8u
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchr
    - BUCKETS_INDEX4
    - memset
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_count_and_gather_lms_suffixes_8u(\n    const uint8_t*
      RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t* RESTRICT buckets,
      fast_sint_t omp_block_start,\n    fast_sint_t omp_block_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: omp_get_thread_num
      Src: /src/sentencepiece/third_party/libsais/libsais.c:989,1
    - Dst: omp_get_num_threads
      Src: /src/sentencepiece/third_party/libsais/libsais.c:990,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:992,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:993,1
    - Dst: libsais_count_and_gather_lms_suffixes_8u
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1005,1
    - Dst: libsais_count_and_gather_lms_suffixes_8u
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1014,1
    - Dst: memset
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1028,1
    - Dst: memcpy
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1035,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 6
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - RESTRICT
    - threads
    - thread_state
    argTypes:
    - uint8_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 977
    functionDepth: 2
    functionLinenumber: 977
    functionLinenumberEnd: 1057
    functionName: libsais_count_and_gather_lms_suffixes_8u_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - memset
    - UNUSED
    - libsais_count_and_gather_lms_suffixes_8u
    - omp_get_num_threads
    - memcpy
    - omp_get_thread_num
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_count_and_gather_lms_suffixes_8u_omp(\n    const
      uint8_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t* RESTRICT
      buckets, sa_sint_t threads,\n    LIBSAIS_THREAD_STATE* RESTRICT thread_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1063,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1080,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1082,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1083,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1084,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1085,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1086,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1087,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1088,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1089,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1095,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1101,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1107,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1113,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1123,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1130,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 7
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - k
    - RESTRICT
    - omp_block_start
    - omp_block_size
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - fast_sint_t
    - fast_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1134
    functionName: libsais_count_and_gather_lms_suffixes_32s_4k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchw
    - libsais_prefetchr
    - BUCKETS_INDEX4
    - memset
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_count_and_gather_lms_suffixes_32s_4k(\n    const
      sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t k,
      sa_sint_t* RESTRICT buckets, fast_sint_t omp_block_start,\n    fast_sint_t omp_block_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1140,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1157,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1159,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1160,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1161,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1162,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1163,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1164,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1165,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1166,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1172,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1178,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1184,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1190,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1200,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1207,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 49
    argCount: 7
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - k
    - RESTRICT
    - omp_block_start
    - omp_block_size
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - fast_sint_t
    - fast_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1211
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1211
    functionName: libsais_count_and_gather_lms_suffixes_32s_2k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchw
    - libsais_prefetchr
    - memset
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_count_and_gather_lms_suffixes_32s_2k(\n    const
      sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t k,
      sa_sint_t* RESTRICT buckets, fast_sint_t omp_block_start,\n    fast_sint_t omp_block_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1217,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1234,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1236,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1236,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1238,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1238,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1240,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1240,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1242,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1242,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1250,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1257,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1264,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1271,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1282,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 55
    argCount: 7
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - k
    - RESTRICT
    - omp_block_start
    - omp_block_size
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - fast_sint_t
    - fast_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1213
    functionDepth: 1
    functionLinenumber: 1213
    functionLinenumberEnd: 1294
    functionName: libsais_count_and_gather_compacted_lms_suffixes_32s_2k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchw
    - libsais_prefetchr
    - memset
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_count_and_gather_compacted_lms_suffixes_32s_2k(\n
      \   const sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t
      k, sa_sint_t* RESTRICT buckets, fast_sint_t omp_block_start,\n    fast_sint_t
      omp_block_size)"
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - free_space
    - bucket_size
    - num_buckets
    argTypes:
    - fast_sint_t
    - fast_sint_t
    - fast_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1311
    functionName: libsais_get_bucket_stride
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fast_sint_t
    signature: "fast_sint_t libsais_get_bucket_stride(fast_sint_t free_space,\n                                             fast_sint_t
      bucket_size,\n                                             fast_sint_t num_buckets)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: omp_get_thread_num
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1324,1
    - Dst: omp_get_num_threads
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1325,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1327,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1328,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1329,1
    - Dst: libsais_count_and_gather_lms_suffixes_32s_4k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1341,1
    - Dst: libsais_get_bucket_stride
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1350,1
    - Dst: libsais_count_and_gather_lms_suffixes_32s_4k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1356,1
    - Dst: memcpy
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1369,1
    - Dst: libsais_accumulate_counts_s32
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1383,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 8
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - k
    - RESTRICT
    - local_buckets
    - threads
    - thread_state
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1313
    functionDepth: 2
    functionLinenumber: 1313
    functionLinenumberEnd: 1391
    functionName: libsais_count_and_gather_lms_suffixes_32s_4k_fs_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - UNUSED
    - libsais_accumulate_counts_s32
    - omp_get_num_threads
    - libsais_get_bucket_stride
    - memcpy
    - libsais_count_and_gather_lms_suffixes_32s_4k
    - omp_get_thread_num
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_count_and_gather_lms_suffixes_32s_4k_fs_omp(\n    const
      sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t k,
      sa_sint_t* RESTRICT buckets, sa_sint_t local_buckets,\n    sa_sint_t threads,
      LIBSAIS_THREAD_STATE* RESTRICT thread_state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: omp_get_thread_num
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1404,1
    - Dst: omp_get_num_threads
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1405,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1407,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1408,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1409,1
    - Dst: libsais_count_and_gather_lms_suffixes_32s_2k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1421,1
    - Dst: libsais_get_bucket_stride
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1430,1
    - Dst: libsais_count_and_gather_lms_suffixes_32s_2k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1436,1
    - Dst: memcpy
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1449,1
    - Dst: libsais_accumulate_counts_s32
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 8
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - k
    - RESTRICT
    - local_buckets
    - threads
    - thread_state
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1471
      start: 1393
    functionDepth: 2
    functionLinenumber: 1393
    functionLinenumberEnd: 1471
    functionName: libsais_count_and_gather_lms_suffixes_32s_2k_fs_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - UNUSED
    - libsais_accumulate_counts_s32
    - omp_get_num_threads
    - libsais_get_bucket_stride
    - memcpy
    - libsais_count_and_gather_lms_suffixes_32s_2k
    - omp_get_thread_num
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_count_and_gather_lms_suffixes_32s_2k_fs_omp(\n    const
      sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t k,
      sa_sint_t* RESTRICT buckets, sa_sint_t local_buckets,\n    sa_sint_t threads,
      LIBSAIS_THREAD_STATE* RESTRICT thread_state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: omp_get_thread_num
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1482,1
    - Dst: omp_get_num_threads
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1483,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1485,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1486,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1487,1
    - Dst: libsais_count_and_gather_compacted_lms_suffixes_32s_2k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1499,1
    - Dst: libsais_get_bucket_stride
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1509,1
    - Dst: libsais_count_and_gather_compacted_lms_suffixes_32s_2k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1515,1
    - Dst: memcpy
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1529,1
    - Dst: libsais_accumulate_counts_s32
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 8
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - k
    - RESTRICT
    - local_buckets
    - threads
    - thread_state
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1550
      start: 1473
    functionDepth: 2
    functionLinenumber: 1473
    functionLinenumberEnd: 1550
    functionName: libsais_count_and_gather_compacted_lms_suffixes_32s_2k_fs_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - UNUSED
    - libsais_count_and_gather_compacted_lms_suffixes_32s_2k
    - libsais_accumulate_counts_s32
    - omp_get_num_threads
    - libsais_get_bucket_stride
    - memcpy
    - omp_get_thread_num
    linkageType: ''
    returnType: void
    signature: "void libsais_count_and_gather_compacted_lms_suffixes_32s_2k_fs_omp(\n
      \   const sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t
      k, sa_sint_t* RESTRICT buckets, sa_sint_t local_buckets,\n    sa_sint_t threads,
      LIBSAIS_THREAD_STATE* RESTRICT thread_state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: omp_get_thread_num
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1564,1
    - Dst: omp_get_num_threads
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1565,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1567,1
    - Dst: libsais_count_and_gather_lms_suffixes_32s_4k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1572,1
    - Dst: libsais_count_lms_suffixes_32s_4k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1577,1
    - Dst: libsais_gather_lms_suffixes_32s
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - k
    - RESTRICT
    - threads
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1554
    functionDepth: 2
    functionLinenumber: 1554
    functionLinenumberEnd: 1585
    functionName: libsais_count_and_gather_lms_suffixes_32s_4k_nofs_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - UNUSED
    - libsais_gather_lms_suffixes_32s
    - omp_get_num_threads
    - libsais_count_and_gather_lms_suffixes_32s_4k
    - libsais_count_lms_suffixes_32s_4k
    - omp_get_thread_num
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_count_and_gather_lms_suffixes_32s_4k_nofs_omp(\n
      \   const sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t
      k, sa_sint_t* RESTRICT buckets, sa_sint_t threads)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: omp_get_thread_num
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1597,1
    - Dst: omp_get_num_threads
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1598,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1600,1
    - Dst: libsais_count_and_gather_lms_suffixes_32s_2k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1605,1
    - Dst: libsais_count_lms_suffixes_32s_2k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1610,1
    - Dst: libsais_gather_lms_suffixes_32s
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - k
    - RESTRICT
    - threads
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1587
    functionDepth: 2
    functionLinenumber: 1587
    functionLinenumberEnd: 1618
    functionName: libsais_count_and_gather_lms_suffixes_32s_2k_nofs_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - UNUSED
    - libsais_count_lms_suffixes_32s_2k
    - libsais_gather_lms_suffixes_32s
    - omp_get_num_threads
    - libsais_count_and_gather_lms_suffixes_32s_2k
    - omp_get_thread_num
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_count_and_gather_lms_suffixes_32s_2k_nofs_omp(\n
      \   const sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t
      k, sa_sint_t* RESTRICT buckets, sa_sint_t threads)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: omp_get_thread_num
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1631,1
    - Dst: omp_get_num_threads
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1632,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1634,1
    - Dst: libsais_count_and_gather_compacted_lms_suffixes_32s_2k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1639,1
    - Dst: libsais_count_compacted_lms_suffixes_32s_2k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1644,1
    - Dst: libsais_gather_compacted_lms_suffixes_32s
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - k
    - RESTRICT
    - threads
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1652
      start: 1620
    functionDepth: 2
    functionLinenumber: 1620
    functionLinenumberEnd: 1652
    functionName: libsais_count_and_gather_compacted_lms_suffixes_32s_2k_nofs_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_gather_compacted_lms_suffixes_32s
    - UNUSED
    - libsais_count_and_gather_compacted_lms_suffixes_32s_2k
    - omp_get_num_threads
    - libsais_count_compacted_lms_suffixes_32s_2k
    - omp_get_thread_num
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_count_and_gather_compacted_lms_suffixes_32s_2k_nofs_omp(\n
      \   const sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t
      k, sa_sint_t* RESTRICT buckets, sa_sint_t threads)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libsais_count_and_gather_lms_suffixes_32s_4k_fs_omp
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1673,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1678,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1679,1
    - Dst: libsais_count_and_gather_lms_suffixes_32s_4k_nofs_omp
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1682,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 8
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - k
    - RESTRICT
    - local_buckets
    - threads
    - thread_state
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1687
      start: 1654
    functionDepth: 3
    functionLinenumber: 1654
    functionLinenumberEnd: 1687
    functionName: libsais_count_and_gather_lms_suffixes_32s_4k_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - UNUSED
    - libsais_count_and_gather_lms_suffixes_32s_4k_nofs_omp
    - libsais_count_and_gather_lms_suffixes_32s_4k_fs_omp
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_count_and_gather_lms_suffixes_32s_4k_omp(\n    const
      sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t k,
      sa_sint_t* RESTRICT buckets, sa_sint_t local_buckets,\n    sa_sint_t threads,
      LIBSAIS_THREAD_STATE* RESTRICT thread_state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libsais_count_and_gather_lms_suffixes_32s_2k_fs_omp
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1708,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1713,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1714,1
    - Dst: libsais_count_and_gather_lms_suffixes_32s_2k_nofs_omp
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1717,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 8
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - k
    - RESTRICT
    - local_buckets
    - threads
    - thread_state
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1689
    functionDepth: 3
    functionLinenumber: 1689
    functionLinenumberEnd: 1722
    functionName: libsais_count_and_gather_lms_suffixes_32s_2k_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_count_and_gather_lms_suffixes_32s_2k_fs_omp
    - libsais_count_and_gather_lms_suffixes_32s_2k_nofs_omp
    - UNUSED
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_count_and_gather_lms_suffixes_32s_2k_omp(\n    const
      sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t k,
      sa_sint_t* RESTRICT buckets, sa_sint_t local_buckets,\n    sa_sint_t threads,
      LIBSAIS_THREAD_STATE* RESTRICT thread_state)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: libsais_count_and_gather_compacted_lms_suffixes_32s_2k_fs_omp
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1742,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1747,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1748,1
    - Dst: libsais_count_and_gather_compacted_lms_suffixes_32s_2k_nofs_omp
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1751,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 8
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - k
    - RESTRICT
    - local_buckets
    - threads
    - thread_state
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1724
    functionDepth: 3
    functionLinenumber: 1724
    functionLinenumberEnd: 1754
    functionName: libsais_count_and_gather_compacted_lms_suffixes_32s_2k_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_count_and_gather_compacted_lms_suffixes_32s_2k_nofs_omp
    - libsais_count_and_gather_compacted_lms_suffixes_32s_2k_fs_omp
    - UNUSED
    linkageType: ''
    returnType: void
    signature: "void libsais_count_and_gather_compacted_lms_suffixes_32s_2k_omp(\n
      \   const sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t
      k, sa_sint_t* RESTRICT buckets, sa_sint_t local_buckets,\n    sa_sint_t threads,
      LIBSAIS_THREAD_STATE* RESTRICT thread_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1761,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1765,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - RESTRICT
    - n
    - k
    - RESTRICT
    argTypes:
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1780
      start: 1756
    functionDepth: 1
    functionLinenumber: 1756
    functionLinenumberEnd: 1780
    functionName: libsais_count_suffixes_32s
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchr
    - memset
    linkageType: ''
    returnType: void
    signature: "void libsais_count_suffixes_32s(const sa_sint_t* RESTRICT T, sa_sint_t
      n,\n                                       sa_sint_t k,\n                                       sa_sint_t*
      RESTRICT buckets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1834,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1835,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1836,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1839,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1839,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1840,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - k
    - RESTRICT
    argTypes:
    - sa_sint_t
    - sa_sint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1843
      start: 1827
    functionDepth: 1
    functionLinenumber: 1827
    functionLinenumberEnd: 1843
    functionName: libsais_initialize_buckets_start_and_end_32s_6k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - BUCKETS_INDEX4
    linkageType: ''
    returnType: void
    signature: "void libsais_initialize_buckets_start_and_end_32s_6k(\n    sa_sint_t
      k, sa_sint_t* RESTRICT buckets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1852,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1853,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1854,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1857,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1857,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - k
    - RESTRICT
    argTypes:
    - sa_sint_t
    - sa_sint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1860
      start: 1845
    functionDepth: 1
    functionLinenumber: 1845
    functionLinenumberEnd: 1860
    functionName: libsais_initialize_buckets_start_and_end_32s_4k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: void
    signature: "void libsais_initialize_buckets_start_and_end_32s_4k(\n    sa_sint_t
      k, sa_sint_t* RESTRICT buckets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1866,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1866,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1867,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1869,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1869,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - k
    - RESTRICT
    argTypes:
    - sa_sint_t
    - sa_sint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1862
    functionDepth: 1
    functionLinenumber: 1862
    functionLinenumberEnd: 1872
    functionName: libsais_initialize_buckets_end_32s_2k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: void
    signature: "void libsais_initialize_buckets_end_32s_2k(sa_sint_t k,\n                                                  sa_sint_t*
      RESTRICT buckets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1877,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1878,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1879,1
    - Dst: memcpy
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - k
    - RESTRICT
    argTypes:
    - sa_sint_t
    - sa_sint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1874
    functionDepth: 1
    functionLinenumber: 1874
    functionLinenumberEnd: 1885
    functionName: libsais_initialize_buckets_start_and_end_32s_2k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - BUCKETS_INDEX2
    - memcpy
    linkageType: ''
    returnType: void
    signature: "void libsais_initialize_buckets_start_and_end_32s_2k(\n    sa_sint_t
      k, sa_sint_t* RESTRICT buckets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - k
    - RESTRICT
    argTypes:
    - sa_sint_t
    - sa_sint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1896
      start: 1887
    functionDepth: 0
    functionLinenumber: 1887
    functionLinenumberEnd: 1896
    functionName: libsais_initialize_buckets_start_32s_1k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libsais_initialize_buckets_start_32s_1k(\n    sa_sint_t k, sa_sint_t*
      RESTRICT buckets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - k
    - RESTRICT
    argTypes:
    - sa_sint_t
    - sa_sint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1906
      start: 1898
    functionDepth: 0
    functionLinenumber: 1898
    functionLinenumberEnd: 1906
    functionName: libsais_initialize_buckets_end_32s_1k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void libsais_initialize_buckets_end_32s_1k(sa_sint_t k,\n                                                  sa_sint_t*
      RESTRICT buckets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1922,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1925,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1933,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1933,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1934,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1935,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1935,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1936,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1938,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - RESTRICT
    - RESTRICT
    - first_lms_suffix
    argTypes:
    - uint8_t*
    - sa_sint_t*
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1944
      start: 1908
    functionDepth: 1
    functionLinenumber: 1908
    functionLinenumberEnd: 1944
    functionName: libsais_initialize_buckets_for_lms_suffixes_radix_sort_8u
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - BUCKETS_INDEX4
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_initialize_buckets_for_lms_suffixes_radix_sort_8u(\n
      \   const uint8_t* RESTRICT T, sa_sint_t* RESTRICT buckets,\n    sa_sint_t first_lms_suffix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1949,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1950,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1954,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1954,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1955,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1957,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1957,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1958,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1960,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1961,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - RESTRICT
    - k
    - RESTRICT
    - first_lms_suffix
    argTypes:
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1963
      start: 1946
    functionDepth: 1
    functionLinenumber: 1946
    functionLinenumberEnd: 1963
    functionName: libsais_initialize_buckets_for_lms_suffixes_radix_sort_32s_2k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: void
    signature: "void libsais_initialize_buckets_for_lms_suffixes_radix_sort_32s_2k(\n
      \   const sa_sint_t* RESTRICT T, sa_sint_t k, sa_sint_t* RESTRICT buckets,\n
      \   sa_sint_t first_lms_suffix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1979,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1982,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1990,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1991,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1992,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1994,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:1994,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 4
    argNames:
    - RESTRICT
    - k
    - RESTRICT
    - first_lms_suffix
    argTypes:
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2000
      start: 1965
    functionDepth: 1
    functionLinenumber: 1965
    functionLinenumberEnd: 2000
    functionName: libsais_initialize_buckets_for_lms_suffixes_radix_sort_32s_6k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - BUCKETS_INDEX4
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_initialize_buckets_for_lms_suffixes_radix_sort_32s_6k(\n
      \   const sa_sint_t* RESTRICT T, sa_sint_t k, sa_sint_t* RESTRICT buckets,\n
      \   sa_sint_t first_lms_suffix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2008,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2009,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2013,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2014,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2015,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2018,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2020,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2020,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2021,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 4
    argNames:
    - RESTRICT
    - k
    - RESTRICT
    - first_lms_suffix
    argTypes:
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2002
    functionDepth: 1
    functionLinenumber: 2002
    functionLinenumberEnd: 2025
    functionName: libsais_initialize_buckets_for_radix_and_partial_sorting_32s_4k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: void
    signature: "void libsais_initialize_buckets_for_radix_and_partial_sorting_32s_4k(\n
      \   const sa_sint_t* RESTRICT T, sa_sint_t k, sa_sint_t* RESTRICT buckets,\n
      \   sa_sint_t first_lms_suffix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2037,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2039,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2040,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2041,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2042,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2045,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2047,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2049,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2051,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2056,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 5
    argNames:
    - RESTRICT
    - RESTRICT
    - induction_bucket
    - omp_block_start
    - omp_block_size
    argTypes:
    - uint8_t*
    - sa_sint_t*
    - sa_sint_t*
    - fast_sint_t
    - fast_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2058
      start: 2027
    functionDepth: 1
    functionLinenumber: 2027
    functionLinenumberEnd: 2058
    functionName: libsais_radix_sort_lms_suffixes_8u
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchr
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: void
    signature: "void libsais_radix_sort_lms_suffixes_8u(\n    const uint8_t* RESTRICT
      T, sa_sint_t* RESTRICT SA,\n    sa_sint_t* RESTRICT induction_bucket, fast_sint_t
      omp_block_start,\n    fast_sint_t omp_block_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: omp_get_thread_num
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2075,1
    - Dst: omp_get_num_threads
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2076,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2078,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2079,1
    - Dst: libsais_radix_sort_lms_suffixes_8u
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2084,1
    - Dst: j
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2095,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2096,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2096,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2097,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2098,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2098,1
    - Dst: libsais_radix_sort_lms_suffixes_8u
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2114,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 8
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - m
    - flags
    - RESTRICT
    - threads
    - thread_state
    argTypes:
    - uint8_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2121
      start: 2060
    functionDepth: 2
    functionLinenumber: 2060
    functionLinenumberEnd: 2121
    functionName: libsais_radix_sort_lms_suffixes_8u_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_radix_sort_lms_suffixes_8u
    - UNUSED
    - BUCKETS_INDEX2
    - omp_get_num_threads
    - j
    - BUCKETS_INDEX4
    - omp_get_thread_num
    linkageType: ''
    returnType: void
    signature: "void libsais_radix_sort_lms_suffixes_8u_omp(\n    const uint8_t* RESTRICT
      T, sa_sint_t* RESTRICT SA, sa_sint_t n, sa_sint_t m,\n    sa_sint_t flags, sa_sint_t*
      RESTRICT buckets, sa_sint_t threads,\n    LIBSAIS_THREAD_STATE* RESTRICT thread_state)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2133,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2135,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2136,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2137,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2138,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2140,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2141,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2142,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - RESTRICT
    - RESTRICT
    - induction_bucket
    - omp_block_start
    - omp_block_size
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t*
    - fast_sint_t
    - fast_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2123
    functionDepth: 1
    functionLinenumber: 2123
    functionLinenumberEnd: 2159
    functionName: libsais_radix_sort_lms_suffixes_32s_6k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchw
    - libsais_prefetchr
    linkageType: ''
    returnType: void
    signature: "void libsais_radix_sort_lms_suffixes_32s_6k(\n    const sa_sint_t*
      RESTRICT T, sa_sint_t* RESTRICT SA,\n    sa_sint_t* RESTRICT induction_bucket,
      fast_sint_t omp_block_start,\n    fast_sint_t omp_block_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2171,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2173,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2174,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2175,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2176,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2178,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2179,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2180,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2181,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2182,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2183,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2184,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2185,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2188,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2190,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2192,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2194,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2199,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 5
    argNames:
    - RESTRICT
    - RESTRICT
    - induction_bucket
    - omp_block_start
    - omp_block_size
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t*
    - fast_sint_t
    - fast_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2201
      start: 2161
    functionDepth: 1
    functionLinenumber: 2161
    functionLinenumberEnd: 2201
    functionName: libsais_radix_sort_lms_suffixes_32s_2k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchw
    - libsais_prefetchr
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: void
    signature: "void libsais_radix_sort_lms_suffixes_32s_2k(\n    const sa_sint_t*
      RESTRICT T, sa_sint_t* RESTRICT SA,\n    sa_sint_t* RESTRICT induction_bucket,
      fast_sint_t omp_block_start,\n    fast_sint_t omp_block_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2215,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2217,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2218,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2219,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2220,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - RESTRICT
    - RESTRICT
    - RESTRICT
    - omp_block_start
    - omp_block_size
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - LIBSAIS_THREAD_CACHE*
    - fast_sint_t
    - fast_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2205
    functionDepth: 1
    functionLinenumber: 2205
    functionLinenumberEnd: 2233
    functionName: libsais_radix_sort_lms_suffixes_32s_block_gather
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchw
    - libsais_prefetchr
    linkageType: ''
    returnType: void
    signature: "void libsais_radix_sort_lms_suffixes_32s_block_gather(\n    const
      sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA,\n    LIBSAIS_THREAD_CACHE* RESTRICT
      cache, fast_sint_t omp_block_start,\n    fast_sint_t omp_block_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: omp_get_thread_num
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2311,1
    - Dst: omp_get_num_threads
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2312,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2314,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2315,1
    - Dst: libsais_radix_sort_lms_suffixes_32s_6k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2329,1
    - Dst: libsais_radix_sort_lms_suffixes_32s_block_gather
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2335,1
    - Dst: libsais_radix_sort_lms_suffixes_32s_6k_block_sort
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2343,1
    - Dst: libsais_place_cached_suffixes
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - RESTRICT
    - RESTRICT
    - induction_bucket
    - RESTRICT
    - block_start
    - block_size
    - threads
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t*
    - LIBSAIS_THREAD_CACHE*
    - fast_sint_t
    - fast_sint_t
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2301
    functionDepth: 2
    functionLinenumber: 2301
    functionLinenumberEnd: 2356
    functionName: libsais_radix_sort_lms_suffixes_32s_6k_block_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_radix_sort_lms_suffixes_32s_block_gather
    - UNUSED
    - libsais_place_cached_suffixes
    - omp_get_num_threads
    - libsais_radix_sort_lms_suffixes_32s_6k_block_sort
    - libsais_radix_sort_lms_suffixes_32s_6k
    - omp_get_thread_num
    linkageType: ''
    returnType: void
    signature: "void libsais_radix_sort_lms_suffixes_32s_6k_block_omp(\n    const
      sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA,\n    sa_sint_t* RESTRICT induction_bucket,
      LIBSAIS_THREAD_CACHE* RESTRICT cache,\n    fast_sint_t block_start, fast_sint_t
      block_size, sa_sint_t threads)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: omp_get_thread_num
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2368,1
    - Dst: omp_get_num_threads
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2369,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2371,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2372,1
    - Dst: libsais_radix_sort_lms_suffixes_32s_2k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2386,1
    - Dst: libsais_radix_sort_lms_suffixes_32s_block_gather
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2392,1
    - Dst: libsais_radix_sort_lms_suffixes_32s_2k_block_sort
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2400,1
    - Dst: libsais_place_cached_suffixes
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 7
    argNames:
    - RESTRICT
    - RESTRICT
    - induction_bucket
    - RESTRICT
    - block_start
    - block_size
    - threads
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t*
    - LIBSAIS_THREAD_CACHE*
    - fast_sint_t
    - fast_sint_t
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2413
      start: 2358
    functionDepth: 2
    functionLinenumber: 2358
    functionLinenumberEnd: 2413
    functionName: libsais_radix_sort_lms_suffixes_32s_2k_block_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_radix_sort_lms_suffixes_32s_block_gather
    - UNUSED
    - libsais_place_cached_suffixes
    - omp_get_num_threads
    - libsais_radix_sort_lms_suffixes_32s_2k_block_sort
    - omp_get_thread_num
    - libsais_radix_sort_lms_suffixes_32s_2k
    linkageType: ''
    returnType: void
    signature: "void libsais_radix_sort_lms_suffixes_32s_2k_block_omp(\n    const
      sa_sint_t* RESTRICT T, sa_sint_t* RESTRICT SA,\n    sa_sint_t* RESTRICT induction_bucket,
      LIBSAIS_THREAD_CACHE* RESTRICT cache,\n    fast_sint_t block_start, fast_sint_t
      block_size, sa_sint_t threads)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libsais_radix_sort_lms_suffixes_32s_6k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2422,1
    - Dst: libsais_radix_sort_lms_suffixes_32s_6k_block_omp
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2437,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2443,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - m
    - induction_bucket
    - threads
    - thread_state
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2417
    functionDepth: 3
    functionLinenumber: 2417
    functionLinenumberEnd: 2445
    functionName: libsais_radix_sort_lms_suffixes_32s_6k_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_radix_sort_lms_suffixes_32s_6k
    - UNUSED
    - libsais_radix_sort_lms_suffixes_32s_6k_block_omp
    linkageType: ''
    returnType: void
    signature: "void libsais_radix_sort_lms_suffixes_32s_6k_omp(\n    const sa_sint_t*
      RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t m, sa_sint_t*
      RESTRICT induction_bucket, sa_sint_t threads,\n    LIBSAIS_THREAD_STATE* RESTRICT
      thread_state)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: libsais_radix_sort_lms_suffixes_32s_2k
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2452,1
    - Dst: libsais_radix_sort_lms_suffixes_32s_2k_block_omp
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2467,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2473,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 7
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - m
    - induction_bucket
    - threads
    - thread_state
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2475
      start: 2447
    functionDepth: 3
    functionLinenumber: 2447
    functionLinenumberEnd: 2475
    functionName: libsais_radix_sort_lms_suffixes_32s_2k_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - UNUSED
    - libsais_radix_sort_lms_suffixes_32s_2k_block_omp
    - libsais_radix_sort_lms_suffixes_32s_2k
    linkageType: ''
    returnType: void
    signature: "void libsais_radix_sort_lms_suffixes_32s_2k_omp(\n    const sa_sint_t*
      RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t m, sa_sint_t*
      RESTRICT induction_bucket, sa_sint_t threads,\n    LIBSAIS_THREAD_STATE* RESTRICT
      thread_state)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2491,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2493,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2494,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2495,1
    - Dst: libsais_prefetchw
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2496,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 46
    argCount: 4
    argNames:
    - RESTRICT
    - RESTRICT
    - n
    - RESTRICT
    argTypes:
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2543
      start: 2477
    functionDepth: 1
    functionLinenumber: 2477
    functionLinenumberEnd: 2543
    functionName: libsais_radix_sort_lms_suffixes_32s_1k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchw
    - libsais_prefetchr
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_radix_sort_lms_suffixes_32s_1k(\n    const sa_sint_t*
      RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t n,\n    sa_sint_t* RESTRICT buckets)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2665,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2669,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2669,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2670,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2671,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2671,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2672,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2675,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2675,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2676,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2678,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2679,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - RESTRICT
    - RESTRICT
    - first_lms_suffix
    - left_suffixes_count
    argTypes:
    - uint8_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2660
    functionDepth: 1
    functionLinenumber: 2660
    functionLinenumberEnd: 2681
    functionName: libsais_initialize_buckets_for_partial_sorting_8u
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - BUCKETS_INDEX4
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: void
    signature: "void libsais_initialize_buckets_for_partial_sorting_8u(\n    const
      uint8_t* RESTRICT T, sa_sint_t* RESTRICT buckets,\n    sa_sint_t first_lms_suffix,
      sa_sint_t left_suffixes_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2690,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2691,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2692,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2693,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2693,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2694,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2695,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2696,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2697,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2699,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2700,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2701,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2702,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2708,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2709,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2712,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2713,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2713,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2714,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2715,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2716,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2717,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2719,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2720,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2721,1
    - Dst: BUCKETS_INDEX4
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2722,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2728,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 5
    argNames:
    - RESTRICT
    - k
    - RESTRICT
    - first_lms_suffix
    - left_suffixes_count
    argTypes:
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2731
      start: 2683
    functionDepth: 1
    functionLinenumber: 2683
    functionLinenumberEnd: 2731
    functionName: libsais_initialize_buckets_for_partial_sorting_32s_6k
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - BUCKETS_INDEX4
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: void
    signature: "void libsais_initialize_buckets_for_partial_sorting_32s_6k(\n    const
      sa_sint_t* RESTRICT T, sa_sint_t k, sa_sint_t* RESTRICT buckets,\n    sa_sint_t
      first_lms_suffix, sa_sint_t left_suffixes_count)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2746,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2748,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2749,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2750,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2751,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2756,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2765,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2776,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 6
    argNames:
    - RESTRICT
    - RESTRICT
    - RESTRICT
    - d
    - omp_block_start
    - omp_block_size
    argTypes:
    - uint8_t*
    - sa_sint_t*
    - sa_sint_t*
    - sa_sint_t
    - fast_sint_t
    - fast_sint_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2784
      start: 2733
    functionDepth: 1
    functionLinenumber: 2733
    functionLinenumberEnd: 2784
    functionName: libsais_partial_sorting_scan_left_to_right_8u
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchr
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_partial_sorting_scan_left_to_right_8u(\n    const
      uint8_t* RESTRICT T, sa_sint_t* RESTRICT SA,\n    sa_sint_t* RESTRICT buckets,
      sa_sint_t d, fast_sint_t omp_block_start,\n    fast_sint_t omp_block_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2798,1
    - Dst: memset
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2799,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2806,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2808,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2809,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2810,1
    - Dst: libsais_prefetchr
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2811,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2817,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2824,1
    - Dst: BUCKETS_INDEX2
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2834,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 28
    argCount: 8
    argNames:
    - RESTRICT
    - RESTRICT
    - k
    - RESTRICT
    - RESTRICT
    - omp_block_start
    - omp_block_size
    - RESTRICT
    argTypes:
    - uint8_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t*
    - LIBSAIS_THREAD_CACHE*
    - fast_sint_t
    - fast_sint_t
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2788
    functionDepth: 1
    functionLinenumber: 2788
    functionLinenumberEnd: 2841
    functionName: libsais_partial_sorting_scan_left_to_right_8u_block_prepare
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_prefetchr
    - memset
    - BUCKETS_INDEX2
    linkageType: ''
    returnType: void
    signature: "void libsais_partial_sorting_scan_left_to_right_8u_block_prepare(\n
      \   const uint8_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t k,\n    sa_sint_t*
      RESTRICT buckets, LIBSAIS_THREAD_CACHE* RESTRICT cache,\n    fast_sint_t omp_block_start,
      fast_sint_t omp_block_size,\n    LIBSAIS_THREAD_STATE* RESTRICT state)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: omp_get_thread_num
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2895,1
    - Dst: omp_get_num_threads
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2896,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2898,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2899,1
    - Dst: UNUSED
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2900,1
    - Dst: libsais_partial_sorting_scan_left_to_right_8u
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2914,1
    - Dst: libsais_partial_sorting_scan_left_to_right_8u_block_prepare
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2920,1
    - Dst: libsais_partial_sorting_scan_left_to_right_8u_block_place
      Src: /src/sentencepiece/third_party/libsais/libsais.c:2962,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 9
    argNames:
    - RESTRICT
    - RESTRICT
    - k
    - RESTRICT
    - d
    - block_start
    - block_size
    - threads
    - thread_state
    argTypes:
    - uint8_t*
    - sa_sint_t*
    - sa_sint_t
    - sa_sint_t*
    - sa_sint_t
    - fast_sint_t
    - fast_sint_t
    - sa_sint_t
    - LIBSAIS_THREAD_STATE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2973
      start: 2883
    functionDepth: 2
    functionLinenumber: 2883
    functionLinenumberEnd: 2973
    functionName: libsais_partial_sorting_scan_left_to_right_8u_block_omp
    functionSourceFile: /src/sentencepiece/third_party/libsais/libsais.c
    functionUses: 0
    functionsReached:
    - libsais_partial_sorting_scan_left_to_right_8u
    - libsais_partial_sorting_scan_left_to_right_8u_block_place
    - UNUSED
    - libsais_partial_sorting_scan_left_to_right_8u_block_prepare
    - omp_get_num_threads
    - omp_get_thread_num
    linkageType: ''
    returnType: sa_sint_t
    signature: "sa_sint_t libsais_partial_sorting_scan_left_to_right_8u_block_omp(\n
      \   const uint8_t* RESTRICT T, sa_sint_t* RESTRICT SA, sa_sint_t k,\n    sa_sint_t*
      RESTRICT buckets, sa_sint_t d, fast_sint_t block_start,\n    fast_sint_t block_size,
      sa_sint_t threads,\n    LIBSAIS_THREAD_STATE* RESTRICT thread_state)"
Fuzzer filename: /src/sample_encode_fuzzer.cc
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- exception
- normalizer.h
- third_party/absl/base/internal/endian.h
- config.h
- third_party/absl/status/status_macros.h
- model_interface.h
- third_party/absl/strings/string_view.h
- unigram_model.h
- absl/status/status.h
- third_party/absl/status/status.h
- third_party/absl/strings/str_replace.h
- third_party/benchmark/include/benchmark/benchmark.h
- memory
- sstream
- libsais.h
- stdint.h
- unicode/normlzr.h
- freelist.h
- string.h
- string
- unicode/errorcode.h
- third_party/absl/strings/str_join.h
- third_party/absl/flags/usage_config.h
- omp.h
- word_model.h
- third_party/absl/strings/str_format.h
- third_party/absl/flags/parse.h
- deque
- sentencepiece_model.pb.h
- new
- unicode/utypes.h
- third_party/absl/container/flat_hash_set.h
- google/protobuf/arena.h
- builder.h
- init.h
- third_party/absl/log/check.h
- unicode/rbnf.h
- stdexcept
- sentencepiece_processor.h
- fuzzer/FuzzedDataProvider.h
- third_party/absl/strings/str_cat.h
- cstddef
- model_factory.h
- cstdio
- cmath
- third_party/absl/flags/flag.h
- third_party/absl/base/attributes.h
- atomic
- bpe_model.h
- word_model_trainer.h
- unicode/locid.h
- pybind11/stl.h
- trainer_factory.h
- third_party/darts_clone/darts.h
- third_party/absl/cleanup/cleanup.h
- windows.h
- contrib/nlcodec/bpe_model_trainer_nlcodec.h
- normalization_rule.h
- random
- third_party/absl/hash/hash.h
- intrin.h
- gtest/gtest.h
- third_party/absl/container/flat_hash_map.h
- unordered_set
- pybind11/pybind11.h
- embedded_model.h
- third_party/absl/log/initialize.h
- algorithm
- unicode_script.h
- thread
- complex
- numeric
- iomanip
- third_party/absl/numeric/bits.h
- iterator
- third_party/absl/log/log.h
- queue
- stdio.h
- third_party/absl/synchronization/blocking_counter.h
- iostream
- char_model.h
- unigram_model_trainer.h
- cfloat
- third_party/absl/flags/declare.h
- cstring
- google/protobuf/message_lite.h
- third_party/absl/strings/match.h
- vector
- third_party/absl/log/flags.h
- third_party/absl/base/thread_annotations.h
- utility
- third_party/absl/strings/str_split.h
- third_party/absl/strings/numbers.h
- third_party/absl/container/fixed_array.h
- char_model_trainer.h
- third_party/absl/strings/ascii.h
- limits.h
- functional
- fstream
- set
- third_party/absl/time/time.h
- gmock/gmock.h
- util.h
- trainer_interface.h
- third_party/absl/synchronization/mutex.h
- sentencepiece_trainer.h
- third_party/absl/container/btree_set.h
- third_party/absl/status/status_builder.h
- bpe_model_trainer.h
- unicode_script_map.h
- cstdlib
- map
- string_view
- third_party/absl/functional/any_invocable.h
- third_party/absl/random/random.h
- limits
- cstdint
- testharness.h
- third_party/absl/types/span.h
- third_party/absl/strings/strip.h
- unordered_map
- unicode/numfmt.h
- third_party/absl/flags/usage.h
- sentencepiece.pb.h
- third_party/absl/time/clock.h
- filesystem.h
- stdlib.h
- third_party/absl/log/globals.h
- ios
- stddef.h
- third_party/absl/functional/function_ref.h
- common.h
- spec_parser.h
- third_party/libsais/libsais.h
report: name
sources:
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/sample_encode_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - AddSpecialPieces
  - AddPiece
  - AddBytePiece
  - main
  source_file: /src/generate_model.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/model_load_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerInitialize
  - LLVMFuzzerTestOneInput
  source_file: /src/processor_text_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/trainer_fuzzer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::GetTestDataPath
  - sentencepiece::LoadModelWithModifiedCharsmap
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::GetTestDataPath
  - sentencepiece::LoadModelWithModifiedCharsmap
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::GetTestDataPath
  - sentencepiece::LoadModelWithModifiedCharsmap
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::GetTestDataPath
  - sentencepiece::LoadModelWithModifiedCharsmap
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  source_file: /src/sentencepiece/src/invalid_model_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::word::Trainer::Trainer
  - sentencepiece::word::Trainer::Trainer
  - sentencepiece::word::Trainer::Trainer
  - sentencepiece::word::Trainer::Trainer
  source_file: /src/sentencepiece/src/word_model_trainer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::ExpectSptEqual
  - sentencepiece::SentencePieceProcessorMaxLoops::SentencePieceProcessorMaxLoops
  - sentencepiece::LoadTestData
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::ExpectSptEqual
  - sentencepiece::SentencePieceProcessorMaxLoops::SentencePieceProcessorMaxLoops
  - sentencepiece::LoadTestData
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  source_file: /src/sentencepiece/src/sentencepiece_processor_parallel_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::model::TEST
  - sentencepiece::model::TEST
  - sentencepiece::model::TEST
  - sentencepiece::model::TEST
  source_file: /src/sentencepiece/src/freelist_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::SetRandomGeneratorSeed
  - sentencepiece::GetRandomGeneratorSeed
  - sentencepiece::GetSharedDataDir
  - sentencepiece::GetSharedDataDir
  - sentencepiece::GetDataDir
  - sentencepiece::SetDataDir
  - sentencepiece::SetMinLogLevel
  - sentencepiece::SetNBestTimeout
  - sentencepiece::GetNBestTimeout
  - sentencepiece::string_util::DecodeUTF8
  - sentencepiece::string_util::IsStructurallyValid
  - sentencepiece::string_util::EncodeUTF8
  - sentencepiece::string_util::UnicodeCharToUTF8
  - sentencepiece::string_util::UTF8ToUnicodeText
  - sentencepiece::string_util::UnicodeTextToUTF8
  - sentencepiece::string_util::UTF8ToUnicodeTextAndOffsets
  - sentencepiece::string_util::DecodeUTF8
  - sentencepiece::string_util::IsStructurallyValid
  - sentencepiece::string_util::EncodeUTF8
  - sentencepiece::string_util::UnicodeCharToUTF8
  - sentencepiece::string_util::UTF8ToUnicodeText
  - sentencepiece::string_util::UnicodeTextToUTF8
  - sentencepiece::string_util::UTF8ToUnicodeTextAndOffsets
  - sentencepiece::random::GetRandomGenerator
  - sentencepiece::random::GetRandomGenerator
  - sentencepiece::util::StrError
  - sentencepiece::util::StrSplitAsCSV
  - sentencepiece::util::Utf8ToWide
  - sentencepiece::util::StrError
  - sentencepiece::util::StrSplitAsCSV
  - sentencepiece::util::Utf8ToWide
  - sentencepiece::ThreadPool::Impl::Impl
  - ~Impl()
  - sentencepiece::ThreadPool::Impl::Schedule
  - sentencepiece::ThreadPool::Impl::num_threads
  - sentencepiece::ThreadPool::Impl::ABSL_EXCLUSIVE_LOCKS_REQUIRED
  - sentencepiece::ThreadPool::Impl::WorkLoop
  - sentencepiece::ThreadPool::ThreadPool
  - ThreadPool::~ThreadPool()
  - sentencepiece::ThreadPool::Schedule
  - sentencepiece::ThreadPool::num_threads
  - sentencepiece::RunBatch
  - sentencepiece::log_domain::LogSum
  - sentencepiece::log_domain::LogSum
  - sentencepiece::SetRandomGeneratorSeed
  - sentencepiece::GetRandomGeneratorSeed
  - sentencepiece::GetSharedDataDir
  - sentencepiece::GetSharedDataDir
  - sentencepiece::GetDataDir
  - sentencepiece::SetDataDir
  - sentencepiece::SetMinLogLevel
  - sentencepiece::SetNBestTimeout
  - sentencepiece::GetNBestTimeout
  - sentencepiece::string_util::DecodeUTF8
  - sentencepiece::string_util::IsStructurallyValid
  - sentencepiece::string_util::EncodeUTF8
  - sentencepiece::string_util::UnicodeCharToUTF8
  - sentencepiece::string_util::UTF8ToUnicodeText
  - sentencepiece::string_util::UnicodeTextToUTF8
  - sentencepiece::string_util::UTF8ToUnicodeTextAndOffsets
  - sentencepiece::string_util::DecodeUTF8
  - sentencepiece::string_util::IsStructurallyValid
  - sentencepiece::string_util::EncodeUTF8
  - sentencepiece::string_util::UnicodeCharToUTF8
  - sentencepiece::string_util::UTF8ToUnicodeText
  - sentencepiece::string_util::UnicodeTextToUTF8
  - sentencepiece::string_util::UTF8ToUnicodeTextAndOffsets
  - sentencepiece::random::GetRandomGenerator
  - sentencepiece::random::GetRandomGenerator
  - sentencepiece::util::StrError
  - sentencepiece::util::StrSplitAsCSV
  - sentencepiece::util::Utf8ToWide
  - sentencepiece::util::StrError
  - sentencepiece::util::StrSplitAsCSV
  - sentencepiece::util::Utf8ToWide
  - sentencepiece::ThreadPool::Impl::Impl
  - ~Impl()
  - sentencepiece::ThreadPool::Impl::Schedule
  - sentencepiece::ThreadPool::Impl::num_threads
  - sentencepiece::ThreadPool::Impl::ABSL_EXCLUSIVE_LOCKS_REQUIRED
  - sentencepiece::ThreadPool::Impl::WorkLoop
  - sentencepiece::ThreadPool::ThreadPool
  - ThreadPool::~ThreadPool()
  - sentencepiece::ThreadPool::Schedule
  - sentencepiece::ThreadPool::num_threads
  - sentencepiece::RunBatch
  - sentencepiece::log_domain::LogSum
  - sentencepiece::log_domain::LogSum
  source_file: /src/sentencepiece/src/util.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::ToHexUInt64Array
  - sentencepiece::ToHexData
  - sentencepiece::MakeHeader
  - sentencepiece::ToHexUInt64Array
  - sentencepiece::ToHexData
  - sentencepiece::MakeHeader
  - sentencepiece::ToHexUInt64Array
  - sentencepiece::ToHexData
  - sentencepiece::MakeHeader
  - sentencepiece::ToHexUInt64Array
  - sentencepiece::ToHexData
  - sentencepiece::MakeHeader
  - main
  source_file: /src/sentencepiece/src/compile_charsmap_main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::SentencePieceProcessor::SentencePieceProcessor
  - SentencePieceProcessor::~SentencePieceProcessor()
  - sentencepiece::SentencePieceProcessor::Load
  - sentencepiece::SentencePieceProcessor::LoadOrDie
  - sentencepiece::SentencePieceProcessor::Load
  - sentencepiece::SentencePieceProcessor::LoadFromSerializedProto
  - sentencepiece::SentencePieceProcessor::Load
  - sentencepiece::SentencePieceProcessor::SetEncodeExtraOptions
  - sentencepiece::SentencePieceProcessor::SetDecodeExtraOptions
  - sentencepiece::SentencePieceProcessor::status
  - RET_CHECK_STATUS_STL
  - RET_CHECK_STATUS_PROTO
  - sentencepiece::SentencePieceProcessor::Encode
  - sentencepiece::SentencePieceProcessor::Encode
  - sentencepiece::SentencePieceProcessor::Decode
  - sentencepiece::SentencePieceProcessor::Decode
  - sentencepiece::SentencePieceProcessor::Decode
  - sentencepiece::SentencePieceProcessor::NBestEncode
  - sentencepiece::SentencePieceProcessor::NBestEncode
  - sentencepiece::SentencePieceProcessor::SampleEncode
  - sentencepiece::SentencePieceProcessor::SampleEncode
  - sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
  - sentencepiece::SentencePieceProcessor::Encode
  - sentencepiece::SentencePieceProcessor::NBestEncode
  - sentencepiece::SentencePieceProcessor::SampleEncode
  - sentencepiece::SentencePieceProcessor::Decode
  - sentencepiece::SentencePieceProcessor::Decode
  - sentencepiece::GetIthChunkBoundaries
  - sentencepiece::GetChunkOfInput
  - sentencepiece::FindMatchingToken
  - "absl::Status ReparseBadRanges(\n    const std::vector<size_t>& bad_joins, const
    absl::string_view input,\n    const absl::string_view normalized, absl::Span<const
    size_t> norm_to_orig,\n    Arena& arena, const ModelInterface& model,\n    absl::FunctionRef<absl::Status(\n
    \       absl::string_view input, absl::string_view normalized,\n        absl::Span<const
    size_t> norm_to_orig, const EncodeResult& result,\n        SentencePieceText*
    spt, size_t input_start_offset)>\n        populate_sentence_piece_text,\n    std::vector<SentencePieceText*>&
    spt_chunks,\n    std::vector<std::tuple<size_t, size_t, size_t>>& input_chunk_boundaries)"
  - sentencepiece::GetIthChunkBoundaries
  - sentencepiece::GetChunkOfInput
  - sentencepiece::FindMatchingToken
  - "absl::Status ReparseBadRanges(\n    const std::vector<size_t>& bad_joins, const
    absl::string_view input,\n    const absl::string_view normalized, absl::Span<const
    size_t> norm_to_orig,\n    Arena& arena, const ModelInterface& model,\n    absl::FunctionRef<absl::Status(\n
    \       absl::string_view input, absl::string_view normalized,\n        absl::Span<const
    size_t> norm_to_orig, const EncodeResult& result,\n        SentencePieceText*
    spt, size_t input_start_offset)>\n        populate_sentence_piece_text,\n    std::vector<SentencePieceText*>&
    spt_chunks,\n    std::vector<std::tuple<size_t, size_t, size_t>>& input_chunk_boundaries)"
  - sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
  - sentencepiece::SentencePieceProcessor::ParallelEncode
  - sentencepiece::SentencePieceProcessor::ParallelEncode
  - sentencepiece::SentencePieceProcessor::ParallelEncode
  - RET_CHECK_OR_RETURN_DEFAULT
  - sentencepiece::SentencePieceProcessor::Normalize
  - sentencepiece::SentencePieceProcessor::Normalize
  - sentencepiece::SentencePieceProcessor::Normalize
  - sentencepiece::SentencePieceProcessor::GetPieceSize
  - sentencepiece::SentencePieceProcessor::PieceToId
  - '& SentencePieceProcessor::IdToPiece(int id) const'
  - sentencepiece::SentencePieceProcessor::SafeIdToPiece
  - sentencepiece::SentencePieceProcessor::GetScore
  - sentencepiece::SentencePieceProcessor::IsControl
  - sentencepiece::SentencePieceProcessor::IsUnknown
  - sentencepiece::SentencePieceProcessor::IsUnused
  - sentencepiece::SentencePieceProcessor::IsByte
  - sentencepiece::SentencePieceProcessor::unk_id
  - sentencepiece::SentencePieceProcessor::bos_id
  - sentencepiece::SentencePieceProcessor::eos_id
  - sentencepiece::SentencePieceProcessor::pad_id
  - sentencepiece::SentencePieceProcessor::ApplyExtraOptions
  - sentencepiece::SentencePieceProcessor::HasUnkPieceOption
  - sentencepiece::SentencePieceProcessor::ParseExtraOptions
  - sentencepiece::SentencePieceProcessor::SetModel
  - sentencepiece::SentencePieceProcessor::SetNormalizer
  - '& SentencePieceProcessor::model_proto() const'
  - sentencepiece::SentencePieceProcessor::serialized_model_proto
  - sentencepiece::SentencePieceProcessor::EncodeOptimized
  - sentencepiece::SentencePieceProcessor::DecodeOptimized
  - sentencepiece::io::LoadModelProto
  - sentencepiece::io::SaveModelProto
  - sentencepiece::io::LoadModelProto
  - sentencepiece::io::SaveModelProto
  - sentencepiece::SentencePieceProcessor::SentencePieceProcessor
  - SentencePieceProcessor::~SentencePieceProcessor()
  - sentencepiece::SentencePieceProcessor::Load
  - sentencepiece::SentencePieceProcessor::LoadOrDie
  - sentencepiece::SentencePieceProcessor::Load
  - sentencepiece::SentencePieceProcessor::LoadFromSerializedProto
  - sentencepiece::SentencePieceProcessor::Load
  - sentencepiece::SentencePieceProcessor::SetEncodeExtraOptions
  - sentencepiece::SentencePieceProcessor::SetDecodeExtraOptions
  - sentencepiece::SentencePieceProcessor::status
  - RET_CHECK_STATUS_STL
  - RET_CHECK_STATUS_PROTO
  - sentencepiece::SentencePieceProcessor::Encode
  - sentencepiece::SentencePieceProcessor::Encode
  - sentencepiece::SentencePieceProcessor::Decode
  - sentencepiece::SentencePieceProcessor::Decode
  - sentencepiece::SentencePieceProcessor::Decode
  - sentencepiece::SentencePieceProcessor::NBestEncode
  - sentencepiece::SentencePieceProcessor::NBestEncode
  - sentencepiece::SentencePieceProcessor::SampleEncode
  - sentencepiece::SentencePieceProcessor::SampleEncode
  - sentencepiece::SentencePieceProcessor::PopulateSentencePieceText
  - sentencepiece::SentencePieceProcessor::Encode
  - sentencepiece::SentencePieceProcessor::NBestEncode
  - sentencepiece::SentencePieceProcessor::SampleEncode
  - sentencepiece::SentencePieceProcessor::Decode
  - sentencepiece::SentencePieceProcessor::Decode
  - sentencepiece::GetIthChunkBoundaries
  - sentencepiece::GetChunkOfInput
  - sentencepiece::FindMatchingToken
  - "absl::Status ReparseBadRanges(\n    const std::vector<size_t>& bad_joins, const
    absl::string_view input,\n    const absl::string_view normalized, absl::Span<const
    size_t> norm_to_orig,\n    Arena& arena, const ModelInterface& model,\n    absl::FunctionRef<absl::Status(\n
    \       absl::string_view input, absl::string_view normalized,\n        absl::Span<const
    size_t> norm_to_orig, const EncodeResult& result,\n        SentencePieceText*
    spt, size_t input_start_offset)>\n        populate_sentence_piece_text,\n    std::vector<SentencePieceText*>&
    spt_chunks,\n    std::vector<std::tuple<size_t, size_t, size_t>>& input_chunk_boundaries)"
  - sentencepiece::GetIthChunkBoundaries
  - sentencepiece::GetChunkOfInput
  - sentencepiece::FindMatchingToken
  - "absl::Status ReparseBadRanges(\n    const std::vector<size_t>& bad_joins, const
    absl::string_view input,\n    const absl::string_view normalized, absl::Span<const
    size_t> norm_to_orig,\n    Arena& arena, const ModelInterface& model,\n    absl::FunctionRef<absl::Status(\n
    \       absl::string_view input, absl::string_view normalized,\n        absl::Span<const
    size_t> norm_to_orig, const EncodeResult& result,\n        SentencePieceText*
    spt, size_t input_start_offset)>\n        populate_sentence_piece_text,\n    std::vector<SentencePieceText*>&
    spt_chunks,\n    std::vector<std::tuple<size_t, size_t, size_t>>& input_chunk_boundaries)"
  - sentencepiece::SentencePieceProcessor::ParallelEncodeInternal
  - sentencepiece::SentencePieceProcessor::ParallelEncode
  - sentencepiece::SentencePieceProcessor::ParallelEncode
  - sentencepiece::SentencePieceProcessor::ParallelEncode
  - RET_CHECK_OR_RETURN_DEFAULT
  - sentencepiece::SentencePieceProcessor::Normalize
  - sentencepiece::SentencePieceProcessor::Normalize
  - sentencepiece::SentencePieceProcessor::Normalize
  - sentencepiece::SentencePieceProcessor::GetPieceSize
  - sentencepiece::SentencePieceProcessor::PieceToId
  - '& SentencePieceProcessor::IdToPiece(int id) const'
  - sentencepiece::SentencePieceProcessor::SafeIdToPiece
  - sentencepiece::SentencePieceProcessor::GetScore
  - sentencepiece::SentencePieceProcessor::IsControl
  - sentencepiece::SentencePieceProcessor::IsUnknown
  - sentencepiece::SentencePieceProcessor::IsUnused
  - sentencepiece::SentencePieceProcessor::IsByte
  - sentencepiece::SentencePieceProcessor::unk_id
  - sentencepiece::SentencePieceProcessor::bos_id
  - sentencepiece::SentencePieceProcessor::eos_id
  - sentencepiece::SentencePieceProcessor::pad_id
  - sentencepiece::SentencePieceProcessor::ApplyExtraOptions
  - sentencepiece::SentencePieceProcessor::HasUnkPieceOption
  - sentencepiece::SentencePieceProcessor::ParseExtraOptions
  - sentencepiece::SentencePieceProcessor::SetModel
  - sentencepiece::SentencePieceProcessor::SetNormalizer
  - '& SentencePieceProcessor::model_proto() const'
  - sentencepiece::SentencePieceProcessor::serialized_model_proto
  - sentencepiece::SentencePieceProcessor::EncodeOptimized
  - sentencepiece::SentencePieceProcessor::DecodeOptimized
  - sentencepiece::io::LoadModelProto
  - sentencepiece::io::SaveModelProto
  - sentencepiece::io::LoadModelProto
  - sentencepiece::io::SaveModelProto
  source_file: /src/sentencepiece/src/sentencepiece_processor.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::normalizer::Normalizer::SetPrefixMatcher
  - sentencepiece::normalizer::Normalizer::status
  - sentencepiece::normalizer::Normalizer::SetPrefixMatcher
  - sentencepiece::normalizer::Normalizer::status
  source_file: /src/sentencepiece/src/normalizer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ABSL_FLAG
  - ShutdownLibrary
  source_file: /src/sentencepiece/src/init.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::TEST
  - sentencepiece::TEST
  source_file: /src/sentencepiece/src/trainer_factory_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::character::Trainer::Train
  - sentencepiece::character::Trainer::Train
  - sentencepiece::character::Trainer::Train
  - sentencepiece::character::Trainer::Train
  source_file: /src/sentencepiece/src/char_model_trainer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::unigram::Digamma
  - sentencepiece::unigram::ToLogProb
  - sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
  - sentencepiece::unigram::BoundedPriorityQueue::Add
  - sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
  - '& data() const'
  - sentencepiece::unigram::BoundedPriorityQueue::Get
  - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
  - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
  - sentencepiece::unigram::BoundedPriorityQueue::Gc
  - sentencepiece::unigram::Digamma
  - sentencepiece::unigram::ToLogProb
  - sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
  - sentencepiece::unigram::BoundedPriorityQueue::Add
  - sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
  - '& data() const'
  - sentencepiece::unigram::BoundedPriorityQueue::Get
  - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
  - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
  - sentencepiece::unigram::BoundedPriorityQueue::Gc
  - sentencepiece::unigram::TrainerModel::TrainerModel
  - TrainerModel::~TrainerModel()
  - '& TrainerModel::GetSentencePieces() const'
  - sentencepiece::unigram::TrainerModel::SetSentencePieces
  - sentencepiece::unigram::Trainer::MakeSeedSentencePieces
  - sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
  - sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
  - sentencepiece::unigram::Trainer::RunEStep
  - sentencepiece::unigram::Trainer::RunMStep
  - sentencepiece::unigram::Trainer::PruneSentencePieces
  - sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
  - sentencepiece::unigram::Trainer::FinalizeSentencePieces
  - sentencepiece::unigram::Trainer::Train
  - sentencepiece::unigram::Trainer::TrainDiscretePruning
  - sentencepiece::unigram::Trainer::TrainSparsePruning
  - sentencepiece::unigram::Digamma
  - sentencepiece::unigram::ToLogProb
  - sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
  - sentencepiece::unigram::BoundedPriorityQueue::Add
  - sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
  - '& data() const'
  - sentencepiece::unigram::BoundedPriorityQueue::Get
  - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
  - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
  - sentencepiece::unigram::BoundedPriorityQueue::Gc
  - sentencepiece::unigram::Digamma
  - sentencepiece::unigram::ToLogProb
  - sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
  - sentencepiece::unigram::BoundedPriorityQueue::Add
  - sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
  - '& data() const'
  - sentencepiece::unigram::BoundedPriorityQueue::Get
  - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
  - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
  - sentencepiece::unigram::BoundedPriorityQueue::Gc
  - sentencepiece::unigram::TrainerModel::TrainerModel
  - TrainerModel::~TrainerModel()
  - '& TrainerModel::GetSentencePieces() const'
  - sentencepiece::unigram::TrainerModel::SetSentencePieces
  - sentencepiece::unigram::Trainer::MakeSeedSentencePieces
  - sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
  - sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
  - sentencepiece::unigram::Trainer::RunEStep
  - sentencepiece::unigram::Trainer::RunMStep
  - sentencepiece::unigram::Trainer::PruneSentencePieces
  - sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
  - sentencepiece::unigram::Trainer::FinalizeSentencePieces
  - sentencepiece::unigram::Trainer::Train
  - sentencepiece::unigram::Trainer::TrainDiscretePruning
  - sentencepiece::unigram::Trainer::TrainSparsePruning
  - sentencepiece::unigram::Digamma
  - sentencepiece::unigram::ToLogProb
  - sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
  - sentencepiece::unigram::BoundedPriorityQueue::Add
  - sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
  - '& data() const'
  - sentencepiece::unigram::BoundedPriorityQueue::Get
  - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
  - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
  - sentencepiece::unigram::BoundedPriorityQueue::Gc
  - sentencepiece::unigram::Digamma
  - sentencepiece::unigram::ToLogProb
  - sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
  - sentencepiece::unigram::BoundedPriorityQueue::Add
  - sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
  - '& data() const'
  - sentencepiece::unigram::BoundedPriorityQueue::Get
  - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
  - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
  - sentencepiece::unigram::BoundedPriorityQueue::Gc
  - sentencepiece::unigram::TrainerModel::TrainerModel
  - TrainerModel::~TrainerModel()
  - '& TrainerModel::GetSentencePieces() const'
  - sentencepiece::unigram::TrainerModel::SetSentencePieces
  - sentencepiece::unigram::Trainer::MakeSeedSentencePieces
  - sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
  - sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
  - sentencepiece::unigram::Trainer::RunEStep
  - sentencepiece::unigram::Trainer::RunMStep
  - sentencepiece::unigram::Trainer::PruneSentencePieces
  - sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
  - sentencepiece::unigram::Trainer::FinalizeSentencePieces
  - sentencepiece::unigram::Trainer::Train
  - sentencepiece::unigram::Trainer::TrainDiscretePruning
  - sentencepiece::unigram::Trainer::TrainSparsePruning
  - sentencepiece::unigram::Digamma
  - sentencepiece::unigram::ToLogProb
  - sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
  - sentencepiece::unigram::BoundedPriorityQueue::Add
  - sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
  - '& data() const'
  - sentencepiece::unigram::BoundedPriorityQueue::Get
  - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
  - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
  - sentencepiece::unigram::BoundedPriorityQueue::Gc
  - sentencepiece::unigram::Digamma
  - sentencepiece::unigram::ToLogProb
  - sentencepiece::unigram::BoundedPriorityQueue::BoundedPriorityQueue
  - sentencepiece::unigram::BoundedPriorityQueue::Add
  - sentencepiece::unigram::BoundedPriorityQueue::MaybeGc
  - '& data() const'
  - sentencepiece::unigram::BoundedPriorityQueue::Get
  - sentencepiece::unigram::BoundedPriorityQueue::CalculateScore
  - sentencepiece::unigram::BoundedPriorityQueue::CalculatePieceScore
  - sentencepiece::unigram::BoundedPriorityQueue::Gc
  - sentencepiece::unigram::TrainerModel::TrainerModel
  - TrainerModel::~TrainerModel()
  - '& TrainerModel::GetSentencePieces() const'
  - sentencepiece::unigram::TrainerModel::SetSentencePieces
  - sentencepiece::unigram::Trainer::MakeSeedSentencePieces
  - sentencepiece::unigram::Trainer::LoadSeedSentencePiecesFromFile
  - sentencepiece::unigram::Trainer::MakeSeedSentencePiecesFromCorpus
  - sentencepiece::unigram::Trainer::RunEStep
  - sentencepiece::unigram::Trainer::RunMStep
  - sentencepiece::unigram::Trainer::PruneSentencePieces
  - sentencepiece::unigram::Trainer::PruneUnreachableSentencePieces
  - sentencepiece::unigram::Trainer::FinalizeSentencePieces
  - sentencepiece::unigram::Trainer::Train
  - sentencepiece::unigram::Trainer::TrainDiscretePruning
  - sentencepiece::unigram::Trainer::TrainSparsePruning
  source_file: /src/sentencepiece/src/unigram_model_trainer.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* key'
        type: std::string
      - name: score
        type: uint64_t
      item_type: struct
      name: ItemScore
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/sentencepiece/src/unigram_model_trainer.cc
    - fields:
      - name: '* key'
        type: std::string
      - name: score
        type: uint64_t
      item_type: struct
      name: ItemScore
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/sentencepiece/src/unigram_model_trainer.cc
    - fields:
      - name: l
        type: int32_t
      - name: depth
        type: int32_t
      item_type: struct
      name: LCPInterval
      pos:
        line_end: 406
        line_start: 403
        source_file: /src/sentencepiece/src/unigram_model_trainer.cc
    - fields:
      - name: '* key'
        type: std::string
      - name: score
        type: uint64_t
      item_type: struct
      name: ItemScore
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/sentencepiece/src/unigram_model_trainer.cc
    - fields:
      - name: '* key'
        type: std::string
      - name: score
        type: uint64_t
      item_type: struct
      name: ItemScore
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/sentencepiece/src/unigram_model_trainer.cc
    - fields:
      - name: l
        type: int32_t
      - name: depth
        type: int32_t
      item_type: struct
      name: LCPInterval
      pos:
        line_end: 406
        line_start: 403
        source_file: /src/sentencepiece/src/unigram_model_trainer.cc
    - fields:
      - name: '* key'
        type: std::string
      - name: score
        type: uint64_t
      item_type: struct
      name: ItemScore
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/sentencepiece/src/unigram_model_trainer.cc
    - fields:
      - name: '* key'
        type: std::string
      - name: score
        type: uint64_t
      item_type: struct
      name: ItemScore
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/sentencepiece/src/unigram_model_trainer.cc
    - fields:
      - name: l
        type: int32_t
      - name: depth
        type: int32_t
      item_type: struct
      name: LCPInterval
      pos:
        line_end: 406
        line_start: 403
        source_file: /src/sentencepiece/src/unigram_model_trainer.cc
    - fields:
      - name: '* key'
        type: std::string
      - name: score
        type: uint64_t
      item_type: struct
      name: ItemScore
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/sentencepiece/src/unigram_model_trainer.cc
    - fields:
      - name: '* key'
        type: std::string
      - name: score
        type: uint64_t
      item_type: struct
      name: ItemScore
      pos:
        line_end: 99
        line_start: 96
        source_file: /src/sentencepiece/src/unigram_model_trainer.cc
    - fields:
      - name: l
        type: int32_t
      - name: depth
        type: int32_t
      item_type: struct
      name: LCPInterval
      pos:
        line_end: 406
        line_start: 403
        source_file: /src/sentencepiece/src/unigram_model_trainer.cc
    typedefs: []
    union: []
- function_names:
  - sentencepiece::bpe::Trainer::Trainer
  - sentencepiece::bpe::Trainer::IsBigram
  - sentencepiece::bpe::Trainer::Symbol
  - sentencepiece::bpe::Trainer::EncodePos
  - sentencepiece::bpe::Trainer::DecodePos
  - operator()(const QueueEntry& e1, const QueueEntry& e2) const
  - sentencepiece::bpe::Trainer::Trainer
  - sentencepiece::bpe::Trainer::IsBigram
  - sentencepiece::bpe::Trainer::Symbol
  - sentencepiece::bpe::Trainer::EncodePos
  - sentencepiece::bpe::Trainer::DecodePos
  - operator()(const QueueEntry& e1, const QueueEntry& e2) const
  source_file: /src/sentencepiece/src/bpe_model_trainer.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* left'
        type: Symbol
      - name: '* right'
        type: Symbol
      - name: chars
        type: string_util::UnicodeText
      - name: fp
        type: uint64_t
      - name: freq
        type: uint64_t
      - name: is_unk
        type: bool
      - name: active
        type: bool
      - name: pending
        type: bool
      - name: needs_recomputation
        type: bool
      - name: positions
        type: absl::btree_set<uint64_t>
      - name: ToString() const
        type: std::string
      item_type: struct
      name: Symbol
      pos:
        line_end: 74
        line_start: 53
        source_file: /src/sentencepiece/src/bpe_model_trainer.h
    - fields:
      - name: sid
        type: int
      - name: left
        type: int
      - name: right
        type: int
      item_type: struct
      name: Position
      pos:
        line_end: 80
        line_start: 76
        source_file: /src/sentencepiece/src/bpe_model_trainer.h
    - fields:
      - name: freq
        type: uint64_t
      - name: '* symbol'
        type: Symbol
      item_type: struct
      name: QueueEntry
      pos:
        line_end: 135
        line_start: 132
        source_file: /src/sentencepiece/src/bpe_model_trainer.h
    - fields: []
      item_type: struct
      name: QueueEntryComparator
      pos:
        line_end: 147
        line_start: 137
        source_file: /src/sentencepiece/src/bpe_model_trainer.h
    - fields:
      - name: '* left'
        type: Symbol
      - name: '* right'
        type: Symbol
      - name: chars
        type: string_util::UnicodeText
      - name: fp
        type: uint64_t
      - name: freq
        type: uint64_t
      - name: is_unk
        type: bool
      - name: active
        type: bool
      - name: pending
        type: bool
      - name: needs_recomputation
        type: bool
      - name: positions
        type: absl::btree_set<uint64_t>
      - name: ToString() const
        type: std::string
      item_type: struct
      name: Symbol
      pos:
        line_end: 74
        line_start: 53
        source_file: /src/sentencepiece/src/bpe_model_trainer.h
    - fields:
      - name: sid
        type: int
      - name: left
        type: int
      - name: right
        type: int
      item_type: struct
      name: Position
      pos:
        line_end: 80
        line_start: 76
        source_file: /src/sentencepiece/src/bpe_model_trainer.h
    - fields:
      - name: freq
        type: uint64_t
      - name: '* symbol'
        type: Symbol
      item_type: struct
      name: QueueEntry
      pos:
        line_end: 135
        line_start: 132
        source_file: /src/sentencepiece/src/bpe_model_trainer.h
    - fields: []
      item_type: struct
      name: QueueEntryComparator
      pos:
        line_end: 147
        line_start: 137
        source_file: /src/sentencepiece/src/bpe_model_trainer.h
    typedefs: []
    union: []
- function_names:
  - sentencepiece::character::RunTrainer
  - sentencepiece::character::TEST
  - sentencepiece::character::RunTrainer
  - sentencepiece::character::TEST
  - sentencepiece::character::RunTrainer
  - sentencepiece::character::TEST
  - sentencepiece::character::RunTrainer
  - sentencepiece::character::TEST
  - sentencepiece::character::RunTrainer
  - sentencepiece::character::TEST
  - sentencepiece::character::RunTrainer
  - sentencepiece::character::TEST
  - sentencepiece::character::RunTrainer
  - sentencepiece::character::TEST
  - sentencepiece::character::RunTrainer
  - sentencepiece::character::TEST
  source_file: /src/sentencepiece/src/char_model_trainer_test.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/char_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/char_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/char_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/char_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/char_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/char_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/char_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/char_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::character::Model::Model
  - Model::~Model()
  - sentencepiece::character::Model::Encode
  - sentencepiece::character::Model::Model
  - Model::~Model()
  - sentencepiece::character::Model::Encode
  - sentencepiece::character::Model::Model
  - Model::~Model()
  - sentencepiece::character::Model::Encode
  - sentencepiece::character::Model::Model
  - Model::~Model()
  - sentencepiece::character::Model::Encode
  source_file: /src/sentencepiece/src/char_model.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sentencepiece/src/word_model.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::bpe::MakeBaseModelProto
  - sentencepiece::bpe::AddPiece
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::MakeBaseModelProto
  - sentencepiece::bpe::AddPiece
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::MakeBaseModelProto
  - sentencepiece::bpe::AddPiece
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::MakeBaseModelProto
  - sentencepiece::bpe::AddPiece
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::MakeBaseModelProto
  - sentencepiece::bpe::AddPiece
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::MakeBaseModelProto
  - sentencepiece::bpe::AddPiece
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::MakeBaseModelProto
  - sentencepiece::bpe::AddPiece
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::MakeBaseModelProto
  - sentencepiece::bpe::AddPiece
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  source_file: /src/sentencepiece/src/bpe_model_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/sentencepiece/src/test_main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~SentenceIterator()
  - sentencepiece::SentencePieceTrainer::SentencePieceTrainer
  - ~SentencePieceTrainer()
  - ~SentenceIterator()
  - sentencepiece::SentencePieceTrainer::SentencePieceTrainer
  - ~SentencePieceTrainer()
  source_file: /src/sentencepiece/src/sentencepiece_trainer.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* sentence_iterator'
        type: SentenceIterator
      - name: pretokenizer
        type: Pretokenizer
      - name: allow_inconsistent_pretokenization
        type: bool
      - name: '& operator=(const TrainerComponents& other)'
        type: TrainerComponents
      - name: '& operator=(TrainerComponents&& other) noexcept'
        type: TrainerComponents
      - name: '* mutable_trainer_spec()'
        type: TrainerSpec
      - name: '& trainer_spec() const'
        type: TrainerSpec
      - name: '* mutable_normalizer_spec()'
        type: NormalizerSpec
      - name: '& normalizer_spec() const'
        type: NormalizerSpec
      - name: '* mutable_denormalizer_spec()'
        type: NormalizerSpec
      - name: '& denormalizer_spec() const'
        type: NormalizerSpec
      - name: impl_
        type: std::unique_ptr<Impl>
      item_type: struct
      name: TrainerComponents
      pos:
        line_end: 86
        line_start: 59
        source_file: /src/sentencepiece/src/sentencepiece_trainer.h
    - fields:
      - name: '* sentence_iterator'
        type: SentenceIterator
      - name: pretokenizer
        type: Pretokenizer
      - name: allow_inconsistent_pretokenization
        type: bool
      - name: '& operator=(const TrainerComponents& other)'
        type: TrainerComponents
      - name: '& operator=(TrainerComponents&& other) noexcept'
        type: TrainerComponents
      - name: '* mutable_trainer_spec()'
        type: TrainerSpec
      - name: '& trainer_spec() const'
        type: TrainerSpec
      - name: '* mutable_normalizer_spec()'
        type: NormalizerSpec
      - name: '& normalizer_spec() const'
        type: NormalizerSpec
      - name: '* mutable_denormalizer_spec()'
        type: NormalizerSpec
      - name: '& denormalizer_spec() const'
        type: NormalizerSpec
      - name: impl_
        type: std::unique_ptr<Impl>
      item_type: struct
      name: TrainerComponents
      pos:
        line_end: 86
        line_start: 59
        source_file: /src/sentencepiece/src/sentencepiece_trainer.h
    typedefs: []
    union: []
- function_names:
  - sentencepiece::Sorted
  - sentencepiece::Sorted
  - ~MultiFileSentenceIterator() override
  - '& value() const override'
  - sentencepiece::TrainerInterface::Train
  - sentencepiece::TrainerInterface::Train
  - sentencepiece::TrainerInterface::Train
  - sentencepiece::TrainerInterface::status
  - sentencepiece::Sorted
  - sentencepiece::Sorted
  - ~MultiFileSentenceIterator() override
  - '& value() const override'
  - sentencepiece::TrainerInterface::Train
  - sentencepiece::TrainerInterface::Train
  - sentencepiece::TrainerInterface::Train
  - sentencepiece::TrainerInterface::status
  source_file: /src/sentencepiece/src/trainer_interface.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::TEST
  - sentencepiece::TEST
  source_file: /src/sentencepiece/src/model_factory_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::MockModel::SetEncodeResult
  - sentencepiece::MockModel::SetNBestEncodeResult
  - sentencepiece::MockModel::Encode
  - sentencepiece::MockModel::SampleEncode
  - sentencepiece::MockModel::NBestEncode
  - sentencepiece::MockModel::IsSampleEncodeAvailable
  - sentencepiece::MockModel::IsNBestEncodeAvailable
  - sentencepiece::MockModel::IsControl
  - sentencepiece::MockModel::IsUnknown
  - sentencepiece::MockModel::GetPieceSize
  - sentencepiece::MockModel::PieceToId
  - '& IdToPiece(int id) const override'
  - sentencepiece::MockModel::GetScore
  - sentencepiece::ByteFallbackMockModel::ByteFallbackEnabled
  - sentencepiece::GetSpVec
  - sentencepiece::GetIdVec
  - sentencepiece::GetSpVec
  - sentencepiece::MakeDefaultNormalizerSpec
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::DecodeMockModel::Encode
  - sentencepiece::DecodeMockModel::GetPieceSize
  - sentencepiece::DecodeMockModel::PieceToId
  - '& IdToPiece(int id) const override'
  - sentencepiece::DecodeMockModel::IsUnknown
  - sentencepiece::DecodeMockModel::IsControl
  - sentencepiece::DecodeMockModel::IsByte
  - sentencepiece::DecodeMockModel::GetScore
  - sentencepiece::TEST
  - sentencepiece::DecodeMockModel::Encode
  - sentencepiece::DecodeMockModel::GetPieceSize
  - sentencepiece::DecodeMockModel::PieceToId
  - '& IdToPiece(int id) const override'
  - sentencepiece::DecodeMockModel::IsUnknown
  - sentencepiece::DecodeMockModel::IsControl
  - sentencepiece::DecodeMockModel::IsByte
  - sentencepiece::DecodeMockModel::GetScore
  - sentencepiece::TEST
  - sentencepiece::ByteFallbackDecodeMockModel::Encode
  - sentencepiece::ByteFallbackDecodeMockModel::PieceToId
  - '& IdToPiece(int id) const override'
  - sentencepiece::ByteFallbackDecodeMockModel::GetPieceSize
  - sentencepiece::ByteFallbackDecodeMockModel::IsUnknown
  - sentencepiece::ByteFallbackDecodeMockModel::IsControl
  - sentencepiece::ByteFallbackDecodeMockModel::IsByte
  - sentencepiece::ByteFallbackDecodeMockModel::ByteFallbackEnabled
  - sentencepiece::AddPiece
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::MockModel::SetEncodeResult
  - sentencepiece::MockModel::SetNBestEncodeResult
  - sentencepiece::MockModel::Encode
  - sentencepiece::MockModel::SampleEncode
  - sentencepiece::MockModel::NBestEncode
  - sentencepiece::MockModel::IsSampleEncodeAvailable
  - sentencepiece::MockModel::IsNBestEncodeAvailable
  - sentencepiece::MockModel::IsControl
  - sentencepiece::MockModel::IsUnknown
  - sentencepiece::MockModel::GetPieceSize
  - sentencepiece::MockModel::PieceToId
  - '& IdToPiece(int id) const override'
  - sentencepiece::MockModel::GetScore
  - sentencepiece::ByteFallbackMockModel::ByteFallbackEnabled
  - sentencepiece::GetSpVec
  - sentencepiece::GetIdVec
  - sentencepiece::GetSpVec
  - sentencepiece::MakeDefaultNormalizerSpec
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::DecodeMockModel::Encode
  - sentencepiece::DecodeMockModel::GetPieceSize
  - sentencepiece::DecodeMockModel::PieceToId
  - '& IdToPiece(int id) const override'
  - sentencepiece::DecodeMockModel::IsUnknown
  - sentencepiece::DecodeMockModel::IsControl
  - sentencepiece::DecodeMockModel::IsByte
  - sentencepiece::DecodeMockModel::GetScore
  - sentencepiece::TEST
  - sentencepiece::DecodeMockModel::Encode
  - sentencepiece::DecodeMockModel::GetPieceSize
  - sentencepiece::DecodeMockModel::PieceToId
  - '& IdToPiece(int id) const override'
  - sentencepiece::DecodeMockModel::IsUnknown
  - sentencepiece::DecodeMockModel::IsControl
  - sentencepiece::DecodeMockModel::IsByte
  - sentencepiece::DecodeMockModel::GetScore
  - sentencepiece::TEST
  - sentencepiece::ByteFallbackDecodeMockModel::Encode
  - sentencepiece::ByteFallbackDecodeMockModel::PieceToId
  - '& IdToPiece(int id) const override'
  - sentencepiece::ByteFallbackDecodeMockModel::GetPieceSize
  - sentencepiece::ByteFallbackDecodeMockModel::IsUnknown
  - sentencepiece::ByteFallbackDecodeMockModel::IsControl
  - sentencepiece::ByteFallbackDecodeMockModel::IsByte
  - sentencepiece::ByteFallbackDecodeMockModel::ByteFallbackEnabled
  - sentencepiece::AddPiece
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  source_file: /src/sentencepiece/src/sentencepiece_processor_test.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sentencepiece/src/sentencepiece_processor_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sentencepiece/src/sentencepiece_processor_test.cc
      type_or_value: '"\xe2\x96\x81"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::ModelInterface::ModelInterface
  - sentencepiece::ModelInterface::status
  - '& model_proto() const'
  - sentencepiece::ModelInterface::prefix_matcher
  - sentencepiece::ModelInterface::NBestEncode
  - sentencepiece::ModelInterface::SampleEncode
  - sentencepiece::ModelInterface::IsSampleEncodeAvailable
  - sentencepiece::ModelInterface::IsNBestEncodeAvailable
  - '& IdToPiece(int id) const'
  - sentencepiece::ModelInterface::GetPieceSize
  - sentencepiece::ModelInterface::GetScore
  - sentencepiece::ModelInterface::IsUnknown
  - sentencepiece::ModelInterface::IsControl
  - sentencepiece::ModelInterface::IsUnused
  - sentencepiece::ModelInterface::IsUserDefined
  - sentencepiece::ModelInterface::IsByte
  - sentencepiece::ModelInterface::ByteFallbackEnabled
  - sentencepiece::ModelInterface::VerifyOutputsEquivalent
  - sentencepiece::ModelInterface::GetScoreInlined
  - sentencepiece::ModelInterface::IsUnknownInlined
  - sentencepiece::ModelInterface::IsControlInlined
  - sentencepiece::ModelInterface::IsUnusedInlined
  - sentencepiece::ModelInterface::IsUserDefinedInlined
  - sentencepiece::ModelInterface::IsByteInlined
  - sentencepiece::ModelInterface::IsReservedId
  - sentencepiece::ModelInterface::ModelInterface
  - sentencepiece::ModelInterface::status
  - '& model_proto() const'
  - sentencepiece::ModelInterface::prefix_matcher
  - sentencepiece::ModelInterface::NBestEncode
  - sentencepiece::ModelInterface::SampleEncode
  - sentencepiece::ModelInterface::IsSampleEncodeAvailable
  - sentencepiece::ModelInterface::IsNBestEncodeAvailable
  - '& IdToPiece(int id) const'
  - sentencepiece::ModelInterface::GetPieceSize
  - sentencepiece::ModelInterface::GetScore
  - sentencepiece::ModelInterface::IsUnknown
  - sentencepiece::ModelInterface::IsControl
  - sentencepiece::ModelInterface::IsUnused
  - sentencepiece::ModelInterface::IsUserDefined
  - sentencepiece::ModelInterface::IsByte
  - sentencepiece::ModelInterface::ByteFallbackEnabled
  - sentencepiece::ModelInterface::VerifyOutputsEquivalent
  - sentencepiece::ModelInterface::GetScoreInlined
  - sentencepiece::ModelInterface::IsUnknownInlined
  - sentencepiece::ModelInterface::IsControlInlined
  - sentencepiece::ModelInterface::IsUnusedInlined
  - sentencepiece::ModelInterface::IsUserDefinedInlined
  - sentencepiece::ModelInterface::IsByteInlined
  - sentencepiece::ModelInterface::IsReservedId
  source_file: /src/sentencepiece/src/model_interface.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::CheckVocab
  - sentencepiece::CheckNormalizer
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::VectorIterator::VectorIterator
  - sentencepiece::VectorIterator::done
  - sentencepiece::VectorIterator::Next
  - '& value() const override'
  - sentencepiece::VectorIterator::status
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::CheckVocab
  - sentencepiece::CheckNormalizer
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::VectorIterator::VectorIterator
  - sentencepiece::VectorIterator::done
  - sentencepiece::VectorIterator::Next
  - '& value() const override'
  - sentencepiece::VectorIterator::status
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::CheckVocab
  - sentencepiece::CheckNormalizer
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::VectorIterator::VectorIterator
  - sentencepiece::VectorIterator::done
  - sentencepiece::VectorIterator::Next
  - '& value() const override'
  - sentencepiece::VectorIterator::status
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::CheckVocab
  - sentencepiece::CheckNormalizer
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::VectorIterator::VectorIterator
  - sentencepiece::VectorIterator::done
  - sentencepiece::VectorIterator::Next
  - '& value() const override'
  - sentencepiece::VectorIterator::status
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  source_file: /src/sentencepiece/src/sentencepiece_trainer_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::bpe::Model::Encode
  - sentencepiece::bpe::Model::IsSampleEncodeAvailable
  - sentencepiece::bpe::Model::IsNBestEncodeAvailable
  - sentencepiece::bpe::Model::Encode
  - sentencepiece::bpe::Model::IsSampleEncodeAvailable
  - sentencepiece::bpe::Model::IsNBestEncodeAvailable
  - sentencepiece::bpe::Model::Encode
  - sentencepiece::bpe::Model::IsSampleEncodeAvailable
  - sentencepiece::bpe::Model::IsNBestEncodeAvailable
  - sentencepiece::bpe::Model::Encode
  - sentencepiece::bpe::Model::IsSampleEncodeAvailable
  - sentencepiece::bpe::Model::IsNBestEncodeAvailable
  source_file: /src/sentencepiece/src/bpe_model.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WPATH
  - WPATH
  - sentencepiece::filesystem::PosixReadableFile::PosixReadableFile
  - ~PosixReadableFile() override
  - sentencepiece::filesystem::PosixReadableFile::status
  - sentencepiece::filesystem::PosixReadableFile::ReadLine
  - sentencepiece::filesystem::PosixReadableFile::ReadAll
  - sentencepiece::filesystem::PosixWritableFile::PosixWritableFile
  - ~PosixWritableFile() override
  - sentencepiece::filesystem::PosixWritableFile::status
  - sentencepiece::filesystem::PosixWritableFile::Write
  - sentencepiece::filesystem::PosixWritableFile::WriteLine
  - sentencepiece::filesystem::NewReadableFile
  - sentencepiece::filesystem::NewWritableFile
  - sentencepiece::filesystem::PosixReadableFile::PosixReadableFile
  - ~PosixReadableFile() override
  - sentencepiece::filesystem::PosixReadableFile::status
  - sentencepiece::filesystem::PosixReadableFile::ReadLine
  - sentencepiece::filesystem::PosixReadableFile::ReadAll
  - sentencepiece::filesystem::PosixWritableFile::PosixWritableFile
  - ~PosixWritableFile() override
  - sentencepiece::filesystem::PosixWritableFile::status
  - sentencepiece::filesystem::PosixWritableFile::Write
  - sentencepiece::filesystem::PosixWritableFile::WriteLine
  - sentencepiece::filesystem::NewReadableFile
  - sentencepiece::filesystem::NewWritableFile
  - sentencepiece::filesystem::PosixReadableFile::PosixReadableFile
  - ~PosixReadableFile() override
  - sentencepiece::filesystem::PosixReadableFile::status
  - sentencepiece::filesystem::PosixReadableFile::ReadLine
  - sentencepiece::filesystem::PosixReadableFile::ReadAll
  - sentencepiece::filesystem::PosixWritableFile::PosixWritableFile
  - ~PosixWritableFile() override
  - sentencepiece::filesystem::PosixWritableFile::status
  - sentencepiece::filesystem::PosixWritableFile::Write
  - sentencepiece::filesystem::PosixWritableFile::WriteLine
  - sentencepiece::filesystem::NewReadableFile
  - sentencepiece::filesystem::NewWritableFile
  - sentencepiece::filesystem::PosixReadableFile::PosixReadableFile
  - ~PosixReadableFile() override
  - sentencepiece::filesystem::PosixReadableFile::status
  - sentencepiece::filesystem::PosixReadableFile::ReadLine
  - sentencepiece::filesystem::PosixReadableFile::ReadAll
  - sentencepiece::filesystem::PosixWritableFile::PosixWritableFile
  - ~PosixWritableFile() override
  - sentencepiece::filesystem::PosixWritableFile::status
  - sentencepiece::filesystem::PosixWritableFile::Write
  - sentencepiece::filesystem::PosixWritableFile::WriteLine
  - sentencepiece::filesystem::NewReadableFile
  - sentencepiece::filesystem::NewWritableFile
  source_file: /src/sentencepiece/src/filesystem.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::ToChar32
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::ToChar32
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  source_file: /src/sentencepiece/src/trainer_interface_test.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/sentencepiece/src/trainer_interface_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/sentencepiece/src/trainer_interface_test.cc
      type_or_value: '"\xe2\x96\x81"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::filesystem::ReadableFile::ReadableFile
  - sentencepiece::filesystem::ReadableFile::ReadableFile
  - ~ReadableFile()
  - sentencepiece::filesystem::WritableFile::WritableFile
  - sentencepiece::filesystem::WritableFile::WritableFile
  - ~WritableFile()
  - sentencepiece::filesystem::ReadableFile::ReadableFile
  - sentencepiece::filesystem::ReadableFile::ReadableFile
  - ~ReadableFile()
  - sentencepiece::filesystem::WritableFile::WritableFile
  - sentencepiece::filesystem::WritableFile::WritableFile
  - ~WritableFile()
  - sentencepiece::filesystem::ReadableFile::ReadableFile
  - sentencepiece::filesystem::ReadableFile::ReadableFile
  - ~ReadableFile()
  - sentencepiece::filesystem::WritableFile::WritableFile
  - sentencepiece::filesystem::WritableFile::WritableFile
  - ~WritableFile()
  - sentencepiece::filesystem::ReadableFile::ReadableFile
  - sentencepiece::filesystem::ReadableFile::ReadableFile
  - ~ReadableFile()
  - sentencepiece::filesystem::WritableFile::WritableFile
  - sentencepiece::filesystem::WritableFile::WritableFile
  - ~WritableFile()
  source_file: /src/sentencepiece/src/filesystem.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sentencepiece/src/unicode_script.h
  types:
    enum:
    - enumerators:
      - name: U_Anatolian_Hieroglyphs
      - name: U_Balinese
      - name: U_Cherokee
      - name: U_Gothic
      - name: U_Kaithi
      - name: U_Lydian
      - name: U_Nabataean
      - name: U_Osage
      - name: U_Sinhala
      - name: U_Tibetan
      - name: U_Buginese
      - name: U_Egyptian_Hieroglyphs
      - name: U_Latin
      - name: U_Hebrew
      - name: U_Meroitic_Hieroglyphs
      - name: U_Old_Italic
      - name: U_Runic
      - name: U_Tai_Viet
      - name: U_Katakana
      - name: U_Bassa_Vah
      - name: U_Coptic
      - name: U_Greek
      - name: U_Malayalam
      - name: U_Newa
      - name: U_Pahawh_Hmong
      - name: U_Sundanese
      - name: U_Tirhuta
      - name: U_Limbu
      - name: U_Canadian_Aboriginal
      - name: U_Ethiopic
      - name: U_Imperial_Aramaic
      - name: U_Modi
      - name: U_Old_Permic
      - name: U_Saurashtra
      - name: U_Tamil
      - name: U_Bengali
      - name: U_Cypriot
      - name: U_Manichaean
      - name: U_Kharoshthi
      - name: U_Gurmukhi
      - name: U_Ogham
      - name: U_Pau_Cin_Hau
      - name: U_Syriac
      - name: U_Vai
      - name: U_Linear_B
      - name: U_Inscriptional_Pahlavi
      - name: U_Arabic
      - name: U_Caucasian_Albanian
      - name: U_Mro
      - name: U_Old_South_Arabian
      - name: U_Shavian
      - name: U_Telugu
      - name: U_Bopomofo
      - name: U_Deseret
      - name: U_Meetei_Mayek
      - name: U_Khojki
      - name: U_Hangul
      - name: U_Old_Hungarian
      - name: U_Phoenician
      - name: U_Tagbanwa
      - name: U_Yi
      - name: U_Lycian
      - name: U_Javanese
      - name: U_Avestan
      - name: U_Cham
      - name: U_Glagolitic
      - name: U_Myanmar
      - name: U_Oriya
      - name: U_SignWriting
      - name: U_Thai
      - name: U_Braille
      - name: U_Duployan
      - name: U_Meroitic_Cursive
      - name: U_Lao
      - name: U_Hatran
      - name: U_Rejang
      - name: U_Tai_Tham
      - name: U_Bamum
      - name: U_Common
      - name: U_Grantha
      - name: U_Mahajani
      - name: U_Kannada
      - name: U_New_Tai_Lue
      - name: U_Osmanya
      - name: U_Sora_Sompeng
      - name: U_Tifinagh
      - name: U_Adlam
      - name: U_Buhid
      - name: U_Elbasan
      - name: U_Lepcha
      - name: U_Hiragana
      - name: U_Miao
      - name: U_Old_North_Arabian
      - name: U_Samaritan
      - name: U_Takri
      - name: U_Mandaic
      - name: U_Kayah_Li
      - name: U_Gujarati
      - name: U_Batak
      - name: U_Cuneiform
      - name: U_Nko
      - name: U_Palmyrene
      - name: U_Syloti_Nagri
      - name: U_Ugaritic
      - name: U_Carian
      - name: U_Georgian
      - name: U_Inherited
      - name: U_Linear_A
      - name: U_Mongolian
      - name: U_Old_Persian
      - name: U_Sharada
      - name: U_Tangut
      - name: U_Bhaiksuki
      - name: U_Cyrillic
      - name: U_Han
      - name: U_Marchen
      - name: U_Khmer
      - name: U_Ol_Chiki
      - name: U_Phags_Pa
      - name: U_Tagalog
      - name: U_Warang_Citi
      - name: U_Lisu
      - name: U_Inscriptional_Parthian
      - name: U_Armenian
      - name: U_Chakma
      - name: U_Multani
      - name: U_Old_Turkic
      - name: U_Siddham
      - name: U_Thaana
      - name: U_Khudawadi
      - name: U_Mende_Kikakui
      - name: U_Hanunoo
      - name: U_Ahom
      - name: U_Brahmi
      - name: U_Devanagari
      - name: U_Psalter_Pahlavi
      - name: U_Tai_Le
      item_type: enum
      name: ScriptType
      pos:
        line_end: 159
        line_start: 21
        source_file: /src/sentencepiece/src/unicode_script.h
    - enumerators:
      - name: U_Anatolian_Hieroglyphs
      - name: U_Balinese
      - name: U_Cherokee
      - name: U_Gothic
      - name: U_Kaithi
      - name: U_Lydian
      - name: U_Nabataean
      - name: U_Osage
      - name: U_Sinhala
      - name: U_Tibetan
      - name: U_Buginese
      - name: U_Egyptian_Hieroglyphs
      - name: U_Latin
      - name: U_Hebrew
      - name: U_Meroitic_Hieroglyphs
      - name: U_Old_Italic
      - name: U_Runic
      - name: U_Tai_Viet
      - name: U_Katakana
      - name: U_Bassa_Vah
      - name: U_Coptic
      - name: U_Greek
      - name: U_Malayalam
      - name: U_Newa
      - name: U_Pahawh_Hmong
      - name: U_Sundanese
      - name: U_Tirhuta
      - name: U_Limbu
      - name: U_Canadian_Aboriginal
      - name: U_Ethiopic
      - name: U_Imperial_Aramaic
      - name: U_Modi
      - name: U_Old_Permic
      - name: U_Saurashtra
      - name: U_Tamil
      - name: U_Bengali
      - name: U_Cypriot
      - name: U_Manichaean
      - name: U_Kharoshthi
      - name: U_Gurmukhi
      - name: U_Ogham
      - name: U_Pau_Cin_Hau
      - name: U_Syriac
      - name: U_Vai
      - name: U_Linear_B
      - name: U_Inscriptional_Pahlavi
      - name: U_Arabic
      - name: U_Caucasian_Albanian
      - name: U_Mro
      - name: U_Old_South_Arabian
      - name: U_Shavian
      - name: U_Telugu
      - name: U_Bopomofo
      - name: U_Deseret
      - name: U_Meetei_Mayek
      - name: U_Khojki
      - name: U_Hangul
      - name: U_Old_Hungarian
      - name: U_Phoenician
      - name: U_Tagbanwa
      - name: U_Yi
      - name: U_Lycian
      - name: U_Javanese
      - name: U_Avestan
      - name: U_Cham
      - name: U_Glagolitic
      - name: U_Myanmar
      - name: U_Oriya
      - name: U_SignWriting
      - name: U_Thai
      - name: U_Braille
      - name: U_Duployan
      - name: U_Meroitic_Cursive
      - name: U_Lao
      - name: U_Hatran
      - name: U_Rejang
      - name: U_Tai_Tham
      - name: U_Bamum
      - name: U_Common
      - name: U_Grantha
      - name: U_Mahajani
      - name: U_Kannada
      - name: U_New_Tai_Lue
      - name: U_Osmanya
      - name: U_Sora_Sompeng
      - name: U_Tifinagh
      - name: U_Adlam
      - name: U_Buhid
      - name: U_Elbasan
      - name: U_Lepcha
      - name: U_Hiragana
      - name: U_Miao
      - name: U_Old_North_Arabian
      - name: U_Samaritan
      - name: U_Takri
      - name: U_Mandaic
      - name: U_Kayah_Li
      - name: U_Gujarati
      - name: U_Batak
      - name: U_Cuneiform
      - name: U_Nko
      - name: U_Palmyrene
      - name: U_Syloti_Nagri
      - name: U_Ugaritic
      - name: U_Carian
      - name: U_Georgian
      - name: U_Inherited
      - name: U_Linear_A
      - name: U_Mongolian
      - name: U_Old_Persian
      - name: U_Sharada
      - name: U_Tangut
      - name: U_Bhaiksuki
      - name: U_Cyrillic
      - name: U_Han
      - name: U_Marchen
      - name: U_Khmer
      - name: U_Ol_Chiki
      - name: U_Phags_Pa
      - name: U_Tagalog
      - name: U_Warang_Citi
      - name: U_Lisu
      - name: U_Inscriptional_Parthian
      - name: U_Armenian
      - name: U_Chakma
      - name: U_Multani
      - name: U_Old_Turkic
      - name: U_Siddham
      - name: U_Thaana
      - name: U_Khudawadi
      - name: U_Mende_Kikakui
      - name: U_Hanunoo
      - name: U_Ahom
      - name: U_Brahmi
      - name: U_Devanagari
      - name: U_Psalter_Pahlavi
      - name: U_Tai_Le
      item_type: enum
      name: ScriptType
      pos:
        line_end: 159
        line_start: 21
        source_file: /src/sentencepiece/src/unicode_script.h
    - enumerators:
      - name: U_Anatolian_Hieroglyphs
      - name: U_Balinese
      - name: U_Cherokee
      - name: U_Gothic
      - name: U_Kaithi
      - name: U_Lydian
      - name: U_Nabataean
      - name: U_Osage
      - name: U_Sinhala
      - name: U_Tibetan
      - name: U_Buginese
      - name: U_Egyptian_Hieroglyphs
      - name: U_Latin
      - name: U_Hebrew
      - name: U_Meroitic_Hieroglyphs
      - name: U_Old_Italic
      - name: U_Runic
      - name: U_Tai_Viet
      - name: U_Katakana
      - name: U_Bassa_Vah
      - name: U_Coptic
      - name: U_Greek
      - name: U_Malayalam
      - name: U_Newa
      - name: U_Pahawh_Hmong
      - name: U_Sundanese
      - name: U_Tirhuta
      - name: U_Limbu
      - name: U_Canadian_Aboriginal
      - name: U_Ethiopic
      - name: U_Imperial_Aramaic
      - name: U_Modi
      - name: U_Old_Permic
      - name: U_Saurashtra
      - name: U_Tamil
      - name: U_Bengali
      - name: U_Cypriot
      - name: U_Manichaean
      - name: U_Kharoshthi
      - name: U_Gurmukhi
      - name: U_Ogham
      - name: U_Pau_Cin_Hau
      - name: U_Syriac
      - name: U_Vai
      - name: U_Linear_B
      - name: U_Inscriptional_Pahlavi
      - name: U_Arabic
      - name: U_Caucasian_Albanian
      - name: U_Mro
      - name: U_Old_South_Arabian
      - name: U_Shavian
      - name: U_Telugu
      - name: U_Bopomofo
      - name: U_Deseret
      - name: U_Meetei_Mayek
      - name: U_Khojki
      - name: U_Hangul
      - name: U_Old_Hungarian
      - name: U_Phoenician
      - name: U_Tagbanwa
      - name: U_Yi
      - name: U_Lycian
      - name: U_Javanese
      - name: U_Avestan
      - name: U_Cham
      - name: U_Glagolitic
      - name: U_Myanmar
      - name: U_Oriya
      - name: U_SignWriting
      - name: U_Thai
      - name: U_Braille
      - name: U_Duployan
      - name: U_Meroitic_Cursive
      - name: U_Lao
      - name: U_Hatran
      - name: U_Rejang
      - name: U_Tai_Tham
      - name: U_Bamum
      - name: U_Common
      - name: U_Grantha
      - name: U_Mahajani
      - name: U_Kannada
      - name: U_New_Tai_Lue
      - name: U_Osmanya
      - name: U_Sora_Sompeng
      - name: U_Tifinagh
      - name: U_Adlam
      - name: U_Buhid
      - name: U_Elbasan
      - name: U_Lepcha
      - name: U_Hiragana
      - name: U_Miao
      - name: U_Old_North_Arabian
      - name: U_Samaritan
      - name: U_Takri
      - name: U_Mandaic
      - name: U_Kayah_Li
      - name: U_Gujarati
      - name: U_Batak
      - name: U_Cuneiform
      - name: U_Nko
      - name: U_Palmyrene
      - name: U_Syloti_Nagri
      - name: U_Ugaritic
      - name: U_Carian
      - name: U_Georgian
      - name: U_Inherited
      - name: U_Linear_A
      - name: U_Mongolian
      - name: U_Old_Persian
      - name: U_Sharada
      - name: U_Tangut
      - name: U_Bhaiksuki
      - name: U_Cyrillic
      - name: U_Han
      - name: U_Marchen
      - name: U_Khmer
      - name: U_Ol_Chiki
      - name: U_Phags_Pa
      - name: U_Tagalog
      - name: U_Warang_Citi
      - name: U_Lisu
      - name: U_Inscriptional_Parthian
      - name: U_Armenian
      - name: U_Chakma
      - name: U_Multani
      - name: U_Old_Turkic
      - name: U_Siddham
      - name: U_Thaana
      - name: U_Khudawadi
      - name: U_Mende_Kikakui
      - name: U_Hanunoo
      - name: U_Ahom
      - name: U_Brahmi
      - name: U_Devanagari
      - name: U_Psalter_Pahlavi
      - name: U_Tai_Le
      item_type: enum
      name: ScriptType
      pos:
        line_end: 159
        line_start: 21
        source_file: /src/sentencepiece/src/unicode_script.h
    - enumerators:
      - name: U_Anatolian_Hieroglyphs
      - name: U_Balinese
      - name: U_Cherokee
      - name: U_Gothic
      - name: U_Kaithi
      - name: U_Lydian
      - name: U_Nabataean
      - name: U_Osage
      - name: U_Sinhala
      - name: U_Tibetan
      - name: U_Buginese
      - name: U_Egyptian_Hieroglyphs
      - name: U_Latin
      - name: U_Hebrew
      - name: U_Meroitic_Hieroglyphs
      - name: U_Old_Italic
      - name: U_Runic
      - name: U_Tai_Viet
      - name: U_Katakana
      - name: U_Bassa_Vah
      - name: U_Coptic
      - name: U_Greek
      - name: U_Malayalam
      - name: U_Newa
      - name: U_Pahawh_Hmong
      - name: U_Sundanese
      - name: U_Tirhuta
      - name: U_Limbu
      - name: U_Canadian_Aboriginal
      - name: U_Ethiopic
      - name: U_Imperial_Aramaic
      - name: U_Modi
      - name: U_Old_Permic
      - name: U_Saurashtra
      - name: U_Tamil
      - name: U_Bengali
      - name: U_Cypriot
      - name: U_Manichaean
      - name: U_Kharoshthi
      - name: U_Gurmukhi
      - name: U_Ogham
      - name: U_Pau_Cin_Hau
      - name: U_Syriac
      - name: U_Vai
      - name: U_Linear_B
      - name: U_Inscriptional_Pahlavi
      - name: U_Arabic
      - name: U_Caucasian_Albanian
      - name: U_Mro
      - name: U_Old_South_Arabian
      - name: U_Shavian
      - name: U_Telugu
      - name: U_Bopomofo
      - name: U_Deseret
      - name: U_Meetei_Mayek
      - name: U_Khojki
      - name: U_Hangul
      - name: U_Old_Hungarian
      - name: U_Phoenician
      - name: U_Tagbanwa
      - name: U_Yi
      - name: U_Lycian
      - name: U_Javanese
      - name: U_Avestan
      - name: U_Cham
      - name: U_Glagolitic
      - name: U_Myanmar
      - name: U_Oriya
      - name: U_SignWriting
      - name: U_Thai
      - name: U_Braille
      - name: U_Duployan
      - name: U_Meroitic_Cursive
      - name: U_Lao
      - name: U_Hatran
      - name: U_Rejang
      - name: U_Tai_Tham
      - name: U_Bamum
      - name: U_Common
      - name: U_Grantha
      - name: U_Mahajani
      - name: U_Kannada
      - name: U_New_Tai_Lue
      - name: U_Osmanya
      - name: U_Sora_Sompeng
      - name: U_Tifinagh
      - name: U_Adlam
      - name: U_Buhid
      - name: U_Elbasan
      - name: U_Lepcha
      - name: U_Hiragana
      - name: U_Miao
      - name: U_Old_North_Arabian
      - name: U_Samaritan
      - name: U_Takri
      - name: U_Mandaic
      - name: U_Kayah_Li
      - name: U_Gujarati
      - name: U_Batak
      - name: U_Cuneiform
      - name: U_Nko
      - name: U_Palmyrene
      - name: U_Syloti_Nagri
      - name: U_Ugaritic
      - name: U_Carian
      - name: U_Georgian
      - name: U_Inherited
      - name: U_Linear_A
      - name: U_Mongolian
      - name: U_Old_Persian
      - name: U_Sharada
      - name: U_Tangut
      - name: U_Bhaiksuki
      - name: U_Cyrillic
      - name: U_Han
      - name: U_Marchen
      - name: U_Khmer
      - name: U_Ol_Chiki
      - name: U_Phags_Pa
      - name: U_Tagalog
      - name: U_Warang_Citi
      - name: U_Lisu
      - name: U_Inscriptional_Parthian
      - name: U_Armenian
      - name: U_Chakma
      - name: U_Multani
      - name: U_Old_Turkic
      - name: U_Siddham
      - name: U_Thaana
      - name: U_Khudawadi
      - name: U_Mende_Kikakui
      - name: U_Hanunoo
      - name: U_Ahom
      - name: U_Brahmi
      - name: U_Devanagari
      - name: U_Psalter_Pahlavi
      - name: U_Tai_Le
      item_type: enum
      name: ScriptType
      pos:
        line_end: 159
        line_start: 21
        source_file: /src/sentencepiece/src/unicode_script.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::LoadModelProto
  - sentencepiece::LoadInput
  - sentencepiece::BM_Encode
  - sentencepiece::BM_Encode_ShortLines
  - sentencepiece::BM_Decode
  - sentencepiece::BM_EncodeBotchan_Sequential
  - sentencepiece::BM_EncodeBotchan_Parallel
  - sentencepiece::BM_EncodeBotchan_ShortLines
  - sentencepiece::BM_EncodeWagahaiwaNekodearu_Sequential
  - sentencepiece::BM_EncodeWagahaiwaNekodearu_Parallel
  - sentencepiece::BM_OSSModel_Sequential
  - sentencepiece::BM_OSSModel_Parallel
  - sentencepiece::BM_DecodeBotchan_Ids
  - sentencepiece::BM_DecodeBotchan_Pieces
  - sentencepiece::BM_DecodeWagahaiwaNekodearu_Ids
  - sentencepiece::BM_DecodeOSSModel_Ids
  - sentencepiece::LoadModelProto
  - sentencepiece::LoadInput
  - sentencepiece::BM_Encode
  - sentencepiece::BM_Encode_ShortLines
  - sentencepiece::BM_Decode
  - sentencepiece::BM_EncodeBotchan_Sequential
  - sentencepiece::BM_EncodeBotchan_Parallel
  - sentencepiece::BM_EncodeBotchan_ShortLines
  - sentencepiece::BM_EncodeWagahaiwaNekodearu_Sequential
  - sentencepiece::BM_EncodeWagahaiwaNekodearu_Parallel
  - sentencepiece::BM_OSSModel_Sequential
  - sentencepiece::BM_OSSModel_Parallel
  - sentencepiece::BM_DecodeBotchan_Ids
  - sentencepiece::BM_DecodeBotchan_Pieces
  - sentencepiece::BM_DecodeWagahaiwaNekodearu_Ids
  - sentencepiece::BM_DecodeOSSModel_Ids
  source_file: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
  types:
    enum:
    - enumerators:
      - name: kSequential
        value: '0'
      - name: kParallel
        value: '1'
      item_type: enum
      name: BenchmarkMode
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    - enumerators:
      - name: kIds
        value: '0'
      - name: kPieces
        value: '1'
      item_type: enum
      name: DecodeInputMode
      pos:
        line_end: 131
        line_start: 128
        source_file: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    - enumerators:
      - name: kSequential
        value: '0'
      - name: kParallel
        value: '1'
      item_type: enum
      name: BenchmarkMode
      pos:
        line_end: 43
        line_start: 40
        source_file: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    - enumerators:
      - name: kIds
        value: '0'
      - name: kPieces
        value: '1'
      item_type: enum
      name: DecodeInputMode
      pos:
        line_end: 131
        line_start: 128
        source_file: /src/sentencepiece/src/sentencepiece_processor_benchmarks_test.cc
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sentencepiece/src/char_model.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - '& operator<<(std::ostream& out, const std::vector<T>& v)'
  - sentencepiece::string_util::DecodePOD
  - sentencepiece::string_util::EncodePOD
  - sentencepiece::string_util::IntToHex
  - sentencepiece::string_util::HexToInt
  - sentencepiece::string_util::SimpleItoa
  - sentencepiece::string_util::OneCharLen
  - sentencepiece::string_util::IsTrailByte
  - sentencepiece::string_util::UTF8Len
  - sentencepiece::string_util::IsValidCodepoint
  - sentencepiece::string_util::DecodeUTF8
  - sentencepiece::string_util::IsValidDecodeUTF8
  - sentencepiece::string_util::DecodePOD
  - sentencepiece::string_util::EncodePOD
  - sentencepiece::string_util::IntToHex
  - sentencepiece::string_util::HexToInt
  - sentencepiece::string_util::SimpleItoa
  - sentencepiece::string_util::OneCharLen
  - sentencepiece::string_util::IsTrailByte
  - sentencepiece::string_util::UTF8Len
  - sentencepiece::string_util::IsValidCodepoint
  - sentencepiece::string_util::DecodeUTF8
  - sentencepiece::string_util::IsValidDecodeUTF8
  - sentencepiece::port::ContainsKey
  - sentencepiece::port::FindOrDie
  - sentencepiece::port::FindWithDefault
  - sentencepiece::port::InsertIfNotPresent
  - sentencepiece::port::InsertIfNotPresent
  - sentencepiece::port::InsertOrDie
  - sentencepiece::port::ContainsKey
  - sentencepiece::port::FindOrDie
  - sentencepiece::port::FindWithDefault
  - sentencepiece::port::InsertIfNotPresent
  - sentencepiece::port::InsertIfNotPresent
  - sentencepiece::port::InsertOrDie
  - sentencepiece::random::ReservoirSampler::ReservoirSampler
  - sentencepiece::random::ReservoirSampler::ReservoirSampler
  - ~ReservoirSampler()
  - sentencepiece::random::ReservoirSampler::Add
  - sentencepiece::random::ReservoirSampler::total_size
  - sentencepiece::random::ReservoirSampler::ReservoirSampler
  - sentencepiece::random::ReservoirSampler::ReservoirSampler
  - ~ReservoirSampler()
  - sentencepiece::random::ReservoirSampler::Add
  - sentencepiece::random::ReservoirSampler::total_size
  - sentencepiece::util::is_bigendian
  - sentencepiece::util::Swap32
  - sentencepiece::util::JoinPath
  - sentencepiece::util::JoinPath
  - RET_CHECK_EQ
  - RET_CHECK_NE
  - RET_CHECK_GE
  - RET_CHECK_LE
  - RET_CHECK_GT
  - RET_CHECK_LT
  - RET_QCHECK_EQ
  - RET_QCHECK_NE
  - RET_QCHECK_GE
  - RET_QCHECK_LE
  - RET_QCHECK_GT
  - RET_QCHECK_LT
  - sentencepiece::util::is_bigendian
  - sentencepiece::util::Swap32
  - sentencepiece::util::JoinPath
  - sentencepiece::util::JoinPath
  - RET_CHECK_EQ
  - RET_CHECK_NE
  - RET_CHECK_GE
  - RET_CHECK_LE
  - RET_CHECK_GT
  - RET_CHECK_LT
  - RET_QCHECK_EQ
  - RET_QCHECK_NE
  - RET_QCHECK_GE
  - RET_QCHECK_LE
  - RET_QCHECK_GT
  - RET_QCHECK_LT
  - '& operator<<(std::ostream& out, const std::vector<T>& v)'
  - sentencepiece::string_util::DecodePOD
  - sentencepiece::string_util::EncodePOD
  - sentencepiece::string_util::IntToHex
  - sentencepiece::string_util::HexToInt
  - sentencepiece::string_util::SimpleItoa
  - sentencepiece::string_util::OneCharLen
  - sentencepiece::string_util::IsTrailByte
  - sentencepiece::string_util::UTF8Len
  - sentencepiece::string_util::IsValidCodepoint
  - sentencepiece::string_util::DecodeUTF8
  - sentencepiece::string_util::IsValidDecodeUTF8
  - sentencepiece::string_util::DecodePOD
  - sentencepiece::string_util::EncodePOD
  - sentencepiece::string_util::IntToHex
  - sentencepiece::string_util::HexToInt
  - sentencepiece::string_util::SimpleItoa
  - sentencepiece::string_util::OneCharLen
  - sentencepiece::string_util::IsTrailByte
  - sentencepiece::string_util::UTF8Len
  - sentencepiece::string_util::IsValidCodepoint
  - sentencepiece::string_util::DecodeUTF8
  - sentencepiece::string_util::IsValidDecodeUTF8
  - sentencepiece::port::ContainsKey
  - sentencepiece::port::FindOrDie
  - sentencepiece::port::FindWithDefault
  - sentencepiece::port::InsertIfNotPresent
  - sentencepiece::port::InsertIfNotPresent
  - sentencepiece::port::InsertOrDie
  - sentencepiece::port::ContainsKey
  - sentencepiece::port::FindOrDie
  - sentencepiece::port::FindWithDefault
  - sentencepiece::port::InsertIfNotPresent
  - sentencepiece::port::InsertIfNotPresent
  - sentencepiece::port::InsertOrDie
  - sentencepiece::random::ReservoirSampler::ReservoirSampler
  - sentencepiece::random::ReservoirSampler::ReservoirSampler
  - ~ReservoirSampler()
  - sentencepiece::random::ReservoirSampler::Add
  - sentencepiece::random::ReservoirSampler::total_size
  - sentencepiece::random::ReservoirSampler::ReservoirSampler
  - sentencepiece::random::ReservoirSampler::ReservoirSampler
  - ~ReservoirSampler()
  - sentencepiece::random::ReservoirSampler::Add
  - sentencepiece::random::ReservoirSampler::total_size
  - sentencepiece::util::is_bigendian
  - sentencepiece::util::Swap32
  - sentencepiece::util::JoinPath
  - sentencepiece::util::JoinPath
  - RET_CHECK_EQ
  - RET_CHECK_NE
  - RET_CHECK_GE
  - RET_CHECK_LE
  - RET_CHECK_GT
  - RET_CHECK_LT
  - RET_QCHECK_EQ
  - RET_QCHECK_NE
  - RET_QCHECK_GE
  - RET_QCHECK_LE
  - RET_QCHECK_GT
  - RET_QCHECK_LT
  - sentencepiece::util::is_bigendian
  - sentencepiece::util::Swap32
  - sentencepiece::util::JoinPath
  - sentencepiece::util::JoinPath
  - RET_CHECK_EQ
  - RET_CHECK_NE
  - RET_CHECK_GE
  - RET_CHECK_LE
  - RET_CHECK_GT
  - RET_CHECK_LT
  - RET_QCHECK_EQ
  - RET_QCHECK_NE
  - RET_QCHECK_GE
  - RET_QCHECK_LE
  - RET_QCHECK_GT
  - RET_QCHECK_LT
  source_file: /src/sentencepiece/src/util.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: return
      pos:
        line_end: 297
        line_start: 292
        source_file: /src/sentencepiece/src/util.h
      type_or_value: "absl::StatusBuilder(::absl::StatusCode::kInternal) \\\n           <<
        __FILE__ << \"(\" << __LINE__ << \") [\" << #condition << \"] \""
    - item_type: preproc_def
      name: return
      pos:
        line_end: 297
        line_start: 292
        source_file: /src/sentencepiece/src/util.h
      type_or_value: "absl::StatusBuilder(::absl::StatusCode::kInternal) \\\n           <<
        __FILE__ << \"(\" << __LINE__ << \") [\" << #condition << \"] \""
    - item_type: preproc_def
      name: return
      pos:
        line_end: 297
        line_start: 292
        source_file: /src/sentencepiece/src/util.h
      type_or_value: "absl::StatusBuilder(::absl::StatusCode::kInternal) \\\n           <<
        __FILE__ << \"(\" << __LINE__ << \") [\" << #condition << \"] \""
    - item_type: preproc_def
      name: return
      pos:
        line_end: 297
        line_start: 292
        source_file: /src/sentencepiece/src/util.h
      type_or_value: "absl::StatusBuilder(::absl::StatusCode::kInternal) \\\n           <<
        __FILE__ << \"(\" << __LINE__ << \") [\" << #condition << \"] \""
    structs:
    - fields:
      - name: unicode_text
        type: UnicodeText
      - name: offsets
        type: std::vector<uint32_t>
      item_type: struct
      name: UnicodeTextAndOffsets
      pos:
        line_end: 158
        line_start: 155
        source_file: /src/sentencepiece/src/util.h
    - fields:
      - name: unicode_text
        type: UnicodeText
      - name: offsets
        type: std::vector<uint32_t>
      item_type: struct
      name: UnicodeTextAndOffsets
      pos:
        line_end: 158
        line_start: 155
        source_file: /src/sentencepiece/src/util.h
    - fields:
      - name: unicode_text
        type: UnicodeText
      - name: offsets
        type: std::vector<uint32_t>
      item_type: struct
      name: UnicodeTextAndOffsets
      pos:
        line_end: 158
        line_start: 155
        source_file: /src/sentencepiece/src/util.h
    - fields:
      - name: unicode_text
        type: UnicodeText
      - name: offsets
        type: std::vector<uint32_t>
      item_type: struct
      name: UnicodeTextAndOffsets
      pos:
        line_end: 158
        line_start: 155
        source_file: /src/sentencepiece/src/util.h
    typedefs: []
    union: []
- function_names:
  - sentencepiece::ModelFactory::Create
  - sentencepiece::ModelFactory::Create
  source_file: /src/sentencepiece/src/model_factory.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::MakeBaseModelProto
  - sentencepiece::AddPiece
  - sentencepiece::AddBytePiece
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::RandomString
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::MakeBaseModelProto
  - sentencepiece::AddPiece
  - sentencepiece::AddBytePiece
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::RandomString
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::MakeBaseModelProto
  - sentencepiece::AddPiece
  - sentencepiece::AddBytePiece
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::RandomString
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::MakeBaseModelProto
  - sentencepiece::AddPiece
  - sentencepiece::AddBytePiece
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::RandomString
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  source_file: /src/sentencepiece/src/model_interface_test.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/sentencepiece/src/model_interface_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/sentencepiece/src/model_interface_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/sentencepiece/src/model_interface_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/sentencepiece/src/model_interface_test.cc
      type_or_value: '"\xe2\x96\x81"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::unicode_script::GetScriptType
  - sentencepiece::unicode_script::TEST
  - sentencepiece::unicode_script::GetScriptType
  - sentencepiece::unicode_script::TEST
  - sentencepiece::unicode_script::GetScriptType
  - sentencepiece::unicode_script::TEST
  - sentencepiece::unicode_script::GetScriptType
  - sentencepiece::unicode_script::TEST
  source_file: /src/sentencepiece/src/unicode_script_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::unicode_script::InitTable
  - sentencepiece::unicode_script::InitTable
  - sentencepiece::unicode_script::InitTable
  - sentencepiece::unicode_script::InitTable
  - sentencepiece::unicode_script::InitTable
  - sentencepiece::unicode_script::InitTable
  - sentencepiece::unicode_script::InitTable
  - sentencepiece::unicode_script::InitTable
  source_file: /src/sentencepiece/src/unicode_script_map.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ABSL_FLAG
  source_file: /src/sentencepiece/src/spm_encode_main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sentencepiece/src/spm_train_main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::RunTrainer
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::RunTrainer
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::RunTrainer
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::RunTrainer
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  source_file: /src/sentencepiece/src/unigram_model_trainer_test.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/unigram_model_trainer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/unigram_model_trainer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/unigram_model_trainer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/unigram_model_trainer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    structs:
    - fields:
      - name: sentence_pieces
        type: std::string
      - name: seed_pieces_and_probs
        type: std::vector<std::pair<std::string, float>>
      item_type: struct
      name: TrainerResult
      pos:
        line_end: 71
        line_start: 68
        source_file: /src/sentencepiece/src/unigram_model_trainer_test.cc
    - fields:
      - name: sentence_pieces
        type: std::string
      - name: seed_pieces_and_probs
        type: std::vector<std::pair<std::string, float>>
      item_type: struct
      name: TrainerResult
      pos:
        line_end: 71
        line_start: 68
        source_file: /src/sentencepiece/src/unigram_model_trainer_test.cc
    - fields:
      - name: sentence_pieces
        type: std::string
      - name: seed_pieces_and_probs
        type: std::vector<std::pair<std::string, float>>
      item_type: struct
      name: TrainerResult
      pos:
        line_end: 71
        line_start: 68
        source_file: /src/sentencepiece/src/unigram_model_trainer_test.cc
    - fields:
      - name: sentence_pieces
        type: std::string
      - name: seed_pieces_and_probs
        type: std::vector<std::pair<std::string, float>>
      item_type: struct
      name: TrainerResult
      pos:
        line_end: 71
        line_start: 68
        source_file: /src/sentencepiece/src/unigram_model_trainer_test.cc
    typedefs: []
    union: []
- function_names:
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::GetTokenized
  - sentencepiece::unigram::InsertWithScore
  - sentencepiece::unigram::InsertWithScoreAndId
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::MakeBaseModelProto
  - sentencepiece::unigram::AddPiece
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::GetTokenized
  - sentencepiece::unigram::InsertWithScore
  - sentencepiece::unigram::InsertWithScoreAndId
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::MakeBaseModelProto
  - sentencepiece::unigram::AddPiece
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::GetTokenized
  - sentencepiece::unigram::InsertWithScore
  - sentencepiece::unigram::InsertWithScoreAndId
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::MakeBaseModelProto
  - sentencepiece::unigram::AddPiece
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::GetTokenized
  - sentencepiece::unigram::InsertWithScore
  - sentencepiece::unigram::InsertWithScoreAndId
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::MakeBaseModelProto
  - sentencepiece::unigram::AddPiece
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  - sentencepiece::unigram::TEST
  source_file: /src/sentencepiece/src/unigram_model_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::model::FreeList::FreeList
  - sentencepiece::model::FreeList::FreeList
  - ~FreeList()
  - sentencepiece::model::FreeList::FreeList
  - '& operator=(const FreeList&)'
  - sentencepiece::model::FreeList::FreeList
  - '& operator=(FreeList&& other) noexcept'
  - sentencepiece::model::FreeList::Free
  - sentencepiece::model::FreeList::size
  - sentencepiece::model::FreeList::Allocate
  - sentencepiece::model::FreeList::FreeList
  - sentencepiece::model::FreeList::FreeList
  - ~FreeList()
  - sentencepiece::model::FreeList::FreeList
  - '& operator=(const FreeList&)'
  - sentencepiece::model::FreeList::FreeList
  - '& operator=(FreeList&& other) noexcept'
  - sentencepiece::model::FreeList::Free
  - sentencepiece::model::FreeList::size
  - sentencepiece::model::FreeList::Allocate
  - sentencepiece::model::FreeList::FreeList
  - sentencepiece::model::FreeList::FreeList
  - ~FreeList()
  - sentencepiece::model::FreeList::FreeList
  - '& operator=(const FreeList&)'
  - sentencepiece::model::FreeList::FreeList
  - '& operator=(FreeList&& other) noexcept'
  - sentencepiece::model::FreeList::Free
  - sentencepiece::model::FreeList::size
  - sentencepiece::model::FreeList::Allocate
  - sentencepiece::model::FreeList::FreeList
  - sentencepiece::model::FreeList::FreeList
  - ~FreeList()
  - sentencepiece::model::FreeList::FreeList
  - '& operator=(const FreeList&)'
  - sentencepiece::model::FreeList::FreeList
  - '& operator=(FreeList&& other) noexcept'
  - sentencepiece::model::FreeList::Free
  - sentencepiece::model::FreeList::size
  - sentencepiece::model::FreeList::Allocate
  source_file: /src/sentencepiece/src/freelist.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::bpe::RunTrainer
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::RunTrainer
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::RunTrainer
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::RunTrainer
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::RunTrainer
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::RunTrainer
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::RunTrainer
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::RunTrainer
  - sentencepiece::bpe::TEST
  - sentencepiece::bpe::TEST
  source_file: /src/sentencepiece/src/bpe_model_trainer_test.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/bpe_model_trainer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/bpe_model_trainer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/bpe_model_trainer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/bpe_model_trainer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/bpe_model_trainer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/bpe_model_trainer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/bpe_model_trainer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/bpe_model_trainer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/sentencepiece/src/spm_decode_main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::ThreadPool::ThreadPool
  - DEFINE_SPP_DIRECT_FUNC_IMPL
  - sentencepiece::SentencePieceProcessor::EncodeAsPieces
  - sentencepiece::SentencePieceProcessor::EncodeAsIds
  - sentencepiece::SentencePieceProcessor::NBestEncodeAsPieces
  - sentencepiece::SentencePieceProcessor::NBestEncodeAsIds
  - sentencepiece::SentencePieceProcessor::SampleEncodeAsPieces
  - sentencepiece::SentencePieceProcessor::SampleEncodeAsIds
  - sentencepiece::SentencePieceProcessor::ParallelEncodeAsPieces
  - sentencepiece::SentencePieceProcessor::ParallelEncodeAsIds
  - sentencepiece::SentencePieceProcessor::DecodePieces
  - sentencepiece::SentencePieceProcessor::DecodeIds
  - sentencepiece::ThreadPool::ThreadPool
  - DEFINE_SPP_DIRECT_FUNC_IMPL
  - sentencepiece::SentencePieceProcessor::EncodeAsPieces
  - sentencepiece::SentencePieceProcessor::EncodeAsIds
  - sentencepiece::SentencePieceProcessor::NBestEncodeAsPieces
  - sentencepiece::SentencePieceProcessor::NBestEncodeAsIds
  - sentencepiece::SentencePieceProcessor::SampleEncodeAsPieces
  - sentencepiece::SentencePieceProcessor::SampleEncodeAsIds
  - sentencepiece::SentencePieceProcessor::ParallelEncodeAsPieces
  - sentencepiece::SentencePieceProcessor::ParallelEncodeAsIds
  - sentencepiece::SentencePieceProcessor::DecodePieces
  - sentencepiece::SentencePieceProcessor::DecodeIds
  source_file: /src/sentencepiece/src/sentencepiece_processor.h
  types:
    enum:
    - enumerators:
      - name: REVERSE
      - name: EOS
      - name: UNK_PIECE
      - name: BOS
      item_type: enum
      name: ExtraOption
      pos:
        line_end: 450
        line_start: 450
        source_file: /src/sentencepiece/src/sentencepiece_processor.h
    - enumerators:
      - name: REVERSE
      - name: EOS
      - name: UNK_PIECE
      - name: BOS
      item_type: enum
      name: ExtraOption
      pos:
        line_end: 450
        line_start: 450
        source_file: /src/sentencepiece/src/sentencepiece_processor.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FRIEND_TEST
  - RETURN_IF_ERROR
  source_file: /src/sentencepiece/src/common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::unigram::Model::Model
  - sentencepiece::unigram::Model::IsSampleEncodeAvailable
  - sentencepiece::unigram::Model::IsNBestEncodeAvailable
  - sentencepiece::unigram::Model::min_score
  - sentencepiece::unigram::Model::Model
  - sentencepiece::unigram::Model::IsSampleEncodeAvailable
  - sentencepiece::unigram::Model::IsNBestEncodeAvailable
  - sentencepiece::unigram::Model::min_score
  - sentencepiece::unigram::Model::Model
  - sentencepiece::unigram::Model::IsSampleEncodeAvailable
  - sentencepiece::unigram::Model::IsNBestEncodeAvailable
  - sentencepiece::unigram::Model::min_score
  - sentencepiece::unigram::Model::Model
  - sentencepiece::unigram::Model::IsSampleEncodeAvailable
  - sentencepiece::unigram::Model::IsNBestEncodeAvailable
  - sentencepiece::unigram::Model::min_score
  source_file: /src/sentencepiece/src/unigram_model.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: piece
        type: absl::string_view
      - name: pos
        type: uint32_t
      - name: length
        type: uint32_t
      - name: node_id
        type: uint32_t
      - name: id
        type: int
      - name: score
        type: float
      - name: backtrace_score
        type: float
      - name: '* prev'
        type: Node
      - name: DebugString() const
        type: std::string
      item_type: struct
      name: Node
      pos:
        line_end: 49
        line_start: 38
        source_file: /src/sentencepiece/src/unigram_model.h
    - fields:
      - name: piece
        type: absl::string_view
      - name: pos
        type: uint32_t
      - name: length
        type: uint32_t
      - name: node_id
        type: uint32_t
      - name: id
        type: int
      - name: score
        type: float
      - name: backtrace_score
        type: float
      - name: '* prev'
        type: Node
      - name: DebugString() const
        type: std::string
      item_type: struct
      name: Node
      pos:
        line_end: 49
        line_start: 38
        source_file: /src/sentencepiece/src/unigram_model.h
    - fields:
      - name: piece
        type: absl::string_view
      - name: pos
        type: uint32_t
      - name: length
        type: uint32_t
      - name: node_id
        type: uint32_t
      - name: id
        type: int
      - name: score
        type: float
      - name: backtrace_score
        type: float
      - name: '* prev'
        type: Node
      - name: DebugString() const
        type: std::string
      item_type: struct
      name: Node
      pos:
        line_end: 49
        line_start: 38
        source_file: /src/sentencepiece/src/unigram_model.h
    - fields:
      - name: piece
        type: absl::string_view
      - name: pos
        type: uint32_t
      - name: length
        type: uint32_t
      - name: node_id
        type: uint32_t
      - name: id
        type: int
      - name: score
        type: float
      - name: backtrace_score
        type: float
      - name: '* prev'
        type: Node
      - name: DebugString() const
        type: std::string
      item_type: struct
      name: Node
      pos:
        line_end: 49
        line_start: 38
        source_file: /src/sentencepiece/src/unigram_model.h
    typedefs: []
    union: []
- function_names:
  - sentencepiece::word::Trainer::Train
  - sentencepiece::word::Trainer::Train
  - sentencepiece::word::Trainer::Train
  - sentencepiece::word::Trainer::Train
  source_file: /src/sentencepiece/src/word_model_trainer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::unigram::LogSumExp
  - sentencepiece::unigram::GetUserDefinedScore
  - sentencepiece::unigram::Gumbel
  - sentencepiece::unigram::LogSumExp
  - sentencepiece::unigram::GetUserDefinedScore
  - sentencepiece::unigram::Gumbel
  - sentencepiece::unigram::Lattice::Lattice
  - Lattice::~Lattice()
  - '&Lattice::begin_nodes(int pos) const'
  - '&Lattice::end_nodes(int pos) const'
  - sentencepiece::unigram::Lattice::size
  - sentencepiece::unigram::Lattice::utf8_size
  - sentencepiece::unigram::Lattice::sentence
  - sentencepiece::unigram::Lattice::surface
  - sentencepiece::unigram::Lattice::bos_node
  - sentencepiece::unigram::Lattice::eos_node
  - sentencepiece::unigram::Lattice::NewNode
  - sentencepiece::unigram::Lattice::Clear
  - sentencepiece::unigram::Lattice::SetSentence
  - sentencepiece::unigram::Lattice::Insert
  - sentencepiece::unigram::Lattice::Viterbi
  - sentencepiece::unigram::Lattice::ForwardAlgorithm
  - sentencepiece::unigram::Lattice::BackwardAlgorithm
  - sentencepiece::unigram::Lattice::PopulateMarginal
  - sentencepiece::unigram::CloneHypAndDependents
  - sentencepiece::unigram::CloneHypAndDependents
  - sentencepiece::unigram::Lattice::NBest
  - operator()(Hypothesis *h1, Hypothesis *h2)
  - sentencepiece::unigram::Lattice::Sample
  - sentencepiece::unigram::Model::PopulateNodes
  - sentencepiece::unigram::Model::PieceToId
  - sentencepiece::unigram::Model::BuildTrie
  - sentencepiece::unigram::Model::Model
  - Model::~Model()
  - sentencepiece::unigram::Model::Encode
  - sentencepiece::unigram::Model::NBestEncode
  - sentencepiece::unigram::Model::SampleEncode
  - sentencepiece::unigram::Model::VerifyOutputsEquivalent
  - sentencepiece::unigram::Model::EncodeOptimized
  - sentencepiece::unigram::LogSumExp
  - sentencepiece::unigram::GetUserDefinedScore
  - sentencepiece::unigram::Gumbel
  - sentencepiece::unigram::LogSumExp
  - sentencepiece::unigram::GetUserDefinedScore
  - sentencepiece::unigram::Gumbel
  - sentencepiece::unigram::Lattice::Lattice
  - Lattice::~Lattice()
  - '&Lattice::begin_nodes(int pos) const'
  - '&Lattice::end_nodes(int pos) const'
  - sentencepiece::unigram::Lattice::size
  - sentencepiece::unigram::Lattice::utf8_size
  - sentencepiece::unigram::Lattice::sentence
  - sentencepiece::unigram::Lattice::surface
  - sentencepiece::unigram::Lattice::bos_node
  - sentencepiece::unigram::Lattice::eos_node
  - sentencepiece::unigram::Lattice::NewNode
  - sentencepiece::unigram::Lattice::Clear
  - sentencepiece::unigram::Lattice::SetSentence
  - sentencepiece::unigram::Lattice::Insert
  - sentencepiece::unigram::Lattice::Viterbi
  - sentencepiece::unigram::Lattice::ForwardAlgorithm
  - sentencepiece::unigram::Lattice::BackwardAlgorithm
  - sentencepiece::unigram::Lattice::PopulateMarginal
  - sentencepiece::unigram::CloneHypAndDependents
  - sentencepiece::unigram::CloneHypAndDependents
  - sentencepiece::unigram::Lattice::NBest
  - operator()(Hypothesis *h1, Hypothesis *h2)
  - sentencepiece::unigram::Lattice::Sample
  - sentencepiece::unigram::Model::PopulateNodes
  - sentencepiece::unigram::Model::PieceToId
  - sentencepiece::unigram::Model::BuildTrie
  - sentencepiece::unigram::Model::Model
  - Model::~Model()
  - sentencepiece::unigram::Model::Encode
  - sentencepiece::unigram::Model::NBestEncode
  - sentencepiece::unigram::Model::SampleEncode
  - sentencepiece::unigram::Model::VerifyOutputsEquivalent
  - sentencepiece::unigram::Model::EncodeOptimized
  - sentencepiece::unigram::LogSumExp
  - sentencepiece::unigram::GetUserDefinedScore
  - sentencepiece::unigram::Gumbel
  - sentencepiece::unigram::LogSumExp
  - sentencepiece::unigram::GetUserDefinedScore
  - sentencepiece::unigram::Gumbel
  - sentencepiece::unigram::Lattice::Lattice
  - Lattice::~Lattice()
  - '&Lattice::begin_nodes(int pos) const'
  - '&Lattice::end_nodes(int pos) const'
  - sentencepiece::unigram::Lattice::size
  - sentencepiece::unigram::Lattice::utf8_size
  - sentencepiece::unigram::Lattice::sentence
  - sentencepiece::unigram::Lattice::surface
  - sentencepiece::unigram::Lattice::bos_node
  - sentencepiece::unigram::Lattice::eos_node
  - sentencepiece::unigram::Lattice::NewNode
  - sentencepiece::unigram::Lattice::Clear
  - sentencepiece::unigram::Lattice::SetSentence
  - sentencepiece::unigram::Lattice::Insert
  - sentencepiece::unigram::Lattice::Viterbi
  - sentencepiece::unigram::Lattice::ForwardAlgorithm
  - sentencepiece::unigram::Lattice::BackwardAlgorithm
  - sentencepiece::unigram::Lattice::PopulateMarginal
  - sentencepiece::unigram::CloneHypAndDependents
  - sentencepiece::unigram::CloneHypAndDependents
  - sentencepiece::unigram::Lattice::NBest
  - operator()(Hypothesis *h1, Hypothesis *h2)
  - sentencepiece::unigram::Lattice::Sample
  - sentencepiece::unigram::Model::PopulateNodes
  - sentencepiece::unigram::Model::PieceToId
  - sentencepiece::unigram::Model::BuildTrie
  - sentencepiece::unigram::Model::Model
  - Model::~Model()
  - sentencepiece::unigram::Model::Encode
  - sentencepiece::unigram::Model::NBestEncode
  - sentencepiece::unigram::Model::SampleEncode
  - sentencepiece::unigram::Model::VerifyOutputsEquivalent
  - sentencepiece::unigram::Model::EncodeOptimized
  - sentencepiece::unigram::LogSumExp
  - sentencepiece::unigram::GetUserDefinedScore
  - sentencepiece::unigram::Gumbel
  - sentencepiece::unigram::LogSumExp
  - sentencepiece::unigram::GetUserDefinedScore
  - sentencepiece::unigram::Gumbel
  - sentencepiece::unigram::Lattice::Lattice
  - Lattice::~Lattice()
  - '&Lattice::begin_nodes(int pos) const'
  - '&Lattice::end_nodes(int pos) const'
  - sentencepiece::unigram::Lattice::size
  - sentencepiece::unigram::Lattice::utf8_size
  - sentencepiece::unigram::Lattice::sentence
  - sentencepiece::unigram::Lattice::surface
  - sentencepiece::unigram::Lattice::bos_node
  - sentencepiece::unigram::Lattice::eos_node
  - sentencepiece::unigram::Lattice::NewNode
  - sentencepiece::unigram::Lattice::Clear
  - sentencepiece::unigram::Lattice::SetSentence
  - sentencepiece::unigram::Lattice::Insert
  - sentencepiece::unigram::Lattice::Viterbi
  - sentencepiece::unigram::Lattice::ForwardAlgorithm
  - sentencepiece::unigram::Lattice::BackwardAlgorithm
  - sentencepiece::unigram::Lattice::PopulateMarginal
  - sentencepiece::unigram::CloneHypAndDependents
  - sentencepiece::unigram::CloneHypAndDependents
  - sentencepiece::unigram::Lattice::NBest
  - operator()(Hypothesis *h1, Hypothesis *h2)
  - sentencepiece::unigram::Lattice::Sample
  - sentencepiece::unigram::Model::PopulateNodes
  - sentencepiece::unigram::Model::PieceToId
  - sentencepiece::unigram::Model::BuildTrie
  - sentencepiece::unigram::Model::Model
  - Model::~Model()
  - sentencepiece::unigram::Model::Encode
  - sentencepiece::unigram::Model::NBestEncode
  - sentencepiece::unigram::Model::SampleEncode
  - sentencepiece::unigram::Model::VerifyOutputsEquivalent
  - sentencepiece::unigram::Model::EncodeOptimized
  source_file: /src/sentencepiece/src/unigram_model.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*node'
        type: Lattice::Node
      - name: '*next'
        type: Hypothesis
      - name: fx
        type: float
      - name: gx
        type: float
      item_type: struct
      name: Hypothesis
      pos:
        line_end: 287
        line_start: 282
        source_file: /src/sentencepiece/src/unigram_model.cc
    - fields:
      - name: '*node'
        type: Lattice::Node
      - name: '*next'
        type: Hypothesis
      - name: fx
        type: float
      - name: gx
        type: float
      item_type: struct
      name: Hypothesis
      pos:
        line_end: 287
        line_start: 282
        source_file: /src/sentencepiece/src/unigram_model.cc
    - fields:
      - name: id
        type: int
      - name: best_path_score
        type: float
      - name: starts_at
        type: int
      item_type: struct
      name: BestPathNode
      pos:
        line_end: 824
        line_start: 817
        source_file: /src/sentencepiece/src/unigram_model.cc
    - fields:
      - name: '*node'
        type: Lattice::Node
      - name: '*next'
        type: Hypothesis
      - name: fx
        type: float
      - name: gx
        type: float
      item_type: struct
      name: Hypothesis
      pos:
        line_end: 287
        line_start: 282
        source_file: /src/sentencepiece/src/unigram_model.cc
    - fields:
      - name: '*node'
        type: Lattice::Node
      - name: '*next'
        type: Hypothesis
      - name: fx
        type: float
      - name: gx
        type: float
      item_type: struct
      name: Hypothesis
      pos:
        line_end: 287
        line_start: 282
        source_file: /src/sentencepiece/src/unigram_model.cc
    - fields:
      - name: id
        type: int
      - name: best_path_score
        type: float
      - name: starts_at
        type: int
      item_type: struct
      name: BestPathNode
      pos:
        line_end: 824
        line_start: 817
        source_file: /src/sentencepiece/src/unigram_model.cc
    - fields:
      - name: '*node'
        type: Lattice::Node
      - name: '*next'
        type: Hypothesis
      - name: fx
        type: float
      - name: gx
        type: float
      item_type: struct
      name: Hypothesis
      pos:
        line_end: 287
        line_start: 282
        source_file: /src/sentencepiece/src/unigram_model.cc
    - fields:
      - name: '*node'
        type: Lattice::Node
      - name: '*next'
        type: Hypothesis
      - name: fx
        type: float
      - name: gx
        type: float
      item_type: struct
      name: Hypothesis
      pos:
        line_end: 287
        line_start: 282
        source_file: /src/sentencepiece/src/unigram_model.cc
    - fields:
      - name: id
        type: int
      - name: best_path_score
        type: float
      - name: starts_at
        type: int
      item_type: struct
      name: BestPathNode
      pos:
        line_end: 824
        line_start: 817
        source_file: /src/sentencepiece/src/unigram_model.cc
    - fields:
      - name: '*node'
        type: Lattice::Node
      - name: '*next'
        type: Hypothesis
      - name: fx
        type: float
      - name: gx
        type: float
      item_type: struct
      name: Hypothesis
      pos:
        line_end: 287
        line_start: 282
        source_file: /src/sentencepiece/src/unigram_model.cc
    - fields:
      - name: '*node'
        type: Lattice::Node
      - name: '*next'
        type: Hypothesis
      - name: fx
        type: float
      - name: gx
        type: float
      item_type: struct
      name: Hypothesis
      pos:
        line_end: 287
        line_start: 282
        source_file: /src/sentencepiece/src/unigram_model.cc
    - fields:
      - name: id
        type: int
      - name: best_path_score
        type: float
      - name: starts_at
        type: int
      item_type: struct
      name: BestPathNode
      pos:
        line_end: 824
        line_start: 817
        source_file: /src/sentencepiece/src/unigram_model.cc
    typedefs: []
    union: []
- function_names:
  - sentencepiece::normalizer::Builder::Builder
  - ~Builder()
  - sentencepiece::normalizer::Builder::Builder
  - ~Builder()
  source_file: /src/sentencepiece/src/builder.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sentencepiece/src/trainer_factory.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::character::Trainer::Trainer
  - sentencepiece::character::Trainer::Trainer
  - sentencepiece::character::Trainer::Trainer
  - sentencepiece::character::Trainer::Trainer
  source_file: /src/sentencepiece/src/char_model_trainer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  source_file: /src/sentencepiece/src/builder_test.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/sentencepiece/src/builder_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/sentencepiece/src/builder_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/sentencepiece/src/builder_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/sentencepiece/src/builder_test.cc
      type_or_value: '"\xe2\x96\x81"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
  - ~ScopedResourceDestructor()
  - sentencepiece::ScopedResourceDestructor::ScopedResourceDestructor
  - ~ScopedResourceDestructor()
  source_file: /src/sentencepiece/src/init.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::unigram::TrainerModel::TrainerModel
  - sentencepiece::unigram::TrainerModel::TrainerModel
  - sentencepiece::unigram::TrainerModel::Encode
  - sentencepiece::unigram::Trainer::Trainer
  - sentencepiece::unigram::TrainerModel::TrainerModel
  - sentencepiece::unigram::TrainerModel::TrainerModel
  - sentencepiece::unigram::TrainerModel::Encode
  - sentencepiece::unigram::Trainer::Trainer
  - sentencepiece::unigram::TrainerModel::TrainerModel
  - sentencepiece::unigram::TrainerModel::TrainerModel
  - sentencepiece::unigram::TrainerModel::Encode
  - sentencepiece::unigram::Trainer::Trainer
  - sentencepiece::unigram::TrainerModel::TrainerModel
  - sentencepiece::unigram::TrainerModel::TrainerModel
  - sentencepiece::unigram::TrainerModel::Encode
  - sentencepiece::unigram::Trainer::Trainer
  source_file: /src/sentencepiece/src/unigram_model_trainer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::character::MakeBaseModelProto
  - sentencepiece::character::AddPiece
  - sentencepiece::character::TEST
  - sentencepiece::character::TEST
  - sentencepiece::character::MakeBaseModelProto
  - sentencepiece::character::AddPiece
  - sentencepiece::character::TEST
  - sentencepiece::character::TEST
  - sentencepiece::character::MakeBaseModelProto
  - sentencepiece::character::AddPiece
  - sentencepiece::character::TEST
  - sentencepiece::character::TEST
  - sentencepiece::character::MakeBaseModelProto
  - sentencepiece::character::AddPiece
  - sentencepiece::character::TEST
  - sentencepiece::character::TEST
  - sentencepiece::character::MakeBaseModelProto
  - sentencepiece::character::AddPiece
  - sentencepiece::character::TEST
  - sentencepiece::character::TEST
  - sentencepiece::character::MakeBaseModelProto
  - sentencepiece::character::AddPiece
  - sentencepiece::character::TEST
  - sentencepiece::character::TEST
  - sentencepiece::character::MakeBaseModelProto
  - sentencepiece::character::AddPiece
  - sentencepiece::character::TEST
  - sentencepiece::character::TEST
  - sentencepiece::character::MakeBaseModelProto
  - sentencepiece::character::AddPiece
  - sentencepiece::character::TEST
  - sentencepiece::character::TEST
  source_file: /src/sentencepiece/src/char_model_test.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sentencepiece/src/char_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sentencepiece/src/char_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sentencepiece/src/char_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sentencepiece/src/char_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sentencepiece/src/char_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sentencepiece/src/char_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sentencepiece/src/char_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sentencepiece/src/char_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::word::Model::Model
  - Model::~Model()
  - sentencepiece::word::Model::Encode
  - sentencepiece::word::Model::Model
  - Model::~Model()
  - sentencepiece::word::Model::Encode
  - sentencepiece::word::Model::Model
  - Model::~Model()
  - sentencepiece::word::Model::Encode
  - sentencepiece::word::Model::Model
  - Model::~Model()
  - sentencepiece::word::Model::Encode
  source_file: /src/sentencepiece/src/word_model.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::ModelInterface::ModelInterface
  - ModelInterface::~ModelInterface()
  - RETURN_PIECE
  - sentencepiece::ModelInterface::unk_piece
  - sentencepiece::ModelInterface::bos_piece
  - sentencepiece::ModelInterface::eos_piece
  - sentencepiece::ModelInterface::pad_piece
  - sentencepiece::ModelInterface::PieceToId
  - sentencepiece::ModelInterface::PieceToIdNoReserved
  - sentencepiece::ModelInterface::InitializePieces
  - sentencepiece::SplitIntoWords
  - sentencepiece::ByteToPiece
  - sentencepiece::PieceToByte
  - sentencepiece::ModelInterface::ModelInterface
  - ModelInterface::~ModelInterface()
  - RETURN_PIECE
  - sentencepiece::ModelInterface::unk_piece
  - sentencepiece::ModelInterface::bos_piece
  - sentencepiece::ModelInterface::eos_piece
  - sentencepiece::ModelInterface::pad_piece
  - sentencepiece::ModelInterface::PieceToId
  - sentencepiece::ModelInterface::PieceToIdNoReserved
  - sentencepiece::ModelInterface::InitializePieces
  - sentencepiece::SplitIntoWords
  - sentencepiece::ByteToPiece
  - sentencepiece::PieceToByte
  source_file: /src/sentencepiece/src/model_interface.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - EXPECT_OK
  - ASSERT_OK
  source_file: /src/sentencepiece/src/testharness.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/sentencepiece/src/spm_normalize_main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::TrainerFactory::Create
  - sentencepiece::TrainerFactory::Create
  source_file: /src/sentencepiece/src/trainer_factory.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "operator()(const SymbolPair& h1,\n                                                      const
    SymbolPair& h2)"
  - "operator()(const SymbolPair& h1,\n                                                      const
    SymbolPair& h2)"
  - sentencepiece::bpe::Model::Model
  - Model::~Model()
  - sentencepiece::bpe::Model::SampleEncode
  - "operator()(const SymbolPair& h1,\n                                                      const
    SymbolPair& h2)"
  - "operator()(const SymbolPair& h1,\n                                                      const
    SymbolPair& h2)"
  - sentencepiece::bpe::Model::Model
  - Model::~Model()
  - sentencepiece::bpe::Model::SampleEncode
  - "operator()(const SymbolPair& h1,\n                                                      const
    SymbolPair& h2)"
  - "operator()(const SymbolPair& h1,\n                                                      const
    SymbolPair& h2)"
  - sentencepiece::bpe::Model::Model
  - Model::~Model()
  - sentencepiece::bpe::Model::SampleEncode
  - "operator()(const SymbolPair& h1,\n                                                      const
    SymbolPair& h2)"
  - "operator()(const SymbolPair& h1,\n                                                      const
    SymbolPair& h2)"
  - sentencepiece::bpe::Model::Model
  - Model::~Model()
  - sentencepiece::bpe::Model::SampleEncode
  source_file: /src/sentencepiece/src/bpe_model.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: left
        type: uint32_t
      - name: right
        type: int
      - name: size
        type: unsigned int
      item_type: struct
      name: SymbolPair
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: prev
        type: int
      - name: next
        type: int
      - name: freeze
        type: bool
      - name: piece
        type: absl::string_view
      item_type: struct
      name: Symbol
      pos:
        line_end: 98
        line_start: 93
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: left
        type: uint32_t
      - name: right
        type: int
      - name: size
        type: unsigned int
      item_type: struct
      name: SymbolPair
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: prev
        type: int
      - name: next
        type: int
      - name: freeze
        type: bool
      - name: piece
        type: absl::string_view
      item_type: struct
      name: Symbol
      pos:
        line_end: 98
        line_start: 93
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: left
        type: uint32_t
      - name: right
        type: int
      - name: size
        type: unsigned int
      item_type: struct
      name: SymbolPair
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: prev
        type: int
      - name: next
        type: int
      - name: freeze
        type: bool
      - name: piece
        type: absl::string_view
      item_type: struct
      name: Symbol
      pos:
        line_end: 98
        line_start: 93
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: left
        type: uint32_t
      - name: right
        type: int
      - name: size
        type: unsigned int
      item_type: struct
      name: SymbolPair
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: prev
        type: int
      - name: next
        type: int
      - name: freeze
        type: bool
      - name: piece
        type: absl::string_view
      item_type: struct
      name: Symbol
      pos:
        line_end: 98
        line_start: 93
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: left
        type: uint32_t
      - name: right
        type: int
      - name: size
        type: unsigned int
      item_type: struct
      name: SymbolPair
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: prev
        type: int
      - name: next
        type: int
      - name: freeze
        type: bool
      - name: piece
        type: absl::string_view
      item_type: struct
      name: Symbol
      pos:
        line_end: 98
        line_start: 93
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: left
        type: uint32_t
      - name: right
        type: int
      - name: size
        type: unsigned int
      item_type: struct
      name: SymbolPair
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: prev
        type: int
      - name: next
        type: int
      - name: freeze
        type: bool
      - name: piece
        type: absl::string_view
      item_type: struct
      name: Symbol
      pos:
        line_end: 98
        line_start: 93
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: left
        type: uint32_t
      - name: right
        type: int
      - name: size
        type: unsigned int
      item_type: struct
      name: SymbolPair
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: prev
        type: int
      - name: next
        type: int
      - name: freeze
        type: bool
      - name: piece
        type: absl::string_view
      item_type: struct
      name: Symbol
      pos:
        line_end: 98
        line_start: 93
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: left
        type: uint32_t
      - name: right
        type: int
      - name: size
        type: unsigned int
      item_type: struct
      name: SymbolPair
      pos:
        line_end: 51
        line_start: 43
        source_file: /src/sentencepiece/src/bpe_model.cc
    - fields:
      - name: prev
        type: int
      - name: next
        type: int
      - name: freeze
        type: bool
      - name: piece
        type: absl::string_view
      item_type: struct
      name: Symbol
      pos:
        line_end: 98
        line_start: 93
        source_file: /src/sentencepiece/src/bpe_model.cc
    typedefs: []
    union: []
- function_names:
  - sentencepiece::normalizer::UnicodeNormalize
  - sentencepiece::normalizer::ToNFKD
  - sentencepiece::normalizer::ToNFKC
  - sentencepiece::normalizer::ToNFC
  - sentencepiece::normalizer::ToNFD
  - sentencepiece::normalizer::ExpandUnnormalized
  - sentencepiece::normalizer::Normalize
  - sentencepiece::normalizer::IsValidNormalizerData
  - sentencepiece::normalizer::UnicodeNormalize
  - sentencepiece::normalizer::ToNFKD
  - sentencepiece::normalizer::ToNFKC
  - sentencepiece::normalizer::ToNFC
  - sentencepiece::normalizer::ToNFD
  - sentencepiece::normalizer::ExpandUnnormalized
  - sentencepiece::normalizer::Normalize
  - sentencepiece::normalizer::IsValidNormalizerData
  - sentencepiece::normalizer::Builder::CompileCharsMap
  - sentencepiece::normalizer::Builder::DecompileCharsMap
  - sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
  - sentencepiece::normalizer::BuildMapInternal
  - sentencepiece::normalizer::BuildMapInternal
  - sentencepiece::normalizer::Builder::BuildNFKCMap
  - sentencepiece::normalizer::Builder::BuildNFCMap
  - sentencepiece::normalizer::Builder::BuildNmtNFKCMap
  - sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
  - sentencepiece::normalizer::Builder::MergeNmtMap
  - sentencepiece::normalizer::Builder::BuildNFKC_CFMap
  - sentencepiece::normalizer::Builder::BuildNmtNFKC_CFMap
  - sentencepiece::normalizer::Builder::BuildNFKDMap
  - sentencepiece::normalizer::Builder::BuildNFDMap
  - sentencepiece::normalizer::Builder::BuildNFKD_CFMap
  - sentencepiece::normalizer::Builder::BuildNFC_CFMap
  - sentencepiece::normalizer::Builder::BuildNFD_CFMap
  - sentencepiece::normalizer::Builder::LoadCharsMap
  - sentencepiece::normalizer::Builder::SaveCharsMap
  - sentencepiece::normalizer::Builder::RemoveRedundantMap
  - sentencepiece::normalizer::UnicodeNormalize
  - sentencepiece::normalizer::ToNFKD
  - sentencepiece::normalizer::ToNFKC
  - sentencepiece::normalizer::ToNFC
  - sentencepiece::normalizer::ToNFD
  - sentencepiece::normalizer::ExpandUnnormalized
  - sentencepiece::normalizer::Normalize
  - sentencepiece::normalizer::IsValidNormalizerData
  - sentencepiece::normalizer::UnicodeNormalize
  - sentencepiece::normalizer::ToNFKD
  - sentencepiece::normalizer::ToNFKC
  - sentencepiece::normalizer::ToNFC
  - sentencepiece::normalizer::ToNFD
  - sentencepiece::normalizer::ExpandUnnormalized
  - sentencepiece::normalizer::Normalize
  - sentencepiece::normalizer::IsValidNormalizerData
  - sentencepiece::normalizer::Builder::CompileCharsMap
  - sentencepiece::normalizer::Builder::DecompileCharsMap
  - sentencepiece::normalizer::Builder::GetPrecompiledCharsMap
  - sentencepiece::normalizer::BuildMapInternal
  - sentencepiece::normalizer::BuildMapInternal
  - sentencepiece::normalizer::Builder::BuildNFKCMap
  - sentencepiece::normalizer::Builder::BuildNFCMap
  - sentencepiece::normalizer::Builder::BuildNmtNFKCMap
  - sentencepiece::normalizer::Builder::MergeUnicodeCaseFoldMap
  - sentencepiece::normalizer::Builder::MergeNmtMap
  - sentencepiece::normalizer::Builder::BuildNFKC_CFMap
  - sentencepiece::normalizer::Builder::BuildNmtNFKC_CFMap
  - sentencepiece::normalizer::Builder::BuildNFKDMap
  - sentencepiece::normalizer::Builder::BuildNFDMap
  - sentencepiece::normalizer::Builder::BuildNFKD_CFMap
  - sentencepiece::normalizer::Builder::BuildNFC_CFMap
  - sentencepiece::normalizer::Builder::BuildNFD_CFMap
  - sentencepiece::normalizer::Builder::LoadCharsMap
  - sentencepiece::normalizer::Builder::SaveCharsMap
  - sentencepiece::normalizer::Builder::RemoveRedundantMap
  source_file: /src/sentencepiece/src/builder.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  source_file: /src/sentencepiece/src/util_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::ContainsNormalizerKeys
  - sentencepiece::ContainsNormalizerKeys
  - sentencepiece::TrainerComponents::TrainerComponents
  - TrainerComponents::~TrainerComponents()
  - sentencepiece::TrainerComponents::TrainerComponents
  - sentencepiece::TrainerComponents::TrainerComponents
  - "& TrainerComponents::operator=(\n    const TrainerComponents& other)"
  - sentencepiece::TrainerComponents::mutable_trainer_spec
  - '& TrainerComponents::trainer_spec() const'
  - sentencepiece::TrainerComponents::mutable_normalizer_spec
  - '& TrainerComponents::normalizer_spec() const'
  - sentencepiece::TrainerComponents::mutable_denormalizer_spec
  - '& TrainerComponents::denormalizer_spec() const'
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
  - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
  - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
  - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
  - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
  - sentencepiece::VectorSentenceIterator::VectorSentenceIterator
  - ~VectorSentenceIterator()
  - sentencepiece::VectorSentenceIterator::done
  - sentencepiece::VectorSentenceIterator::Next
  - '& value() const override'
  - sentencepiece::VectorSentenceIterator::status
  - sentencepiece::VectorSentenceIterator::VectorSentenceIterator
  - ~VectorSentenceIterator()
  - sentencepiece::VectorSentenceIterator::done
  - sentencepiece::VectorSentenceIterator::Next
  - '& value() const override'
  - sentencepiece::VectorSentenceIterator::status
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
  - sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
  - sentencepiece::SentencePieceNormalizer::SentencePieceNormalizer
  - SentencePieceNormalizer::~SentencePieceNormalizer()
  - sentencepiece::SentencePieceNormalizer::Load
  - sentencepiece::SentencePieceNormalizer::Load
  - sentencepiece::SentencePieceNormalizer::Load
  - sentencepiece::SentencePieceNormalizer::LoadFromSerializedProto
  - sentencepiece::SentencePieceNormalizer::LoadFromSerializedNormalizerSpec
  - sentencepiece::SentencePieceNormalizer::LoadFromRuleTSV
  - sentencepiece::SentencePieceNormalizer::LoadFromRuleName
  - sentencepiece::SentencePieceNormalizer::LoadFromMap
  - sentencepiece::SentencePieceNormalizer::Decompile
  - sentencepiece::SentencePieceNormalizer::Normalize
  - sentencepiece::SentencePieceNormalizer::Normalize
  - sentencepiece::SentencePieceNormalizer::Normalize
  - sentencepiece::SentencePieceNormalizer::mutable_normalizer_spec
  - sentencepiece::SentencePieceNormalizer::serialized_model_proto
  - sentencepiece::SentencePieceNormalizer::serialized_normalizer_spec
  - sentencepiece::ConvertToUnicodeAlignment
  - sentencepiece::ContainsNormalizerKeys
  - sentencepiece::ContainsNormalizerKeys
  - sentencepiece::TrainerComponents::TrainerComponents
  - TrainerComponents::~TrainerComponents()
  - sentencepiece::TrainerComponents::TrainerComponents
  - sentencepiece::TrainerComponents::TrainerComponents
  - "& TrainerComponents::operator=(\n    const TrainerComponents& other)"
  - sentencepiece::TrainerComponents::mutable_trainer_spec
  - '& TrainerComponents::trainer_spec() const'
  - sentencepiece::TrainerComponents::mutable_normalizer_spec
  - '& TrainerComponents::normalizer_spec() const'
  - sentencepiece::TrainerComponents::mutable_denormalizer_spec
  - '& TrainerComponents::denormalizer_spec() const'
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::GetNormalizerSpec
  - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
  - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
  - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
  - sentencepiece::SentencePieceTrainer::MergeSpecsFromArgs
  - sentencepiece::VectorSentenceIterator::VectorSentenceIterator
  - ~VectorSentenceIterator()
  - sentencepiece::VectorSentenceIterator::done
  - sentencepiece::VectorSentenceIterator::Next
  - '& value() const override'
  - sentencepiece::VectorSentenceIterator::status
  - sentencepiece::VectorSentenceIterator::VectorSentenceIterator
  - ~VectorSentenceIterator()
  - sentencepiece::VectorSentenceIterator::done
  - sentencepiece::VectorSentenceIterator::Next
  - '& value() const override'
  - sentencepiece::VectorSentenceIterator::status
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::Train
  - sentencepiece::SentencePieceTrainer::PopulateNormalizerSpec
  - sentencepiece::SentencePieceTrainer::PopulateModelTypeFromString
  - sentencepiece::SentencePieceNormalizer::SentencePieceNormalizer
  - SentencePieceNormalizer::~SentencePieceNormalizer()
  - sentencepiece::SentencePieceNormalizer::Load
  - sentencepiece::SentencePieceNormalizer::Load
  - sentencepiece::SentencePieceNormalizer::Load
  - sentencepiece::SentencePieceNormalizer::LoadFromSerializedProto
  - sentencepiece::SentencePieceNormalizer::LoadFromSerializedNormalizerSpec
  - sentencepiece::SentencePieceNormalizer::LoadFromRuleTSV
  - sentencepiece::SentencePieceNormalizer::LoadFromRuleName
  - sentencepiece::SentencePieceNormalizer::LoadFromMap
  - sentencepiece::SentencePieceNormalizer::Decompile
  - sentencepiece::SentencePieceNormalizer::Normalize
  - sentencepiece::SentencePieceNormalizer::Normalize
  - sentencepiece::SentencePieceNormalizer::Normalize
  - sentencepiece::SentencePieceNormalizer::mutable_normalizer_spec
  - sentencepiece::SentencePieceNormalizer::serialized_model_proto
  - sentencepiece::SentencePieceNormalizer::serialized_normalizer_spec
  - sentencepiece::ConvertToUnicodeAlignment
  source_file: /src/sentencepiece/src/sentencepiece_trainer.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: trainer_spec
        type: TrainerSpec
      - name: normalizer_spec
        type: NormalizerSpec
      - name: denormalizer_spec
        type: NormalizerSpec
      item_type: struct
      name: TrainerComponents::Impl
      pos:
        line_end: 66
        line_start: 62
        source_file: /src/sentencepiece/src/sentencepiece_trainer.cc
    - fields:
      - name: trainer_spec
        type: TrainerSpec
      - name: normalizer_spec
        type: NormalizerSpec
      - name: denormalizer_spec
        type: NormalizerSpec
      item_type: struct
      name: TrainerComponents::Impl
      pos:
        line_end: 66
        line_start: 62
        source_file: /src/sentencepiece/src/sentencepiece_trainer.cc
    typedefs: []
    union: []
- function_names:
  - sentencepiece::word::MakeBaseModelProto
  - sentencepiece::word::AddPiece
  - sentencepiece::word::TEST
  - sentencepiece::word::TEST
  - sentencepiece::word::MakeBaseModelProto
  - sentencepiece::word::AddPiece
  - sentencepiece::word::TEST
  - sentencepiece::word::TEST
  - sentencepiece::word::MakeBaseModelProto
  - sentencepiece::word::AddPiece
  - sentencepiece::word::TEST
  - sentencepiece::word::TEST
  - sentencepiece::word::MakeBaseModelProto
  - sentencepiece::word::AddPiece
  - sentencepiece::word::TEST
  - sentencepiece::word::TEST
  - sentencepiece::word::MakeBaseModelProto
  - sentencepiece::word::AddPiece
  - sentencepiece::word::TEST
  - sentencepiece::word::TEST
  - sentencepiece::word::MakeBaseModelProto
  - sentencepiece::word::AddPiece
  - sentencepiece::word::TEST
  - sentencepiece::word::TEST
  - sentencepiece::word::MakeBaseModelProto
  - sentencepiece::word::AddPiece
  - sentencepiece::word::TEST
  - sentencepiece::word::TEST
  - sentencepiece::word::MakeBaseModelProto
  - sentencepiece::word::AddPiece
  - sentencepiece::word::TEST
  - sentencepiece::word::TEST
  source_file: /src/sentencepiece/src/word_model_test.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sentencepiece/src/word_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sentencepiece/src/word_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sentencepiece/src/word_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sentencepiece/src/word_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sentencepiece/src/word_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sentencepiece/src/word_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sentencepiece/src/word_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sentencepiece/src/word_model_test.cc
      type_or_value: '"\xe2\x96\x81"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/sentencepiece/src/spm_export_vocab_main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Trainer::Symbol::ToString() const
  - sentencepiece::bpe::Trainer::GetCharSymbol
  - sentencepiece::bpe::Trainer::GetPairSymbol
  - sentencepiece::bpe::Trainer::ComputeFreq
  - sentencepiece::bpe::Trainer::GetNextIndex
  - sentencepiece::bpe::Trainer::GetPrevIndex
  - sentencepiece::bpe::Trainer::AddNewPair
  - sentencepiece::bpe::Trainer::ResetFreq
  - sentencepiece::bpe::Trainer::AcceptSymbol
  - sentencepiece::bpe::Trainer::Train
  - sentencepiece::bpe::Trainer::TrainFast
  - Trainer::Symbol::ToString() const
  - sentencepiece::bpe::Trainer::GetCharSymbol
  - sentencepiece::bpe::Trainer::GetPairSymbol
  - sentencepiece::bpe::Trainer::ComputeFreq
  - sentencepiece::bpe::Trainer::GetNextIndex
  - sentencepiece::bpe::Trainer::GetPrevIndex
  - sentencepiece::bpe::Trainer::AddNewPair
  - sentencepiece::bpe::Trainer::ResetFreq
  - sentencepiece::bpe::Trainer::AcceptSymbol
  - sentencepiece::bpe::Trainer::Train
  - sentencepiece::bpe::Trainer::TrainFast
  source_file: /src/sentencepiece/src/bpe_model_trainer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::normalizer::MakeDefaultSpec
  - sentencepiece::normalizer::MakeDefaultSpec
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::MakeDefaultSpec
  - sentencepiece::normalizer::MakeDefaultSpec
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::MakeDefaultSpec
  - sentencepiece::normalizer::MakeDefaultSpec
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::MakeDefaultSpec
  - sentencepiece::normalizer::MakeDefaultSpec
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  - sentencepiece::normalizer::TEST
  source_file: /src/sentencepiece/src/normalizer_test.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: RC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xEF\xBF\xBD"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: RC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xEF\xBF\xBD"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: RC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xEF\xBF\xBD"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: RC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xEF\xBF\xBD"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: RC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xEF\xBF\xBD"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: RC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xEF\xBF\xBD"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: RC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xEF\xBF\xBD"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xe2\x96\x81"'
    - item_type: preproc_def
      name: RC
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/sentencepiece/src/normalizer_test.cc
      type_or_value: '"\xEF\xBF\xBD"'
    structs:
    - fields:
      - name: add_dummy_prefix
        type: bool
      - name: remove_extra_whitespaces
        type: bool
      - name: escape_whitespaces
        type: bool
      - name: '* input'
        type: char
      - name: '* expected'
        type: char
      item_type: struct
      name: SpacePattern
      pos:
        line_end: 250
        line_start: 244
        source_file: /src/sentencepiece/src/normalizer_test.cc
    - fields:
      - name: add_dummy_prefix
        type: bool
      - name: remove_extra_whitespaces
        type: bool
      - name: escape_whitespaces
        type: bool
      - name: '* input'
        type: char
      - name: '* expected'
        type: char
      item_type: struct
      name: SpacePattern
      pos:
        line_end: 250
        line_start: 244
        source_file: /src/sentencepiece/src/normalizer_test.cc
    - fields:
      - name: add_dummy_prefix
        type: bool
      - name: remove_extra_whitespaces
        type: bool
      - name: escape_whitespaces
        type: bool
      - name: '* input'
        type: char
      - name: '* expected'
        type: char
      item_type: struct
      name: SpacePattern
      pos:
        line_end: 250
        line_start: 244
        source_file: /src/sentencepiece/src/normalizer_test.cc
    - fields:
      - name: add_dummy_prefix
        type: bool
      - name: remove_extra_whitespaces
        type: bool
      - name: escape_whitespaces
        type: bool
      - name: '* input'
        type: char
      - name: '* expected'
        type: char
      item_type: struct
      name: SpacePattern
      pos:
        line_end: 250
        line_start: 244
        source_file: /src/sentencepiece/src/normalizer_test.cc
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/sentencepiece/src/spm_eval_main.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::VerifySpec
  - CHECK_RANGE
  - sentencepiece::is_unicode_decimal_number
  - sentencepiece::SentenceSelector::SentenceSelector
  - sentencepiece::SentenceSelector::Finish
  - sentencepiece::SentenceSelector::Add
  - sentencepiece::SentenceSelector::total_size
  - sentencepiece::VerifySpec
  - CHECK_RANGE
  - sentencepiece::is_unicode_decimal_number
  - sentencepiece::SentenceSelector::SentenceSelector
  - sentencepiece::SentenceSelector::Finish
  - sentencepiece::SentenceSelector::Add
  - sentencepiece::SentenceSelector::total_size
  - sentencepiece::MultiFileSentenceIterator::MultiFileSentenceIterator
  - sentencepiece::MultiFileSentenceIterator::done
  - sentencepiece::MultiFileSentenceIterator::status
  - sentencepiece::MultiFileSentenceIterator::Next
  - sentencepiece::MultiFileSentenceIterator::TryRead
  - sentencepiece::TrainerInterface::TrainerInterface
  - TrainerInterface::~TrainerInterface()
  - sentencepiece::TrainerInterface::IsValidSentencePiece
  - sentencepiece::TrainerInterface::LoadSentences
  - sentencepiece::TrainerInterface::SplitSentencesByWhitespace
  - sentencepiece::TrainerInterface::Serialize
  - CHECK_PIECE
  - sentencepiece::TrainerInterface::SaveModel
  - sentencepiece::TrainerInterface::SaveVocab
  - sentencepiece::TrainerInterface::Save
  - sentencepiece::TrainerInterface::InitMetaPieces
  - sentencepiece::VerifySpec
  - CHECK_RANGE
  - sentencepiece::is_unicode_decimal_number
  - sentencepiece::SentenceSelector::SentenceSelector
  - sentencepiece::SentenceSelector::Finish
  - sentencepiece::SentenceSelector::Add
  - sentencepiece::SentenceSelector::total_size
  - sentencepiece::VerifySpec
  - CHECK_RANGE
  - sentencepiece::is_unicode_decimal_number
  - sentencepiece::SentenceSelector::SentenceSelector
  - sentencepiece::SentenceSelector::Finish
  - sentencepiece::SentenceSelector::Add
  - sentencepiece::SentenceSelector::total_size
  - sentencepiece::MultiFileSentenceIterator::MultiFileSentenceIterator
  - sentencepiece::MultiFileSentenceIterator::done
  - sentencepiece::MultiFileSentenceIterator::status
  - sentencepiece::MultiFileSentenceIterator::Next
  - sentencepiece::MultiFileSentenceIterator::TryRead
  - sentencepiece::TrainerInterface::TrainerInterface
  - TrainerInterface::~TrainerInterface()
  - sentencepiece::TrainerInterface::IsValidSentencePiece
  - sentencepiece::TrainerInterface::LoadSentences
  - sentencepiece::TrainerInterface::SplitSentencesByWhitespace
  - sentencepiece::TrainerInterface::Serialize
  - CHECK_PIECE
  - sentencepiece::TrainerInterface::SaveModel
  - sentencepiece::TrainerInterface::SaveVocab
  - sentencepiece::TrainerInterface::Save
  - sentencepiece::TrainerInterface::InitMetaPieces
  source_file: /src/sentencepiece/src/trainer_interface.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sentencepiece/src/normalization_rule.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*name'
        type: char
      - name: size
        type: size_t
      - name: '*data'
        type: char
      item_type: struct
      name: BinaryBlob
      pos:
        line_end: 10
        line_start: 6
        source_file: /src/sentencepiece/src/normalization_rule.h
    - fields:
      - name: '*name'
        type: char
      - name: size
        type: size_t
      - name: '*data'
        type: char
      item_type: struct
      name: BinaryBlob
      pos:
        line_end: 10
        line_start: 6
        source_file: /src/sentencepiece/src/normalization_rule.h
    - fields:
      - name: '*name'
        type: char
      - name: size
        type: size_t
      - name: '*data'
        type: char
      item_type: struct
      name: BinaryBlob
      pos:
        line_end: 10
        line_start: 6
        source_file: /src/sentencepiece/src/normalization_rule.h
    - fields:
      - name: '*name'
        type: char
      - name: size
        type: size_t
      - name: '*data'
        type: char
      item_type: struct
      name: BinaryBlob
      pos:
        line_end: 10
        line_start: 6
        source_file: /src/sentencepiece/src/normalization_rule.h
    typedefs: []
    union: []
- function_names:
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  - sentencepiece::TEST
  source_file: /src/sentencepiece/src/filesystem_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
  - sentencepiece::unicode_script::GetScriptInternal::GetScript
  - sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
  - sentencepiece::unicode_script::GetScriptInternal::GetScript
  - sentencepiece::unicode_script::GetScript
  - sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
  - sentencepiece::unicode_script::GetScriptInternal::GetScript
  - sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
  - sentencepiece::unicode_script::GetScriptInternal::GetScript
  - sentencepiece::unicode_script::GetScript
  - sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
  - sentencepiece::unicode_script::GetScriptInternal::GetScript
  - sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
  - sentencepiece::unicode_script::GetScriptInternal::GetScript
  - sentencepiece::unicode_script::GetScript
  - sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
  - sentencepiece::unicode_script::GetScriptInternal::GetScript
  - sentencepiece::unicode_script::GetScriptInternal::GetScriptInternal
  - sentencepiece::unicode_script::GetScriptInternal::GetScript
  - sentencepiece::unicode_script::GetScript
  source_file: /src/sentencepiece/src/unicode_script.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::word::RunTrainer
  - sentencepiece::word::RunTrainer
  - sentencepiece::word::TEST
  - sentencepiece::word::TEST
  - sentencepiece::word::RunTrainer
  - sentencepiece::word::RunTrainer
  - sentencepiece::word::TEST
  - sentencepiece::word::TEST
  - sentencepiece::word::RunTrainer
  - sentencepiece::word::RunTrainer
  - sentencepiece::word::TEST
  - sentencepiece::word::TEST
  - sentencepiece::word::RunTrainer
  - sentencepiece::word::RunTrainer
  - sentencepiece::word::TEST
  - sentencepiece::word::TEST
  source_file: /src/sentencepiece/src/word_model_trainer_test.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/word_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/word_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/word_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/word_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/word_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/word_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/word_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    - item_type: preproc_def
      name: WS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/sentencepiece/src/word_model_trainer_test.cc
      type_or_value: '"\xE2\x96\x81"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::normalizer::Normalizer::Normalizer
  - sentencepiece::normalizer::Normalizer::Normalizer
  - Normalizer::~Normalizer()
  - sentencepiece::normalizer::Normalizer::Init
  - sentencepiece::normalizer::Normalizer::Normalize
  - sentencepiece::normalizer::Normalizer::Normalize
  - sentencepiece::normalizer::Normalizer::NormalizePrefix
  - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
  - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
  - sentencepiece::normalizer::PrefixMatcher::PrefixMatcher
  - sentencepiece::normalizer::PrefixMatcher::PrefixMatch
  - sentencepiece::normalizer::PrefixMatcher::GlobalReplace
  - sentencepiece::normalizer::Normalizer::Normalizer
  - sentencepiece::normalizer::Normalizer::Normalizer
  - Normalizer::~Normalizer()
  - sentencepiece::normalizer::Normalizer::Init
  - sentencepiece::normalizer::Normalizer::Normalize
  - sentencepiece::normalizer::Normalizer::Normalize
  - sentencepiece::normalizer::Normalizer::NormalizePrefix
  - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
  - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
  - sentencepiece::normalizer::PrefixMatcher::PrefixMatcher
  - sentencepiece::normalizer::PrefixMatcher::PrefixMatch
  - sentencepiece::normalizer::PrefixMatcher::GlobalReplace
  - sentencepiece::normalizer::Normalizer::Normalizer
  - sentencepiece::normalizer::Normalizer::Normalizer
  - Normalizer::~Normalizer()
  - sentencepiece::normalizer::Normalizer::Init
  - sentencepiece::normalizer::Normalizer::Normalize
  - sentencepiece::normalizer::Normalizer::Normalize
  - sentencepiece::normalizer::Normalizer::NormalizePrefix
  - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
  - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
  - sentencepiece::normalizer::PrefixMatcher::PrefixMatcher
  - sentencepiece::normalizer::PrefixMatcher::PrefixMatch
  - sentencepiece::normalizer::PrefixMatcher::GlobalReplace
  - sentencepiece::normalizer::Normalizer::Normalizer
  - sentencepiece::normalizer::Normalizer::Normalizer
  - Normalizer::~Normalizer()
  - sentencepiece::normalizer::Normalizer::Init
  - sentencepiece::normalizer::Normalizer::Normalize
  - sentencepiece::normalizer::Normalizer::Normalize
  - sentencepiece::normalizer::Normalizer::NormalizePrefix
  - sentencepiece::normalizer::Normalizer::EncodePrecompiledCharsMap
  - sentencepiece::normalizer::Normalizer::DecodePrecompiledCharsMap
  - sentencepiece::normalizer::PrefixMatcher::PrefixMatcher
  - sentencepiece::normalizer::PrefixMatcher::PrefixMatch
  - sentencepiece::normalizer::PrefixMatcher::GlobalReplace
  source_file: /src/sentencepiece/src/normalizer.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PARSE_STRING
  - PARSE_REPEATED_STRING
  - PARSE_BYTE
  - PARSE_INT32
  - PARSE_UINT64
  - PARSE_DOUBLE
  - PARSE_BOOL
  - PARSE_ENUM
  - PRINT_PARAM
  - PRINT_REPEATED_STRING
  - PRINT_ENUM
  - sentencepiece::PrintProto
  - sentencepiece::PrintProto
  - sentencepiece::SentencePieceTrainer::SetProtoField
  - sentencepiece::SentencePieceTrainer::SetProtoField
  - PARSE_STRING
  - PARSE_REPEATED_STRING
  - PARSE_BYTE
  - PARSE_INT32
  - PARSE_UINT64
  - PARSE_DOUBLE
  - PARSE_BOOL
  - PARSE_ENUM
  - PRINT_PARAM
  - PRINT_REPEATED_STRING
  - PRINT_ENUM
  - sentencepiece::PrintProto
  - sentencepiece::PrintProto
  - sentencepiece::SentencePieceTrainer::SetProtoField
  - sentencepiece::SentencePieceTrainer::SetProtoField
  source_file: /src/sentencepiece/src/spec_parser.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/sentencepiece/src/model_factory.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PyInputStringView
  - ToPyString
  - ToPyStringList
  - RegisterExceptionTranslator
  - PySentenceIterator::PySentenceIterator
  - PySentenceIterator::done
  - PySentenceIterator::Next
  - '& value() const override'
  - PySentenceIterator::status
  - RewriteIds
  - RewriteIds
  - RewriteIdsThrowException
  - RewriteIdsThrowException
  - CheckIds
  - CheckIdsThrowException
  - GetNumThreads
  - PyThreadPool::PyThreadPool
  - PyThreadPool::get
  - PyThreadPool::num_threads
  - WorkerPool::WorkerPool
  - WorkerPool::get
  - PyListStringViewVector::PyListStringViewVector
  - PyListStringViewVector::views
  - PyListStringViewVector::size
  - PyListStringViewVector::empty
  - operator[](size_t i) const
  - IntSpanOrVector::IntSpanOrVector
  - IntSpanOrVector::IntSpanOrVector
  - IntSpanOrVector::IntSpanOrVector
  - IntSpanOrVector::IntSpanOrVector
  - '& operator=(const IntSpanOrVector&)'
  - IntSpanOrVector::IntSpanOrVector
  - '& operator=(IntSpanOrVector&&)'
  - IntSpanOrVector::span
  - VectorBuffer::VectorBuffer
  - VectorBuffer::VectorBuffer
  - VectorBuffer::data
  - VectorBuffer::size
  - IsIntegerFormat
  - CastToIntSpanOrVector
  - CastToVectorIntSpanOrVector
  - SingleCall
  - BatchCall
  - REGISTER_ID_METHOD
  - CheckProtoArgsThrowException
  - OneCharLen
  - BuildUtf8ToUnicodeMap
  - ExtractOffsetMapping
  - PyInputStringView
  - ToPyString
  - ToPyStringList
  - RegisterExceptionTranslator
  - PySentenceIterator::PySentenceIterator
  - PySentenceIterator::done
  - PySentenceIterator::Next
  - '& value() const override'
  - PySentenceIterator::status
  - RewriteIds
  - RewriteIds
  - RewriteIdsThrowException
  - RewriteIdsThrowException
  - CheckIds
  - CheckIdsThrowException
  - GetNumThreads
  - PyThreadPool::PyThreadPool
  - PyThreadPool::get
  - PyThreadPool::num_threads
  - WorkerPool::WorkerPool
  - WorkerPool::get
  - PyListStringViewVector::PyListStringViewVector
  - PyListStringViewVector::views
  - PyListStringViewVector::size
  - PyListStringViewVector::empty
  - operator[](size_t i) const
  - IntSpanOrVector::IntSpanOrVector
  - IntSpanOrVector::IntSpanOrVector
  - IntSpanOrVector::IntSpanOrVector
  - IntSpanOrVector::IntSpanOrVector
  - '& operator=(const IntSpanOrVector&)'
  - IntSpanOrVector::IntSpanOrVector
  - '& operator=(IntSpanOrVector&&)'
  - IntSpanOrVector::span
  - VectorBuffer::VectorBuffer
  - VectorBuffer::VectorBuffer
  - VectorBuffer::data
  - VectorBuffer::size
  - IsIntegerFormat
  - CastToIntSpanOrVector
  - CastToVectorIntSpanOrVector
  - SingleCall
  - BatchCall
  - REGISTER_ID_METHOD
  - CheckProtoArgsThrowException
  - OneCharLen
  - BuildUtf8ToUnicodeMap
  - ExtractOffsetMapping
  - PYBIND11_MODULE
  source_file: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: is_bytes
        type: bool
      - name: value
        type: std::string_view
      item_type: struct
      name: PyInputStringView
      pos:
        line_end: 38
        line_start: 23
        source_file: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    - fields:
      - name: is_bytes
        type: bool
      - name: value
        type: std::string_view
      item_type: struct
      name: PyInputStringView
      pos:
        line_end: 38
        line_start: 23
        source_file: /src/sentencepiece/python/src/sentencepiece/sentencepiece_pybind.cc
    typedefs: []
    union: []
- function_names:
  - sentencepiece::nlcodec::RunFastBPEMerges
  - sentencepiece::nlcodec::RunFastBPEMerges
  - sentencepiece::nlcodec::RunFastBPEMerges
  - sentencepiece::nlcodec::RunFastBPEMerges
  source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: ids
        type: std::vector<int32_t>
      - name: freq
        type: int64_t
      item_type: struct
      name: WordSeq
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc
    - fields:
      - name: ids
        type: std::vector<int32_t>
      - name: freq
        type: int64_t
      item_type: struct
      name: WordSeq
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc
    - fields:
      - name: ids
        type: std::vector<int32_t>
      - name: freq
        type: int64_t
      item_type: struct
      name: WordSeq
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc
    - fields:
      - name: ids
        type: std::vector<int32_t>
      - name: freq
        type: int64_t
      item_type: struct
      name: WordSeq
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.cc
    typedefs: []
    union: []
- function_names:
  - sentencepiece::nlcodec::TrainAndGetPieces
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TrainAndGetPieces
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TrainAndGetPieces
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TrainAndGetPieces
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TrainAndGetPieces
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TrainAndGetPieces
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TrainAndGetPieces
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TrainAndGetPieces
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  - sentencepiece::nlcodec::TEST
  source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec_test.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sentencepiece::nlcodec::unlink
  - sentencepiece::nlcodec::is_unlinked
  - sentencepiece::nlcodec::NodeArena::NodeArena
  - sentencepiece::nlcodec::NodeArena::alloc
  - sentencepiece::nlcodec::NodeArena::from_seq
  - operator()(const Bigram &b) const
  - sentencepiece::nlcodec::MaxHeap::MaxHeap
  - sentencepiece::nlcodec::MaxHeap::push
  - sentencepiece::nlcodec::MaxHeap::pop
  - sentencepiece::nlcodec::MaxHeap::empty
  - sentencepiece::nlcodec::unlink
  - sentencepiece::nlcodec::is_unlinked
  - sentencepiece::nlcodec::NodeArena::NodeArena
  - sentencepiece::nlcodec::NodeArena::alloc
  - sentencepiece::nlcodec::NodeArena::from_seq
  - operator()(const Bigram &b) const
  - sentencepiece::nlcodec::MaxHeap::MaxHeap
  - sentencepiece::nlcodec::MaxHeap::push
  - sentencepiece::nlcodec::MaxHeap::pop
  - sentencepiece::nlcodec::MaxHeap::empty
  - sentencepiece::nlcodec::unlink
  - sentencepiece::nlcodec::is_unlinked
  - sentencepiece::nlcodec::NodeArena::NodeArena
  - sentencepiece::nlcodec::NodeArena::alloc
  - sentencepiece::nlcodec::NodeArena::from_seq
  - operator()(const Bigram &b) const
  - sentencepiece::nlcodec::MaxHeap::MaxHeap
  - sentencepiece::nlcodec::MaxHeap::push
  - sentencepiece::nlcodec::MaxHeap::pop
  - sentencepiece::nlcodec::MaxHeap::empty
  - sentencepiece::nlcodec::unlink
  - sentencepiece::nlcodec::is_unlinked
  - sentencepiece::nlcodec::NodeArena::NodeArena
  - sentencepiece::nlcodec::NodeArena::alloc
  - sentencepiece::nlcodec::NodeArena::from_seq
  - operator()(const Bigram &b) const
  - sentencepiece::nlcodec::MaxHeap::MaxHeap
  - sentencepiece::nlcodec::MaxHeap::push
  - sentencepiece::nlcodec::MaxHeap::pop
  - sentencepiece::nlcodec::MaxHeap::empty
  source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: val
        type: int32_t
      - name: '*left'
        type: LnNode
      - name: freq
        type: int64_t
      item_type: struct
      name: LnNode
      pos:
        line_end: 44
        line_start: 33
        source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    - fields: []
      item_type: struct
      name: BigramHash
      pos:
        line_end: 90
        line_start: 84
        source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    - fields:
      - name: val
        type: int32_t
      - name: '*left'
        type: LnNode
      - name: freq
        type: int64_t
      item_type: struct
      name: LnNode
      pos:
        line_end: 44
        line_start: 33
        source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    - fields: []
      item_type: struct
      name: BigramHash
      pos:
        line_end: 90
        line_start: 84
        source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    - fields:
      - name: val
        type: int32_t
      - name: '*left'
        type: LnNode
      - name: freq
        type: int64_t
      item_type: struct
      name: LnNode
      pos:
        line_end: 44
        line_start: 33
        source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    - fields: []
      item_type: struct
      name: BigramHash
      pos:
        line_end: 90
        line_start: 84
        source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    - fields:
      - name: val
        type: int32_t
      - name: '*left'
        type: LnNode
      - name: freq
        type: int64_t
      item_type: struct
      name: LnNode
      pos:
        line_end: 44
        line_start: 33
        source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    - fields: []
      item_type: struct
      name: BigramHash
      pos:
        line_end: 90
        line_start: 84
        source_file: /src/sentencepiece/contrib/nlcodec/bpe_model_trainer_nlcodec.h
    typedefs: []
    union: []
- function_names:
  - DARTS_INT_TO_STR
  - DARTS_LINE_TO_STR
  - DARTS_THROW
  - Darts::Details::DoubleArrayUnit::DoubleArrayUnit
  - Darts::Details::DoubleArrayUnit::has_leaf
  - Darts::Details::DoubleArrayUnit::value
  - Darts::Details::DoubleArrayUnit::label
  - Darts::Details::DoubleArrayUnit::offset
  - Darts::Details::Exception::Exception
  - Darts::Details::Exception::Exception
  - ~Exception() throw()
  - Darts::Details::Exception::what
  - Darts::Details::DoubleArrayUnit::DoubleArrayUnit
  - Darts::Details::DoubleArrayUnit::has_leaf
  - Darts::Details::DoubleArrayUnit::value
  - Darts::Details::DoubleArrayUnit::label
  - Darts::Details::DoubleArrayUnit::offset
  - Darts::Details::Exception::Exception
  - Darts::Details::Exception::Exception
  - ~Exception() throw()
  - Darts::Details::Exception::what
  - Darts::DoubleArrayImpl::DoubleArrayImpl
  - ~DoubleArrayImpl()
  - Darts::DoubleArrayImpl::set_result
  - Darts::DoubleArrayImpl::set_result
  - Darts::DoubleArrayImpl::set_array
  - Darts::DoubleArrayImpl::copy_array
  - Darts::DoubleArrayImpl::array
  - Darts::DoubleArrayImpl::clear
  - Darts::DoubleArrayImpl::unit_size
  - Darts::DoubleArrayImpl::size
  - Darts::DoubleArrayImpl::total_size
  - Darts::DoubleArrayImpl::nonzero_size
  - Darts::DoubleArrayImpl::exactMatchSearch
  - Darts::DoubleArrayImpl<A, B, T, C>::open
  - Darts::DoubleArrayImpl<A, B, T, C>::save
  - Darts::DoubleArrayImpl<A, B, T, C>::validate
  - Darts::DoubleArrayImpl<A, B, T, C>::exactMatchSearch
  - Darts::DoubleArrayImpl<A, B, T, C>::commonPrefixSearch
  - Darts::DoubleArrayImpl<A, B, T, C>::traverse
  - Darts::Details::AutoArray::AutoArray
  - ~AutoArray()
  - '&operator[](std::size_t id) const'
  - '&operator[](std::size_t id)'
  - Darts::Details::AutoArray::empty
  - Darts::Details::AutoArray::clear
  - Darts::Details::AutoArray::swap
  - Darts::Details::AutoArray::reset
  - Darts::Details::AutoPool::AutoPool
  - ~AutoPool()
  - '&operator[](std::size_t id) const'
  - '&operator[](std::size_t id)'
  - Darts::Details::AutoPool::empty
  - Darts::Details::AutoPool::size
  - Darts::Details::AutoPool::clear
  - Darts::Details::AutoPool::push_back
  - Darts::Details::AutoPool::pop_back
  - Darts::Details::AutoPool::append
  - Darts::Details::AutoPool::append
  - Darts::Details::AutoPool::resize
  - Darts::Details::AutoPool::resize
  - Darts::Details::AutoPool::reserve
  - Darts::Details::AutoPool<T>::resize_buf
  - Darts::Details::AutoStack::AutoStack
  - ~AutoStack()
  - '&top() const'
  - '&top()'
  - Darts::Details::AutoStack::empty
  - Darts::Details::AutoStack::size
  - Darts::Details::AutoStack::push
  - Darts::Details::AutoStack::pop
  - Darts::Details::AutoStack::clear
  - Darts::Details::BitVector::BitVector
  - ~BitVector()
  - operator[](std::size_t id) const
  - Darts::Details::BitVector::rank
  - Darts::Details::BitVector::set
  - Darts::Details::BitVector::empty
  - Darts::Details::BitVector::num_ones
  - Darts::Details::BitVector::size
  - Darts::Details::BitVector::append
  - Darts::Details::BitVector::clear
  - Darts::Details::BitVector::pop_count
  - Darts::Details::BitVector::build
  - Darts::Details::Keyset::Keyset
  - Darts::Details::Keyset::num_keys
  - Darts::Details::Keyset::keys
  - Darts::Details::Keyset::keys
  - Darts::Details::Keyset::has_lengths
  - Darts::Details::Keyset::lengths
  - Darts::Details::Keyset::has_values
  - Darts::Details::Keyset::values
  - Darts::Details::DawgNode::DawgNode
  - Darts::Details::DawgNode::set_child
  - Darts::Details::DawgNode::set_sibling
  - Darts::Details::DawgNode::set_value
  - Darts::Details::DawgNode::set_label
  - Darts::Details::DawgNode::set_is_state
  - Darts::Details::DawgNode::set_has_sibling
  - Darts::Details::DawgNode::child
  - Darts::Details::DawgNode::sibling
  - Darts::Details::DawgNode::value
  - Darts::Details::DawgNode::label
  - Darts::Details::DawgNode::is_state
  - Darts::Details::DawgNode::has_sibling
  - Darts::Details::DawgNode::unit
  - Darts::Details::DawgUnit::DawgUnit
  - Darts::Details::DawgUnit::DawgUnit
  - '&operator=(id_type unit)'
  - Darts::Details::DawgUnit::unit
  - Darts::Details::DawgUnit::child
  - Darts::Details::DawgUnit::has_sibling
  - Darts::Details::DawgUnit::value
  - Darts::Details::DawgUnit::is_state
  - Darts::Details::DawgBuilder::DawgBuilder
  - ~DawgBuilder()
  - Darts::Details::DawgBuilder::root
  - Darts::Details::DawgBuilder::child
  - Darts::Details::DawgBuilder::sibling
  - Darts::Details::DawgBuilder::value
  - Darts::Details::DawgBuilder::is_leaf
  - Darts::Details::DawgBuilder::label
  - Darts::Details::DawgBuilder::is_intersection
  - Darts::Details::DawgBuilder::intersection_id
  - Darts::Details::DawgBuilder::num_intersections
  - Darts::Details::DawgBuilder::size
  - Darts::Details::DawgBuilder::free_node
  - Darts::Details::DawgBuilder::hash
  - Darts::Details::DawgBuilder::init
  - Darts::Details::DawgBuilder::finish
  - Darts::Details::DawgBuilder::insert
  - Darts::Details::DawgBuilder::clear
  - Darts::Details::DawgBuilder::flush
  - Darts::Details::DawgBuilder::expand_table
  - Darts::Details::DawgBuilder::find_unit
  - Darts::Details::DawgBuilder::find_node
  - Darts::Details::DawgBuilder::are_equal
  - Darts::Details::DawgBuilder::hash_unit
  - Darts::Details::DawgBuilder::hash_node
  - Darts::Details::DawgBuilder::append_unit
  - Darts::Details::DawgBuilder::append_node
  - Darts::Details::DoubleArrayBuilderUnit::DoubleArrayBuilderUnit
  - Darts::Details::DoubleArrayBuilderUnit::set_has_leaf
  - Darts::Details::DoubleArrayBuilderUnit::set_value
  - Darts::Details::DoubleArrayBuilderUnit::set_label
  - Darts::Details::DoubleArrayBuilderUnit::set_offset
  - Darts::Details::DoubleArrayBuilderExtraUnit::DoubleArrayBuilderExtraUnit
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_prev
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_next
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_is_fixed
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_is_used
  - Darts::Details::DoubleArrayBuilderExtraUnit::prev
  - Darts::Details::DoubleArrayBuilderExtraUnit::next
  - Darts::Details::DoubleArrayBuilderExtraUnit::is_fixed
  - Darts::Details::DoubleArrayBuilderExtraUnit::is_used
  - Darts::Details::DoubleArrayBuilder::DoubleArrayBuilder
  - ~DoubleArrayBuilder()
  - Darts::Details::DoubleArrayBuilder::num_blocks
  - '&extras(id_type id) const'
  - '&extras(id_type id)'
  - Darts::Details::DoubleArrayBuilder::build
  - Darts::Details::DoubleArrayBuilder::copy
  - Darts::Details::DoubleArrayBuilder::clear
  - Darts::Details::DoubleArrayBuilder::build_dawg
  - Darts::Details::DoubleArrayBuilder::build_from_dawg
  - Darts::Details::DoubleArrayBuilder::build_from_dawg
  - Darts::Details::DoubleArrayBuilder::arrange_from_dawg
  - Darts::Details::DoubleArrayBuilder::build_from_keyset
  - Darts::Details::DoubleArrayBuilder::build_from_keyset
  - Darts::Details::DoubleArrayBuilder::arrange_from_keyset
  - Darts::Details::DoubleArrayBuilder::find_valid_offset
  - Darts::Details::DoubleArrayBuilder::is_valid_offset
  - Darts::Details::DoubleArrayBuilder::reserve_id
  - Darts::Details::DoubleArrayBuilder::expand_units
  - Darts::Details::DoubleArrayBuilder::fix_all_blocks
  - Darts::Details::DoubleArrayBuilder::fix_block
  - Darts::Details::AutoArray::AutoArray
  - ~AutoArray()
  - '&operator[](std::size_t id) const'
  - '&operator[](std::size_t id)'
  - Darts::Details::AutoArray::empty
  - Darts::Details::AutoArray::clear
  - Darts::Details::AutoArray::swap
  - Darts::Details::AutoArray::reset
  - Darts::Details::AutoPool::AutoPool
  - ~AutoPool()
  - '&operator[](std::size_t id) const'
  - '&operator[](std::size_t id)'
  - Darts::Details::AutoPool::empty
  - Darts::Details::AutoPool::size
  - Darts::Details::AutoPool::clear
  - Darts::Details::AutoPool::push_back
  - Darts::Details::AutoPool::pop_back
  - Darts::Details::AutoPool::append
  - Darts::Details::AutoPool::append
  - Darts::Details::AutoPool::resize
  - Darts::Details::AutoPool::resize
  - Darts::Details::AutoPool::reserve
  - Darts::Details::AutoPool<T>::resize_buf
  - Darts::Details::AutoStack::AutoStack
  - ~AutoStack()
  - '&top() const'
  - '&top()'
  - Darts::Details::AutoStack::empty
  - Darts::Details::AutoStack::size
  - Darts::Details::AutoStack::push
  - Darts::Details::AutoStack::pop
  - Darts::Details::AutoStack::clear
  - Darts::Details::BitVector::BitVector
  - ~BitVector()
  - operator[](std::size_t id) const
  - Darts::Details::BitVector::rank
  - Darts::Details::BitVector::set
  - Darts::Details::BitVector::empty
  - Darts::Details::BitVector::num_ones
  - Darts::Details::BitVector::size
  - Darts::Details::BitVector::append
  - Darts::Details::BitVector::clear
  - Darts::Details::BitVector::pop_count
  - Darts::Details::BitVector::build
  - Darts::Details::Keyset::Keyset
  - Darts::Details::Keyset::num_keys
  - Darts::Details::Keyset::keys
  - Darts::Details::Keyset::keys
  - Darts::Details::Keyset::has_lengths
  - Darts::Details::Keyset::lengths
  - Darts::Details::Keyset::has_values
  - Darts::Details::Keyset::values
  - Darts::Details::DawgNode::DawgNode
  - Darts::Details::DawgNode::set_child
  - Darts::Details::DawgNode::set_sibling
  - Darts::Details::DawgNode::set_value
  - Darts::Details::DawgNode::set_label
  - Darts::Details::DawgNode::set_is_state
  - Darts::Details::DawgNode::set_has_sibling
  - Darts::Details::DawgNode::child
  - Darts::Details::DawgNode::sibling
  - Darts::Details::DawgNode::value
  - Darts::Details::DawgNode::label
  - Darts::Details::DawgNode::is_state
  - Darts::Details::DawgNode::has_sibling
  - Darts::Details::DawgNode::unit
  - Darts::Details::DawgUnit::DawgUnit
  - Darts::Details::DawgUnit::DawgUnit
  - '&operator=(id_type unit)'
  - Darts::Details::DawgUnit::unit
  - Darts::Details::DawgUnit::child
  - Darts::Details::DawgUnit::has_sibling
  - Darts::Details::DawgUnit::value
  - Darts::Details::DawgUnit::is_state
  - Darts::Details::DawgBuilder::DawgBuilder
  - ~DawgBuilder()
  - Darts::Details::DawgBuilder::root
  - Darts::Details::DawgBuilder::child
  - Darts::Details::DawgBuilder::sibling
  - Darts::Details::DawgBuilder::value
  - Darts::Details::DawgBuilder::is_leaf
  - Darts::Details::DawgBuilder::label
  - Darts::Details::DawgBuilder::is_intersection
  - Darts::Details::DawgBuilder::intersection_id
  - Darts::Details::DawgBuilder::num_intersections
  - Darts::Details::DawgBuilder::size
  - Darts::Details::DawgBuilder::free_node
  - Darts::Details::DawgBuilder::hash
  - Darts::Details::DawgBuilder::init
  - Darts::Details::DawgBuilder::finish
  - Darts::Details::DawgBuilder::insert
  - Darts::Details::DawgBuilder::clear
  - Darts::Details::DawgBuilder::flush
  - Darts::Details::DawgBuilder::expand_table
  - Darts::Details::DawgBuilder::find_unit
  - Darts::Details::DawgBuilder::find_node
  - Darts::Details::DawgBuilder::are_equal
  - Darts::Details::DawgBuilder::hash_unit
  - Darts::Details::DawgBuilder::hash_node
  - Darts::Details::DawgBuilder::append_unit
  - Darts::Details::DawgBuilder::append_node
  - Darts::Details::DoubleArrayBuilderUnit::DoubleArrayBuilderUnit
  - Darts::Details::DoubleArrayBuilderUnit::set_has_leaf
  - Darts::Details::DoubleArrayBuilderUnit::set_value
  - Darts::Details::DoubleArrayBuilderUnit::set_label
  - Darts::Details::DoubleArrayBuilderUnit::set_offset
  - Darts::Details::DoubleArrayBuilderExtraUnit::DoubleArrayBuilderExtraUnit
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_prev
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_next
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_is_fixed
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_is_used
  - Darts::Details::DoubleArrayBuilderExtraUnit::prev
  - Darts::Details::DoubleArrayBuilderExtraUnit::next
  - Darts::Details::DoubleArrayBuilderExtraUnit::is_fixed
  - Darts::Details::DoubleArrayBuilderExtraUnit::is_used
  - Darts::Details::DoubleArrayBuilder::DoubleArrayBuilder
  - ~DoubleArrayBuilder()
  - Darts::Details::DoubleArrayBuilder::num_blocks
  - '&extras(id_type id) const'
  - '&extras(id_type id)'
  - Darts::Details::DoubleArrayBuilder::build
  - Darts::Details::DoubleArrayBuilder::copy
  - Darts::Details::DoubleArrayBuilder::clear
  - Darts::Details::DoubleArrayBuilder::build_dawg
  - Darts::Details::DoubleArrayBuilder::build_from_dawg
  - Darts::Details::DoubleArrayBuilder::build_from_dawg
  - Darts::Details::DoubleArrayBuilder::arrange_from_dawg
  - Darts::Details::DoubleArrayBuilder::build_from_keyset
  - Darts::Details::DoubleArrayBuilder::build_from_keyset
  - Darts::Details::DoubleArrayBuilder::arrange_from_keyset
  - Darts::Details::DoubleArrayBuilder::find_valid_offset
  - Darts::Details::DoubleArrayBuilder::is_valid_offset
  - Darts::Details::DoubleArrayBuilder::reserve_id
  - Darts::Details::DoubleArrayBuilder::expand_units
  - Darts::Details::DoubleArrayBuilder::fix_all_blocks
  - Darts::Details::DoubleArrayBuilder::fix_block
  - Darts::DoubleArrayImpl<A, B, T, C>::build
  - Darts::Details::DoubleArrayUnit::DoubleArrayUnit
  - Darts::Details::DoubleArrayUnit::has_leaf
  - Darts::Details::DoubleArrayUnit::value
  - Darts::Details::DoubleArrayUnit::label
  - Darts::Details::DoubleArrayUnit::offset
  - Darts::Details::Exception::Exception
  - Darts::Details::Exception::Exception
  - ~Exception() throw()
  - Darts::Details::Exception::what
  - Darts::Details::DoubleArrayUnit::DoubleArrayUnit
  - Darts::Details::DoubleArrayUnit::has_leaf
  - Darts::Details::DoubleArrayUnit::value
  - Darts::Details::DoubleArrayUnit::label
  - Darts::Details::DoubleArrayUnit::offset
  - Darts::Details::Exception::Exception
  - Darts::Details::Exception::Exception
  - ~Exception() throw()
  - Darts::Details::Exception::what
  - Darts::DoubleArrayImpl::DoubleArrayImpl
  - ~DoubleArrayImpl()
  - Darts::DoubleArrayImpl::set_result
  - Darts::DoubleArrayImpl::set_result
  - Darts::DoubleArrayImpl::set_array
  - Darts::DoubleArrayImpl::copy_array
  - Darts::DoubleArrayImpl::array
  - Darts::DoubleArrayImpl::clear
  - Darts::DoubleArrayImpl::unit_size
  - Darts::DoubleArrayImpl::size
  - Darts::DoubleArrayImpl::total_size
  - Darts::DoubleArrayImpl::nonzero_size
  - Darts::DoubleArrayImpl::exactMatchSearch
  - Darts::DoubleArrayImpl<A, B, T, C>::open
  - Darts::DoubleArrayImpl<A, B, T, C>::save
  - Darts::DoubleArrayImpl<A, B, T, C>::validate
  - Darts::DoubleArrayImpl<A, B, T, C>::exactMatchSearch
  - Darts::DoubleArrayImpl<A, B, T, C>::commonPrefixSearch
  - Darts::DoubleArrayImpl<A, B, T, C>::traverse
  - Darts::Details::AutoArray::AutoArray
  - ~AutoArray()
  - '&operator[](std::size_t id) const'
  - '&operator[](std::size_t id)'
  - Darts::Details::AutoArray::empty
  - Darts::Details::AutoArray::clear
  - Darts::Details::AutoArray::swap
  - Darts::Details::AutoArray::reset
  - Darts::Details::AutoPool::AutoPool
  - ~AutoPool()
  - '&operator[](std::size_t id) const'
  - '&operator[](std::size_t id)'
  - Darts::Details::AutoPool::empty
  - Darts::Details::AutoPool::size
  - Darts::Details::AutoPool::clear
  - Darts::Details::AutoPool::push_back
  - Darts::Details::AutoPool::pop_back
  - Darts::Details::AutoPool::append
  - Darts::Details::AutoPool::append
  - Darts::Details::AutoPool::resize
  - Darts::Details::AutoPool::resize
  - Darts::Details::AutoPool::reserve
  - Darts::Details::AutoPool<T>::resize_buf
  - Darts::Details::AutoStack::AutoStack
  - ~AutoStack()
  - '&top() const'
  - '&top()'
  - Darts::Details::AutoStack::empty
  - Darts::Details::AutoStack::size
  - Darts::Details::AutoStack::push
  - Darts::Details::AutoStack::pop
  - Darts::Details::AutoStack::clear
  - Darts::Details::BitVector::BitVector
  - ~BitVector()
  - operator[](std::size_t id) const
  - Darts::Details::BitVector::rank
  - Darts::Details::BitVector::set
  - Darts::Details::BitVector::empty
  - Darts::Details::BitVector::num_ones
  - Darts::Details::BitVector::size
  - Darts::Details::BitVector::append
  - Darts::Details::BitVector::clear
  - Darts::Details::BitVector::pop_count
  - Darts::Details::BitVector::build
  - Darts::Details::Keyset::Keyset
  - Darts::Details::Keyset::num_keys
  - Darts::Details::Keyset::keys
  - Darts::Details::Keyset::keys
  - Darts::Details::Keyset::has_lengths
  - Darts::Details::Keyset::lengths
  - Darts::Details::Keyset::has_values
  - Darts::Details::Keyset::values
  - Darts::Details::DawgNode::DawgNode
  - Darts::Details::DawgNode::set_child
  - Darts::Details::DawgNode::set_sibling
  - Darts::Details::DawgNode::set_value
  - Darts::Details::DawgNode::set_label
  - Darts::Details::DawgNode::set_is_state
  - Darts::Details::DawgNode::set_has_sibling
  - Darts::Details::DawgNode::child
  - Darts::Details::DawgNode::sibling
  - Darts::Details::DawgNode::value
  - Darts::Details::DawgNode::label
  - Darts::Details::DawgNode::is_state
  - Darts::Details::DawgNode::has_sibling
  - Darts::Details::DawgNode::unit
  - Darts::Details::DawgUnit::DawgUnit
  - Darts::Details::DawgUnit::DawgUnit
  - '&operator=(id_type unit)'
  - Darts::Details::DawgUnit::unit
  - Darts::Details::DawgUnit::child
  - Darts::Details::DawgUnit::has_sibling
  - Darts::Details::DawgUnit::value
  - Darts::Details::DawgUnit::is_state
  - Darts::Details::DawgBuilder::DawgBuilder
  - ~DawgBuilder()
  - Darts::Details::DawgBuilder::root
  - Darts::Details::DawgBuilder::child
  - Darts::Details::DawgBuilder::sibling
  - Darts::Details::DawgBuilder::value
  - Darts::Details::DawgBuilder::is_leaf
  - Darts::Details::DawgBuilder::label
  - Darts::Details::DawgBuilder::is_intersection
  - Darts::Details::DawgBuilder::intersection_id
  - Darts::Details::DawgBuilder::num_intersections
  - Darts::Details::DawgBuilder::size
  - Darts::Details::DawgBuilder::free_node
  - Darts::Details::DawgBuilder::hash
  - Darts::Details::DawgBuilder::init
  - Darts::Details::DawgBuilder::finish
  - Darts::Details::DawgBuilder::insert
  - Darts::Details::DawgBuilder::clear
  - Darts::Details::DawgBuilder::flush
  - Darts::Details::DawgBuilder::expand_table
  - Darts::Details::DawgBuilder::find_unit
  - Darts::Details::DawgBuilder::find_node
  - Darts::Details::DawgBuilder::are_equal
  - Darts::Details::DawgBuilder::hash_unit
  - Darts::Details::DawgBuilder::hash_node
  - Darts::Details::DawgBuilder::append_unit
  - Darts::Details::DawgBuilder::append_node
  - Darts::Details::DoubleArrayBuilderUnit::DoubleArrayBuilderUnit
  - Darts::Details::DoubleArrayBuilderUnit::set_has_leaf
  - Darts::Details::DoubleArrayBuilderUnit::set_value
  - Darts::Details::DoubleArrayBuilderUnit::set_label
  - Darts::Details::DoubleArrayBuilderUnit::set_offset
  - Darts::Details::DoubleArrayBuilderExtraUnit::DoubleArrayBuilderExtraUnit
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_prev
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_next
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_is_fixed
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_is_used
  - Darts::Details::DoubleArrayBuilderExtraUnit::prev
  - Darts::Details::DoubleArrayBuilderExtraUnit::next
  - Darts::Details::DoubleArrayBuilderExtraUnit::is_fixed
  - Darts::Details::DoubleArrayBuilderExtraUnit::is_used
  - Darts::Details::DoubleArrayBuilder::DoubleArrayBuilder
  - ~DoubleArrayBuilder()
  - Darts::Details::DoubleArrayBuilder::num_blocks
  - '&extras(id_type id) const'
  - '&extras(id_type id)'
  - Darts::Details::DoubleArrayBuilder::build
  - Darts::Details::DoubleArrayBuilder::copy
  - Darts::Details::DoubleArrayBuilder::clear
  - Darts::Details::DoubleArrayBuilder::build_dawg
  - Darts::Details::DoubleArrayBuilder::build_from_dawg
  - Darts::Details::DoubleArrayBuilder::build_from_dawg
  - Darts::Details::DoubleArrayBuilder::arrange_from_dawg
  - Darts::Details::DoubleArrayBuilder::build_from_keyset
  - Darts::Details::DoubleArrayBuilder::build_from_keyset
  - Darts::Details::DoubleArrayBuilder::arrange_from_keyset
  - Darts::Details::DoubleArrayBuilder::find_valid_offset
  - Darts::Details::DoubleArrayBuilder::is_valid_offset
  - Darts::Details::DoubleArrayBuilder::reserve_id
  - Darts::Details::DoubleArrayBuilder::expand_units
  - Darts::Details::DoubleArrayBuilder::fix_all_blocks
  - Darts::Details::DoubleArrayBuilder::fix_block
  - Darts::Details::AutoArray::AutoArray
  - ~AutoArray()
  - '&operator[](std::size_t id) const'
  - '&operator[](std::size_t id)'
  - Darts::Details::AutoArray::empty
  - Darts::Details::AutoArray::clear
  - Darts::Details::AutoArray::swap
  - Darts::Details::AutoArray::reset
  - Darts::Details::AutoPool::AutoPool
  - ~AutoPool()
  - '&operator[](std::size_t id) const'
  - '&operator[](std::size_t id)'
  - Darts::Details::AutoPool::empty
  - Darts::Details::AutoPool::size
  - Darts::Details::AutoPool::clear
  - Darts::Details::AutoPool::push_back
  - Darts::Details::AutoPool::pop_back
  - Darts::Details::AutoPool::append
  - Darts::Details::AutoPool::append
  - Darts::Details::AutoPool::resize
  - Darts::Details::AutoPool::resize
  - Darts::Details::AutoPool::reserve
  - Darts::Details::AutoPool<T>::resize_buf
  - Darts::Details::AutoStack::AutoStack
  - ~AutoStack()
  - '&top() const'
  - '&top()'
  - Darts::Details::AutoStack::empty
  - Darts::Details::AutoStack::size
  - Darts::Details::AutoStack::push
  - Darts::Details::AutoStack::pop
  - Darts::Details::AutoStack::clear
  - Darts::Details::BitVector::BitVector
  - ~BitVector()
  - operator[](std::size_t id) const
  - Darts::Details::BitVector::rank
  - Darts::Details::BitVector::set
  - Darts::Details::BitVector::empty
  - Darts::Details::BitVector::num_ones
  - Darts::Details::BitVector::size
  - Darts::Details::BitVector::append
  - Darts::Details::BitVector::clear
  - Darts::Details::BitVector::pop_count
  - Darts::Details::BitVector::build
  - Darts::Details::Keyset::Keyset
  - Darts::Details::Keyset::num_keys
  - Darts::Details::Keyset::keys
  - Darts::Details::Keyset::keys
  - Darts::Details::Keyset::has_lengths
  - Darts::Details::Keyset::lengths
  - Darts::Details::Keyset::has_values
  - Darts::Details::Keyset::values
  - Darts::Details::DawgNode::DawgNode
  - Darts::Details::DawgNode::set_child
  - Darts::Details::DawgNode::set_sibling
  - Darts::Details::DawgNode::set_value
  - Darts::Details::DawgNode::set_label
  - Darts::Details::DawgNode::set_is_state
  - Darts::Details::DawgNode::set_has_sibling
  - Darts::Details::DawgNode::child
  - Darts::Details::DawgNode::sibling
  - Darts::Details::DawgNode::value
  - Darts::Details::DawgNode::label
  - Darts::Details::DawgNode::is_state
  - Darts::Details::DawgNode::has_sibling
  - Darts::Details::DawgNode::unit
  - Darts::Details::DawgUnit::DawgUnit
  - Darts::Details::DawgUnit::DawgUnit
  - '&operator=(id_type unit)'
  - Darts::Details::DawgUnit::unit
  - Darts::Details::DawgUnit::child
  - Darts::Details::DawgUnit::has_sibling
  - Darts::Details::DawgUnit::value
  - Darts::Details::DawgUnit::is_state
  - Darts::Details::DawgBuilder::DawgBuilder
  - ~DawgBuilder()
  - Darts::Details::DawgBuilder::root
  - Darts::Details::DawgBuilder::child
  - Darts::Details::DawgBuilder::sibling
  - Darts::Details::DawgBuilder::value
  - Darts::Details::DawgBuilder::is_leaf
  - Darts::Details::DawgBuilder::label
  - Darts::Details::DawgBuilder::is_intersection
  - Darts::Details::DawgBuilder::intersection_id
  - Darts::Details::DawgBuilder::num_intersections
  - Darts::Details::DawgBuilder::size
  - Darts::Details::DawgBuilder::free_node
  - Darts::Details::DawgBuilder::hash
  - Darts::Details::DawgBuilder::init
  - Darts::Details::DawgBuilder::finish
  - Darts::Details::DawgBuilder::insert
  - Darts::Details::DawgBuilder::clear
  - Darts::Details::DawgBuilder::flush
  - Darts::Details::DawgBuilder::expand_table
  - Darts::Details::DawgBuilder::find_unit
  - Darts::Details::DawgBuilder::find_node
  - Darts::Details::DawgBuilder::are_equal
  - Darts::Details::DawgBuilder::hash_unit
  - Darts::Details::DawgBuilder::hash_node
  - Darts::Details::DawgBuilder::append_unit
  - Darts::Details::DawgBuilder::append_node
  - Darts::Details::DoubleArrayBuilderUnit::DoubleArrayBuilderUnit
  - Darts::Details::DoubleArrayBuilderUnit::set_has_leaf
  - Darts::Details::DoubleArrayBuilderUnit::set_value
  - Darts::Details::DoubleArrayBuilderUnit::set_label
  - Darts::Details::DoubleArrayBuilderUnit::set_offset
  - Darts::Details::DoubleArrayBuilderExtraUnit::DoubleArrayBuilderExtraUnit
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_prev
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_next
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_is_fixed
  - Darts::Details::DoubleArrayBuilderExtraUnit::set_is_used
  - Darts::Details::DoubleArrayBuilderExtraUnit::prev
  - Darts::Details::DoubleArrayBuilderExtraUnit::next
  - Darts::Details::DoubleArrayBuilderExtraUnit::is_fixed
  - Darts::Details::DoubleArrayBuilderExtraUnit::is_used
  - Darts::Details::DoubleArrayBuilder::DoubleArrayBuilder
  - ~DoubleArrayBuilder()
  - Darts::Details::DoubleArrayBuilder::num_blocks
  - '&extras(id_type id) const'
  - '&extras(id_type id)'
  - Darts::Details::DoubleArrayBuilder::build
  - Darts::Details::DoubleArrayBuilder::copy
  - Darts::Details::DoubleArrayBuilder::clear
  - Darts::Details::DoubleArrayBuilder::build_dawg
  - Darts::Details::DoubleArrayBuilder::build_from_dawg
  - Darts::Details::DoubleArrayBuilder::build_from_dawg
  - Darts::Details::DoubleArrayBuilder::arrange_from_dawg
  - Darts::Details::DoubleArrayBuilder::build_from_keyset
  - Darts::Details::DoubleArrayBuilder::build_from_keyset
  - Darts::Details::DoubleArrayBuilder::arrange_from_keyset
  - Darts::Details::DoubleArrayBuilder::find_valid_offset
  - Darts::Details::DoubleArrayBuilder::is_valid_offset
  - Darts::Details::DoubleArrayBuilder::reserve_id
  - Darts::Details::DoubleArrayBuilder::expand_units
  - Darts::Details::DoubleArrayBuilder::fix_all_blocks
  - Darts::Details::DoubleArrayBuilder::fix_block
  - Darts::DoubleArrayImpl<A, B, T, C>::build
  source_file: /src/sentencepiece/third_party/darts_clone/darts.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DARTS_VERSION
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type_or_value: '"0.32"'
    - item_type: preproc_def
      name: DARTS_LINE_STR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type_or_value: DARTS_LINE_TO_STR(__LINE__)
    structs:
    - fields:
      - name: value
        type: value_type
      - name: length
        type: std::size_t
      item_type: struct
      name: result_pair_type
      pos:
        line_end: 135
        line_start: 132
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
    - fields:
      - name: value
        type: value_type
      - name: length
        type: std::size_t
      item_type: struct
      name: result_pair_type
      pos:
        line_end: 135
        line_start: 132
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
    typedefs:
    - item_type: typedef
      name: char_type
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: char
    - item_type: typedef
      name: uchar_type
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: unsigned char
    - item_type: typedef
      name: value_type
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: int
    - item_type: typedef
      name: id_type
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: unsigned int
    - item_type: typedef
      name: (*progress_func_type)(std::size_t, std::size_t)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: int
    - item_type: typedef
      name: char_type
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: char
    - item_type: typedef
      name: uchar_type
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: unsigned char
    - item_type: typedef
      name: value_type
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: int
    - item_type: typedef
      name: id_type
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: unsigned int
    - item_type: typedef
      name: (*progress_func_type)(std::size_t, std::size_t)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: int
    - item_type: typedef
      name: value_type
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: T
    - item_type: typedef
      name: key_type
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: char_type
    - item_type: typedef
      name: result_type
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: value_type
    - item_type: typedef
      name: uchar_type
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: uchar_type
    - item_type: typedef
      name: id_type
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: id_type
    - item_type: typedef
      name: unit_type
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: DoubleArrayUnit
    - item_type: typedef
      name: DoubleArray
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: DoubleArrayImpl
    - item_type: typedef
      name: unit_type
      pos:
        line_end: 1500
        line_start: 1500
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: DoubleArrayBuilderUnit
    - item_type: typedef
      name: extra_type
      pos:
        line_end: 1501
        line_start: 1501
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: DoubleArrayBuilderExtraUnit
    - item_type: typedef
      name: unit_type
      pos:
        line_end: 1500
        line_start: 1500
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: DoubleArrayBuilderUnit
    - item_type: typedef
      name: extra_type
      pos:
        line_end: 1501
        line_start: 1501
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: DoubleArrayBuilderExtraUnit
    - item_type: typedef
      name: char_type
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: char
    - item_type: typedef
      name: uchar_type
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: unsigned char
    - item_type: typedef
      name: value_type
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: int
    - item_type: typedef
      name: id_type
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: unsigned int
    - item_type: typedef
      name: (*progress_func_type)(std::size_t, std::size_t)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: int
    - item_type: typedef
      name: char_type
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: char
    - item_type: typedef
      name: uchar_type
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: unsigned char
    - item_type: typedef
      name: value_type
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: int
    - item_type: typedef
      name: id_type
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: unsigned int
    - item_type: typedef
      name: (*progress_func_type)(std::size_t, std::size_t)
      pos:
        line_end: 46
        line_start: 46
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: int
    - item_type: typedef
      name: value_type
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: T
    - item_type: typedef
      name: key_type
      pos:
        line_end: 125
        line_start: 125
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: char_type
    - item_type: typedef
      name: result_type
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: value_type
    - item_type: typedef
      name: uchar_type
      pos:
        line_end: 311
        line_start: 311
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: uchar_type
    - item_type: typedef
      name: id_type
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: id_type
    - item_type: typedef
      name: unit_type
      pos:
        line_end: 313
        line_start: 313
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: DoubleArrayUnit
    - item_type: typedef
      name: DoubleArray
      pos:
        line_end: 326
        line_start: 326
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: DoubleArrayImpl
    - item_type: typedef
      name: unit_type
      pos:
        line_end: 1500
        line_start: 1500
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: DoubleArrayBuilderUnit
    - item_type: typedef
      name: extra_type
      pos:
        line_end: 1501
        line_start: 1501
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: DoubleArrayBuilderExtraUnit
    - item_type: typedef
      name: unit_type
      pos:
        line_end: 1500
        line_start: 1500
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: DoubleArrayBuilderUnit
    - item_type: typedef
      name: extra_type
      pos:
        line_end: 1501
        line_start: 1501
        source_file: /src/sentencepiece/third_party/darts_clone/darts.h
      type: DoubleArrayBuilderExtraUnit
    union: []
- function_names:
  - UNUSED
  - BUCKETS_INDEX2
  - BUCKETS_INDEX4
  - libsais_prefetchr
  - libsais_prefetchw
  - libsais_prefetchr
  - libsais_prefetchw
  - libsais_prefetchr
  - libsais_prefetchw
  - libsais_prefetchr
  - libsais_prefetchw
  - libsais_bswap16
  - libsais_bswap16
  - libsais_bswap16
  - libsais_bswap16
  - libsais_align_up
  - libsais_alloc_aligned
  - libsais_free_aligned
  - libsais_alloc_thread_state
  - libsais_free_thread_state
  - libsais_create_ctx_main
  - libsais_free_ctx_main
  - libsais_gather_lms_suffixes_8u
  - libsais_gather_lms_suffixes_8u_omp
  - libsais_gather_lms_suffixes_32s
  - libsais_gather_compacted_lms_suffixes_32s
  - libsais_count_lms_suffixes_32s_4k
  - libsais_count_lms_suffixes_32s_2k
  - libsais_count_compacted_lms_suffixes_32s_2k
  - libsais_count_and_gather_lms_suffixes_8u
  - libsais_count_and_gather_lms_suffixes_8u_omp
  - libsais_count_and_gather_lms_suffixes_32s_4k
  - libsais_count_and_gather_lms_suffixes_32s_2k
  - libsais_count_and_gather_compacted_lms_suffixes_32s_2k
  - libsais_get_bucket_stride
  - libsais_count_and_gather_lms_suffixes_32s_4k_fs_omp
  - libsais_count_and_gather_lms_suffixes_32s_2k_fs_omp
  - libsais_count_and_gather_compacted_lms_suffixes_32s_2k_fs_omp
  - libsais_count_and_gather_lms_suffixes_32s_4k_nofs_omp
  - libsais_count_and_gather_lms_suffixes_32s_2k_nofs_omp
  - libsais_count_and_gather_compacted_lms_suffixes_32s_2k_nofs_omp
  - libsais_count_and_gather_lms_suffixes_32s_4k_omp
  - libsais_count_and_gather_lms_suffixes_32s_2k_omp
  - libsais_count_and_gather_compacted_lms_suffixes_32s_2k_omp
  - libsais_count_suffixes_32s
  - libsais_initialize_buckets_start_and_end_32s_6k
  - libsais_initialize_buckets_start_and_end_32s_4k
  - libsais_initialize_buckets_end_32s_2k
  - libsais_initialize_buckets_start_and_end_32s_2k
  - libsais_initialize_buckets_start_32s_1k
  - libsais_initialize_buckets_end_32s_1k
  - libsais_initialize_buckets_for_lms_suffixes_radix_sort_8u
  - libsais_initialize_buckets_for_lms_suffixes_radix_sort_32s_2k
  - libsais_initialize_buckets_for_lms_suffixes_radix_sort_32s_6k
  - libsais_initialize_buckets_for_radix_and_partial_sorting_32s_4k
  - libsais_radix_sort_lms_suffixes_8u
  - libsais_radix_sort_lms_suffixes_8u_omp
  - libsais_radix_sort_lms_suffixes_32s_6k
  - libsais_radix_sort_lms_suffixes_32s_2k
  - libsais_radix_sort_lms_suffixes_32s_block_gather
  - libsais_radix_sort_lms_suffixes_32s_6k_block_omp
  - libsais_radix_sort_lms_suffixes_32s_2k_block_omp
  - libsais_radix_sort_lms_suffixes_32s_6k_omp
  - libsais_radix_sort_lms_suffixes_32s_2k_omp
  - libsais_radix_sort_lms_suffixes_32s_1k
  - libsais_initialize_buckets_for_partial_sorting_8u
  - libsais_initialize_buckets_for_partial_sorting_32s_6k
  - libsais_partial_sorting_scan_left_to_right_8u
  - libsais_partial_sorting_scan_left_to_right_8u_block_prepare
  - libsais_partial_sorting_scan_left_to_right_8u_block_omp
  source_file: /src/sentencepiece/third_party/libsais/libsais.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SAINT_BIT
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: (32)
    - item_type: preproc_def
      name: SAINT_MAX
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: INT32_MAX
    - item_type: preproc_def
      name: SAINT_MIN
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: INT32_MIN
    - item_type: preproc_def
      name: ALPHABET_SIZE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: (1 << CHAR_BIT)
    - item_type: preproc_def
      name: UNBWT_FASTBITS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: (17)
    - item_type: preproc_def
      name: SUFFIX_GROUP_BIT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: (SAINT_BIT - 1)
    - item_type: preproc_def
      name: SUFFIX_GROUP_MARKER
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: (((sa_sint_t)1) << (SUFFIX_GROUP_BIT - 1))
    - item_type: preproc_def
      name: LIBSAIS_LOCAL_BUFFER_SIZE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: (2000)
    - item_type: preproc_def
      name: LIBSAIS_PER_THREAD_CACHE_SIZE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: (24576)
    - item_type: preproc_def
      name: LIBSAIS_FLAGS_NONE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: (0)
    - item_type: preproc_def
      name: LIBSAIS_FLAGS_BWT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: (1)
    - item_type: preproc_def
      name: LIBSAIS_FLAGS_GSA
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: (2)
    - item_type: preproc_def
      name: RESTRICT
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: __restrict__
    - item_type: preproc_def
      name: RESTRICT
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type_or_value: __restrict
    structs:
    - fields:
      - name: symbol
        type: sa_sint_t
      - name: index
        type: sa_sint_t
      item_type: struct
      name: LIBSAIS_THREAD_CACHE
      pos:
        line_end: 65
        line_start: 62
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
    - fields:
      - name: '* buckets'
        type: sa_sint_t
      - name: '* thread_state'
        type: LIBSAIS_THREAD_STATE
      - name: threads
        type: fast_sint_t
      item_type: struct
      name: LIBSAIS_CONTEXT
      pos:
        line_end: 86
        line_start: 82
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
    - fields:
      - name: '* bucket2'
        type: sa_uint_t
      - name: '* fastbits'
        type: uint16_t
      - name: '* buckets'
        type: sa_uint_t
      - name: threads
        type: fast_sint_t
      item_type: struct
      name: LIBSAIS_UNBWT_CONTEXT
      pos:
        line_end: 93
        line_start: 88
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
    typedefs:
    - item_type: typedef
      name: sa_sint_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type: int32_t
    - item_type: typedef
      name: sa_uint_t
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type: uint32_t
    - item_type: typedef
      name: fast_sint_t
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type: ptrdiff_t
    - item_type: typedef
      name: fast_uint_t
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
      type: size_t
    union:
    - fields:
      - name: state
        type: "struct {\n    fast_sint_t position;\n    fast_sint_t count;\n\n    fast_sint_t
          m;\n    fast_sint_t last_lms_suffix;\n\n    sa_sint_t* buckets;\n    LIBSAIS_THREAD_CACHE*
          cache;\n  }"
      - name: padding[64]
        type: uint8_t
      item_type: union
      name: LIBSAIS_THREAD_STATE
      pos:
        line_end: 80
        line_start: 67
        source_file: /src/sentencepiece/third_party/libsais/libsais.c
- function_names: []
  source_file: /src/sentencepiece/third_party/libsais/libsais.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LIBSAIS_H
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/sentencepiece/third_party/libsais/libsais.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LIBSAIS_VERSION_MAJOR
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/sentencepiece/third_party/libsais/libsais.h
      type_or_value: '2'
    - item_type: preproc_def
      name: LIBSAIS_VERSION_MINOR
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/sentencepiece/third_party/libsais/libsais.h
      type_or_value: '10'
    - item_type: preproc_def
      name: LIBSAIS_VERSION_PATCH
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/sentencepiece/third_party/libsais/libsais.h
      type_or_value: '4'
    - item_type: preproc_def
      name: LIBSAIS_VERSION_STRING
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/sentencepiece/third_party/libsais/libsais.h
      type_or_value: '"2.10.4"'
    - item_type: preproc_def
      name: LIBSAIS_API
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/sentencepiece/third_party/libsais/libsais.h
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: LIBSAIS_API
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/sentencepiece/third_party/libsais/libsais.h
      type_or_value: __declspec(dllimport)
    structs: []
    typedefs: []
    union: []
