@@ -20,7 +20,7 @@ public void TfLiteVersion()
2020 }
2121
2222 [ TestMethod ]
23- public void SmokeTest ( )
23+ public unsafe void SmokeTest ( )
2424 {
2525 var model = c_api_lite . TfLiteModelCreateFromFile ( "Lite/testdata/add.bin" ) ;
2626 var options = c_api_lite . TfLiteInterpreterOptionsCreate ( ) ;
@@ -52,7 +52,36 @@ public void SmokeTest()
5252 Assert . AreEqual ( 0 , input_params . zero_point ) ;
5353
5454 var input = new [ ] { 1f , 3f } ;
55- // c_api_lite.TfLiteTensorCopyFromBuffer(input_tensor, input, 2 * sizeof(float));
55+ fixed ( float * addr = & input [ 0 ] )
56+ {
57+ Assert . AreEqual ( TfLiteStatus . kTfLiteOk ,
58+ c_api_lite . TfLiteTensorCopyFromBuffer ( input_tensor , new IntPtr ( addr ) , 2 * sizeof ( float ) ) ) ;
59+ }
60+
61+ Assert . AreEqual ( TfLiteStatus . kTfLiteOk , c_api_lite . TfLiteInterpreterInvoke ( interpreter ) ) ;
62+
63+ var output_tensor = c_api_lite . TfLiteInterpreterGetOutputTensor ( interpreter , 0 ) ;
64+ Assert . AreEqual ( TF_DataType . TF_FLOAT , c_api_lite . TfLiteTensorType ( output_tensor ) ) ;
65+ Assert . AreEqual ( 1 , c_api_lite . TfLiteTensorNumDims ( output_tensor ) ) ;
66+ Assert . AreEqual ( 2 , c_api_lite . TfLiteTensorDim ( output_tensor , 0 ) ) ;
67+ Assert . AreEqual ( sizeof ( float ) * 2 , c_api_lite . TfLiteTensorByteSize ( output_tensor ) ) ;
68+ Assert . IsNotNull ( c_api_lite . TfLiteTensorData ( output_tensor ) ) ;
69+ Assert . AreEqual ( "output" , c_api_lite . StringPiece ( c_api_lite . TfLiteTensorName ( output_tensor ) ) ) ;
70+
71+ var output_params = c_api_lite . TfLiteTensorQuantizationParams ( output_tensor ) ;
72+ Assert . AreEqual ( 0f , output_params . scale ) ;
73+ Assert . AreEqual ( 0 , output_params . zero_point ) ;
74+
75+ var output = new float [ 2 ] ;
76+ fixed ( float * addr = & output [ 0 ] )
77+ {
78+ Assert . AreEqual ( TfLiteStatus . kTfLiteOk ,
79+ c_api_lite . TfLiteTensorCopyToBuffer ( output_tensor , new IntPtr ( addr ) , 2 * sizeof ( float ) ) ) ;
80+ }
81+ Assert . AreEqual ( 3f , output [ 0 ] ) ;
82+ Assert . AreEqual ( 9f , output [ 1 ] ) ;
83+
84+ c_api_lite . TfLiteInterpreterDelete ( interpreter . DangerousGetHandle ( ) ) ;
5685 }
5786 }
5887}
0 commit comments