@@ -341,6 +341,72 @@ const Model* BuildModelWithOfflinePlanning(int number_of_tensors,
341341 node_conn[0 ].input , node_conn[num_conns - 1 ].output , num_subgraph_inputs);
342342}
343343
344+ const Model* BuildModelWithUnusedInputs () {
345+ using flatbuffers::Offset;
346+ flatbuffers::FlatBufferBuilder* builder = BuilderInstance ();
347+
348+ constexpr size_t buffers_size = 1 ;
349+ const Offset<Buffer> buffers[buffers_size] = {CreateBuffer (*builder)};
350+ constexpr size_t tensor_shape_size = 2 ;
351+ const int32_t tensor_shape[tensor_shape_size] = {1 , 64 };
352+ constexpr size_t tensors_size = 4 ;
353+ const Offset<Tensor> tensors[tensors_size] = {
354+ CreateTensor (*builder,
355+ builder->CreateVector (tensor_shape, tensor_shape_size),
356+ TensorType_INT8, 0 ,
357+ builder->CreateString (" test_input_tensor" ), 0 , false ),
358+ CreateTensor (*builder,
359+ builder->CreateVector (tensor_shape, tensor_shape_size),
360+ TensorType_INT8, 0 ,
361+ builder->CreateString (" test_unused_input_tensor" ), 0 , false ),
362+ CreateTensor (*builder,
363+ builder->CreateVector (tensor_shape, tensor_shape_size),
364+ TensorType_INT8, 0 ,
365+ builder->CreateString (" test_output_tensor" ), 0 , false ),
366+ CreateTensor (*builder,
367+ builder->CreateVector (tensor_shape, tensor_shape_size),
368+ TensorType_INT8, 0 ,
369+ builder->CreateString (" test_unused_tensor" ), 0 , false ),
370+ };
371+ constexpr size_t inputs_size = 2 ;
372+ const int32_t inputs[inputs_size] = {0 , 1 };
373+ constexpr size_t outputs_size = 1 ;
374+ const int32_t outputs[outputs_size] = {2 };
375+ constexpr size_t operator_inputs_size = 1 ;
376+ const int32_t operator_inputs[operator_inputs_size] = {0 };
377+ constexpr size_t operator_outputs_size = 1 ;
378+ const int32_t operator_outputs[operator_outputs_size] = {2 };
379+ constexpr size_t operators_size = 1 ;
380+ const Offset<Operator> operators[operators_size] = {
381+ CreateOperator (
382+ *builder, 0 ,
383+ builder->CreateVector (operator_inputs, operator_inputs_size),
384+ builder->CreateVector (operator_outputs, operator_outputs_size),
385+ BuiltinOptions_NONE),
386+ };
387+ constexpr size_t subgraphs_size = 1 ;
388+ const Offset<SubGraph> subgraphs[subgraphs_size] = {
389+ CreateSubGraph (*builder, builder->CreateVector (tensors, tensors_size),
390+ builder->CreateVector (inputs, inputs_size),
391+ builder->CreateVector (outputs, outputs_size),
392+ builder->CreateVector (operators, operators_size),
393+ builder->CreateString (" test_subgraph" ))};
394+ constexpr size_t operator_codes_size = 1 ;
395+ const Offset<OperatorCode> operator_codes[operator_codes_size] = {
396+ CreateOperatorCodeDirect (*builder, /* deprecated_builtin_code=*/ 0 ,
397+ " mock_custom" ,
398+ /* version=*/ 0 , BuiltinOperator_CUSTOM)};
399+ const Offset<Model> model_offset = CreateModel (
400+ *builder, 0 , builder->CreateVector (operator_codes, operator_codes_size),
401+ builder->CreateVector (subgraphs, subgraphs_size),
402+ builder->CreateString (" test_model" ),
403+ builder->CreateVector (buffers, buffers_size));
404+ FinishModelBuffer (*builder, model_offset);
405+ void * model_pointer = builder->GetBufferPointer ();
406+ const Model* model = flatbuffers::GetRoot<Model>(model_pointer);
407+ return model;
408+ }
409+
344410const Model* BuildSimpleMockModel () {
345411 using flatbuffers::Offset;
346412 flatbuffers::FlatBufferBuilder* builder = BuilderInstance ();
@@ -953,6 +1019,13 @@ AllOpsResolver GetOpResolver() {
9531019 MultipleInputs::GetMutableRegistration ());
9541020 return op_resolver;
9551021}
1022+ const Model* GetModelWithUnusedInputs () {
1023+ static Model* model = nullptr ;
1024+ if (!model) {
1025+ model = const_cast <Model*>(BuildModelWithUnusedInputs ());
1026+ }
1027+ return model;
1028+ }
9561029
9571030const Model* GetSimpleMockModel () {
9581031 static Model* model = nullptr ;
0 commit comments