#include <nnstreamer-tizen-internal.h>
#include <nnstreamer.h>
#include <nnstreamer_internal.h>
+#include <nnstreamer_plugin_api_util.h>
#if defined(__APPLE__)
#define SO_FILE_EXTENSION ".dylib"
ml_tensor_type_e type = ML_TENSOR_TYPE_UNKNOWN;
unsigned int count = 0;
char *name = NULL;
- int status;
+ int status, i;
const gchar *root_path = g_getenv ("MLAPI_SOURCE_ROOT_PATH");
gchar *test_model;
in_dim[1] = 224;
in_dim[2] = 224;
in_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ in_dim[i] = 0;
+
ml_tensors_info_set_count (in_info, 1);
ml_tensors_info_set_tensor_type (in_info, 0, ML_TENSOR_TYPE_UINT8);
ml_tensors_info_set_tensor_dimension (in_info, 0, in_dim);
out_dim[0] = 1001;
- out_dim[1] = 1;
- out_dim[2] = 1;
- out_dim[3] = 1;
+ for (i = 1; i < ML_TENSOR_RANK_LIMIT; i++)
+ out_dim[i] = 0;
+
ml_tensors_info_set_count (out_info, 1);
ml_tensors_info_set_tensor_type (out_info, 0, ML_TENSOR_TYPE_UINT8);
ml_tensors_info_set_tensor_dimension (out_info, 0, out_dim);
EXPECT_EQ (type, ML_TENSOR_TYPE_UINT8);
ml_tensors_info_get_tensor_dimension (in_res, 0, res_dim);
- EXPECT_TRUE (in_dim[0] == res_dim[0]);
- EXPECT_TRUE (in_dim[1] == res_dim[1]);
- EXPECT_TRUE (in_dim[2] == res_dim[2]);
- EXPECT_TRUE (in_dim[3] == res_dim[3]);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (in_dim, res_dim));
/* output tensor in filter */
status = ml_single_get_output_info (single, &out_res);
EXPECT_EQ (type, ML_TENSOR_TYPE_UINT8);
ml_tensors_info_get_tensor_dimension (out_res, 0, res_dim);
- EXPECT_TRUE (out_dim[0] == res_dim[0]);
- EXPECT_TRUE (out_dim[1] == res_dim[1]);
- EXPECT_TRUE (out_dim[2] == res_dim[2]);
- EXPECT_TRUE (out_dim[3] == res_dim[3]);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (out_dim, res_dim));
input = output = NULL;
ml_tensors_info_h in_info, out_info;
ml_tensors_data_h input, output;
ml_tensor_dimension in_dim, out_dim;
- int status;
+ int status, i;
unsigned long open_duration = 0, invoke_duration = 0, close_duration = 0;
gint64 start, end;
in_dim[1] = 224;
in_dim[2] = 224;
in_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ in_dim[i] = 0;
ml_tensors_info_set_count (in_info, 1);
ml_tensors_info_set_tensor_type (in_info, 0, ML_TENSOR_TYPE_UINT8);
ml_tensors_info_set_tensor_dimension (in_info, 0, in_dim);
out_dim[1] = 1;
out_dim[2] = 1;
out_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ out_dim[i] = 0;
ml_tensors_info_set_count (out_info, 1);
ml_tensors_info_set_tensor_type (out_info, 0, ML_TENSOR_TYPE_UINT8);
ml_tensors_info_set_tensor_dimension (out_info, 0, out_dim);
ml_tensor_type_e type = ML_TENSOR_TYPE_UNKNOWN;
unsigned int count = 0;
char *name = NULL;
- int status, max_score_index;
+ int status, max_score_index, i;
float score, max_score;
void *data_ptr;
size_t data_size;
in_dim[1] = 16022;
in_dim[2] = 1;
in_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ in_dim[i] = 0;
ml_tensors_info_set_count (in_info, 1);
ml_tensors_info_set_tensor_name (in_info, 0, "wav_data");
ml_tensors_info_set_tensor_type (in_info, 0, ML_TENSOR_TYPE_INT16);
out_dim[1] = 1;
out_dim[2] = 1;
out_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ out_dim[i] = 0;
ml_tensors_info_set_count (out_info, 1);
ml_tensors_info_set_tensor_name (out_info, 0, "labels_softmax");
ml_tensors_info_set_tensor_type (out_info, 0, ML_TENSOR_TYPE_FLOAT32);
EXPECT_EQ (type, ML_TENSOR_TYPE_INT16);
ml_tensors_info_get_tensor_dimension (in_res, 0, res_dim);
- EXPECT_TRUE (in_dim[0] == res_dim[0]);
- EXPECT_TRUE (in_dim[1] == res_dim[1]);
- EXPECT_TRUE (in_dim[2] == res_dim[2]);
- EXPECT_TRUE (in_dim[3] == res_dim[3]);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (in_dim, res_dim));
/* output tensor in filter */
status = ml_single_get_output_info (single, &out_res);
EXPECT_EQ (type, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_get_tensor_dimension (out_res, 0, res_dim);
- EXPECT_TRUE (out_dim[0] == res_dim[0]);
- EXPECT_TRUE (out_dim[1] == res_dim[1]);
- EXPECT_TRUE (out_dim[2] == res_dim[2]);
- EXPECT_TRUE (out_dim[3] == res_dim[3]);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (out_dim, res_dim));
input = output = NULL;
ml_tensor_dimension in_dim, out_dim;
ml_tensor_type_e type = ML_TENSOR_TYPE_UNKNOWN;
unsigned int count = 0;
- int status;
+ int status, i;
const gchar *root_path = g_getenv ("MLAPI_SOURCE_ROOT_PATH");
gchar *test_model;
in_dim[1] = 1;
in_dim[2] = 1;
in_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ in_dim[i] = 0;
ml_tensors_info_set_count (in_info, 1);
ml_tensors_info_set_tensor_type (in_info, 0, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_set_tensor_dimension (in_info, 0, in_dim);
EXPECT_EQ (type, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_get_tensor_dimension (out_info, 0, out_dim);
- EXPECT_EQ (out_dim[0], 5U);
- EXPECT_EQ (out_dim[1], 1U);
- EXPECT_EQ (out_dim[2], 1U);
- EXPECT_EQ (out_dim[3], 1U);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (out_dim, in_dim));
status = ml_single_close (single);
EXPECT_EQ (status, ML_ERROR_NONE);
in_dim[1] = 224;
in_dim[2] = 224;
in_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ in_dim[i] = 0;
ml_tensors_info_set_count (in_info, 1);
ml_tensors_info_set_tensor_type (in_info, 0, ML_TENSOR_TYPE_UINT8);
ml_tensors_info_set_tensor_dimension (in_info, 0, in_dim);
ml_tensor_dimension in_dim, out_dim, res_dim;
ml_tensor_type_e type = ML_TENSOR_TYPE_UNKNOWN;
unsigned int count = 0;
- int status, tensor_size;
+ int status, tensor_size, i;
size_t data_size;
float *data;
in_dim[1] = 1;
in_dim[2] = 1;
in_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ in_dim[i] = 0;
ml_tensors_info_set_count (in_info, 1);
ml_tensors_info_set_tensor_type (in_info, 0, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_set_tensor_dimension (in_info, 0, in_dim);
out_dim[1] = 1;
out_dim[2] = 1;
out_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ out_dim[i] = 0;
ml_tensors_info_set_count (out_info, 1);
ml_tensors_info_set_tensor_type (out_info, 0, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_set_tensor_dimension (out_info, 0, out_dim);
*/
ml_tensors_info_get_tensor_dimension (in_res, 0, res_dim);
- EXPECT_FALSE (in_dim[0] == res_dim[0]);
- EXPECT_TRUE (in_dim[1] == res_dim[1]);
- EXPECT_TRUE (in_dim[2] == res_dim[2]);
- EXPECT_TRUE (in_dim[3] == res_dim[3]);
+ EXPECT_FALSE (gst_tensor_dimension_is_equal (in_dim, res_dim));
/** set the same original input dimension */
status = ml_single_set_input_info (single, in_info);
EXPECT_EQ (type, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_get_tensor_dimension (in_res, 0, res_dim);
- EXPECT_TRUE (in_dim[0] == res_dim[0]);
- EXPECT_TRUE (in_dim[1] == res_dim[1]);
- EXPECT_TRUE (in_dim[2] == res_dim[2]);
- EXPECT_TRUE (in_dim[3] == res_dim[3]);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (in_dim, res_dim));
/* output tensor in filter */
status = ml_single_get_output_info (single, &out_res);
EXPECT_EQ (type, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_get_tensor_dimension (out_res, 0, res_dim);
- EXPECT_TRUE (out_dim[0] == res_dim[0]);
- EXPECT_TRUE (out_dim[1] == res_dim[1]);
- EXPECT_TRUE (out_dim[2] == res_dim[2]);
- EXPECT_TRUE (out_dim[3] == res_dim[3]);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (out_dim, res_dim));
input = output = NULL;
ml_tensors_info_h in_info, out_info;
ml_tensors_info_h in_res = nullptr, out_res = nullptr;
ml_tensors_data_h input, output;
- ml_tensor_dimension in_dim = { 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
- ml_tensor_dimension out_dim = { 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
+ ml_tensor_dimension in_dim, out_dim;
ml_tensor_dimension res_dim;
ml_tensor_type_e type = ML_TENSOR_TYPE_UNKNOWN;
unsigned int count = 0;
- int status, i, tensor_size = 4 * 4 * 4 * 4 * 4;
+ int i, status, tensor_size = 4 * 4 * 4 * 4 * 4;
size_t data_size;
float *input0, *input1, *output0;
ml_tensors_info_create_extended (&in_info);
ml_tensors_info_create_extended (&out_info);
+ in_dim[0] = in_dim[1] = in_dim[2] = in_dim[3] = in_dim[4] = 4;
+ for (i = 5; i < ML_TENSOR_RANK_LIMIT; i++)
+ in_dim[i] = 0;
+
+ out_dim[0] = out_dim[1] = out_dim[2] = out_dim[3] = out_dim[4] = 4;
+ for (i = 5; i < ML_TENSOR_RANK_LIMIT; i++)
+ out_dim[i] = 0;
+
ml_tensors_info_set_count (in_info, 2);
ml_tensors_info_set_tensor_type (in_info, 0, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_set_tensor_dimension (in_info, 0, in_dim);
EXPECT_EQ (status, ML_ERROR_NONE);
ml_tensors_info_get_tensor_dimension (in_res, 0, res_dim);
- for (i = 0; i < ML_TENSOR_RANK_LIMIT; i++)
- EXPECT_EQ (in_dim[i], res_dim[i]);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (in_dim, res_dim));
status = ml_single_set_input_info (single, in_info);
EXPECT_TRUE (status == ML_ERROR_NOT_SUPPORTED || status == ML_ERROR_NONE);
EXPECT_EQ (type, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_get_tensor_dimension (in_res, 0, res_dim);
- for (i = 0; i < ML_TENSOR_RANK_LIMIT; i++)
- EXPECT_EQ (in_dim[i], res_dim[i]);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (in_dim, res_dim));
/* output tensor in filter */
status = ml_single_get_output_info (single, &out_res);
EXPECT_EQ (type, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_get_tensor_dimension (out_res, 0, res_dim);
- for (i = 0; i < ML_TENSOR_RANK_LIMIT; i++)
- EXPECT_EQ (out_dim[i], res_dim[i]);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (out_dim, res_dim));
input = output = NULL;
{
ml_single_h single;
ml_tensors_info_h in_info, out_info;
- ml_tensor_dimension in_dim, out_dim;
+ ml_tensor_dimension in_dim, out_dim, res_dim;
ml_tensors_data_h input, output;
ml_tensor_type_e type = ML_TENSOR_TYPE_UNKNOWN;
- int status;
+ int status, i;
unsigned int count = 0;
char *name = NULL;
char *prop_value = NULL;
goto skip_test;
}
+ in_dim[0] = 3;
+ in_dim[1] = 224;
+ in_dim[2] = 224;
+ in_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ in_dim[i] = 0;
+
+ out_dim[0] = 1001;
+ out_dim[1] = 1;
+ out_dim[2] = 1;
+ out_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ out_dim[i] = 0;
+
/* failed to set dimension */
status = ml_single_set_property (single, "input", "3:4:4:1");
EXPECT_NE (status, ML_ERROR_NONE);
EXPECT_EQ (status, ML_ERROR_NONE);
EXPECT_EQ (type, ML_TENSOR_TYPE_UINT8);
- ml_tensors_info_get_tensor_dimension (in_info, 0, in_dim);
- EXPECT_EQ (in_dim[0], 3U);
- EXPECT_EQ (in_dim[1], 224U);
- EXPECT_EQ (in_dim[2], 224U);
- EXPECT_EQ (in_dim[3], 1U);
+ ml_tensors_info_get_tensor_dimension (in_info, 0, res_dim);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (in_dim, res_dim));
/* output tensor in filter */
status = ml_single_get_output_info (single, &out_info);
EXPECT_EQ (status, ML_ERROR_NONE);
EXPECT_EQ (type, ML_TENSOR_TYPE_UINT8);
- ml_tensors_info_get_tensor_dimension (out_info, 0, out_dim);
- EXPECT_EQ (out_dim[0], 1001U);
- EXPECT_EQ (out_dim[1], 1U);
- EXPECT_EQ (out_dim[2], 1U);
- EXPECT_EQ (out_dim[3], 1U);
+ ml_tensors_info_get_tensor_dimension (out_info, 0, res_dim);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (out_dim, res_dim));
/* invoke */
input = output = NULL;
ml_single_h single;
ml_tensors_info_h in_info, out_info;
ml_tensors_data_h input, output;
- ml_tensor_dimension in_dim, out_dim;
+ ml_tensor_dimension in_dim, out_dim, res_dim;
char *prop_value;
- int status;
+ int status, i;
size_t data_size;
float *data;
goto skip_test;
}
+ in_dim[0] = out_dim[0] = 5;
+ in_dim[1] = out_dim[1] = 1;
+ in_dim[2] = out_dim[2] = 1;
+ in_dim[3] = out_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ in_dim[i] = out_dim[i] = 0;
+
status = ml_single_set_property (single, "input", "5:1:1:1");
EXPECT_EQ (status, ML_ERROR_NONE);
status = ml_single_get_input_info (single, &in_info);
EXPECT_EQ (status, ML_ERROR_NONE);
- ml_tensors_info_get_tensor_dimension (in_info, 0, in_dim);
- EXPECT_EQ (in_dim[0], 5U);
- EXPECT_EQ (in_dim[1], 1U);
- EXPECT_EQ (in_dim[2], 1U);
- EXPECT_EQ (in_dim[3], 1U);
+ ml_tensors_info_get_tensor_dimension (in_info, 0, res_dim);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (in_dim, res_dim));
status = ml_single_get_output_info (single, &out_info);
EXPECT_EQ (status, ML_ERROR_NONE);
- ml_tensors_info_get_tensor_dimension (out_info, 0, out_dim);
- EXPECT_EQ (out_dim[0], 5U);
- EXPECT_EQ (out_dim[1], 1U);
- EXPECT_EQ (out_dim[2], 1U);
- EXPECT_EQ (out_dim[3], 1U);
+ ml_tensors_info_get_tensor_dimension (out_info, 0, res_dim);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (out_dim, res_dim));
/* invoke */
input = output = NULL;
EXPECT_STREQ (prop_value, "5");
g_free (prop_value);
- status = ml_single_set_property (single, "output", "5:1:1:1");
- EXPECT_EQ (status, ML_ERROR_NONE);
-
- status = ml_single_get_property (single, "output", &prop_value);
- EXPECT_EQ (status, ML_ERROR_NONE);
-
- EXPECT_STREQ (prop_value, "5:1:1:1");
- g_free (prop_value);
-
- status = ml_single_set_property (single, "output", "5:1:1");
- EXPECT_EQ (status, ML_ERROR_NONE);
-
- status = ml_single_get_property (single, "output", &prop_value);
- EXPECT_EQ (status, ML_ERROR_NONE);
-
- EXPECT_STREQ (prop_value, "5:1:1");
- g_free (prop_value);
-
- status = ml_single_set_property (single, "output", "5:1");
- EXPECT_EQ (status, ML_ERROR_NONE);
-
- status = ml_single_get_property (single, "output", &prop_value);
- EXPECT_EQ (status, ML_ERROR_NONE);
-
- EXPECT_STREQ (prop_value, "5:1");
- g_free (prop_value);
-
status = ml_single_set_property (single, "output", "5");
EXPECT_EQ (status, ML_ERROR_NONE);
ml_tensor_type_e type = ML_TENSOR_TYPE_UNKNOWN;
unsigned int count = 0;
char *name = NULL;
- int status;
+ int status, i;
const gchar *root_path = g_getenv ("MLAPI_SOURCE_ROOT_PATH");
gchar *test_model;
in_dim[1] = 1;
in_dim[2] = 1;
in_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ in_dim[i] = 0;
ml_tensors_info_set_count (in_info, 1);
ml_tensors_info_set_tensor_type (in_info, 0, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_set_tensor_dimension (in_info, 0, in_dim);
out_dim[1] = 1;
out_dim[2] = 1;
out_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ out_dim[i] = 0;
ml_tensors_info_set_count (out_info, 1);
ml_tensors_info_set_tensor_type (out_info, 0, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_set_tensor_dimension (out_info, 0, out_dim);
EXPECT_EQ (type, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_get_tensor_dimension (in_res, 0, res_dim);
- EXPECT_TRUE (in_dim[0] == res_dim[0]);
- EXPECT_TRUE (in_dim[1] == res_dim[1]);
- EXPECT_TRUE (in_dim[2] == res_dim[2]);
- EXPECT_TRUE (in_dim[3] == res_dim[3]);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (in_dim, res_dim));
/* output tensor in filter */
status = ml_single_get_output_info (single, &out_res);
EXPECT_EQ (type, ML_TENSOR_TYPE_FLOAT32);
ml_tensors_info_get_tensor_dimension (out_res, 0, res_dim);
- EXPECT_TRUE (out_dim[0] == res_dim[0]);
- EXPECT_TRUE (out_dim[1] == res_dim[1]);
- EXPECT_TRUE (out_dim[2] == res_dim[2]);
- EXPECT_TRUE (out_dim[3] == res_dim[3]);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (out_dim, res_dim));
input = output = NULL;
TEST (nnstreamer_capi_singleshot, invoke_dynamic_success_01_p)
{
ml_single_h single;
- int status;
+ int status, i;
ml_tensors_info_h in_info, out_info;
ml_tensors_data_h input, output;
size_t data_size;
unsigned int tmp_count;
ml_tensor_type_e tmp_type = ML_TENSOR_TYPE_UNKNOWN;
- ml_tensor_dimension tmp_dim;
+ ml_tensor_dimension in_dim, out_dim, tmp_dim;
const gchar *root_path = g_getenv ("MLAPI_SOURCE_ROOT_PATH");
gchar *test_model;
ml_tensors_info_get_tensor_type (in_info, 0, &tmp_type);
ml_tensors_info_get_tensor_dimension (in_info, 0, tmp_dim);
+ in_dim[0] = out_dim[0] = 1;
+ in_dim[1] = out_dim[1] = 1;
+ in_dim[2] = out_dim[2] = 1;
+ in_dim[3] = out_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ in_dim[i] = out_dim[i] = 0;
+
EXPECT_EQ (tmp_count, 1U);
EXPECT_EQ (tmp_type, ML_TENSOR_TYPE_FLOAT32);
- EXPECT_EQ (tmp_dim[0], 1U);
- EXPECT_EQ (tmp_dim[1], 1U);
- EXPECT_EQ (tmp_dim[2], 1U);
- EXPECT_EQ (tmp_dim[3], 1U);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (in_dim, tmp_dim));
status = ml_single_invoke_dynamic (single, input, in_info, &output, &out_info);
EXPECT_EQ (status, ML_ERROR_NONE);
EXPECT_EQ (tmp_count, 1U);
EXPECT_EQ (tmp_type, ML_TENSOR_TYPE_FLOAT32);
- EXPECT_EQ (tmp_dim[0], 1U);
- EXPECT_EQ (tmp_dim[1], 1U);
- EXPECT_EQ (tmp_dim[2], 1U);
- EXPECT_EQ (tmp_dim[3], 1U);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (out_dim, tmp_dim));
ml_tensors_data_destroy (output);
ml_tensors_data_destroy (input);
ml_tensors_info_destroy (out_info);
}
+ in_dim[0] = out_dim[0] = 5;
status = ml_single_set_property (single, "input", "5:1:1:1");
EXPECT_EQ (status, ML_ERROR_NONE);
EXPECT_EQ (tmp_count, 1U);
EXPECT_EQ (tmp_type, ML_TENSOR_TYPE_FLOAT32);
- EXPECT_EQ (tmp_dim[0], 5U);
- EXPECT_EQ (tmp_dim[1], 1U);
- EXPECT_EQ (tmp_dim[2], 1U);
- EXPECT_EQ (tmp_dim[3], 1U);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (in_dim, tmp_dim));
status = ml_single_invoke_dynamic (single, input, in_info, &output, &out_info);
EXPECT_EQ (status, ML_ERROR_NONE);
EXPECT_EQ (tmp_count, 1U);
EXPECT_EQ (tmp_type, ML_TENSOR_TYPE_FLOAT32);
- EXPECT_EQ (tmp_dim[0], 5U);
- EXPECT_EQ (tmp_dim[1], 1U);
- EXPECT_EQ (tmp_dim[2], 1U);
- EXPECT_EQ (tmp_dim[3], 1U);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (out_dim, tmp_dim));
status = ml_single_close (single);
EXPECT_EQ (status, ML_ERROR_NONE);
unsigned int tmp_count;
ml_tensor_type_e tmp_type = ML_TENSOR_TYPE_UNKNOWN;
- ml_tensor_dimension tmp_dim, in_dim;
+ ml_tensor_dimension tmp_dim, in_dim, out_dim;
const gchar *root_path = g_getenv ("MLAPI_SOURCE_ROOT_PATH");
gchar *test_model;
EXPECT_EQ (status, ML_ERROR_NONE);
{
+ int i;
float tmp_input[] = { 1.0 };
float *output_buf;
ml_tensors_info_get_tensor_type (in_info, 0, &tmp_type);
ml_tensors_info_get_tensor_dimension (in_info, 0, tmp_dim);
+ in_dim[0] = out_dim[0] = 1;
+ in_dim[1] = out_dim[1] = 1;
+ in_dim[2] = out_dim[2] = 1;
+ in_dim[3] = out_dim[3] = 1;
+ for (i = 4; i < ML_TENSOR_RANK_LIMIT; i++)
+ in_dim[i] = out_dim[i] = 0;
+
EXPECT_EQ (tmp_count, 1U);
EXPECT_EQ (tmp_type, ML_TENSOR_TYPE_FLOAT32);
- EXPECT_EQ (tmp_dim[0], 1U);
- EXPECT_EQ (tmp_dim[1], 1U);
- EXPECT_EQ (tmp_dim[2], 1U);
- EXPECT_EQ (tmp_dim[3], 1U);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (in_dim, tmp_dim));
status = ml_single_invoke_dynamic (single, input, in_info, &output, &out_info);
EXPECT_EQ (status, ML_ERROR_NONE);
EXPECT_EQ (tmp_count, 1U);
EXPECT_EQ (tmp_type, ML_TENSOR_TYPE_FLOAT32);
- EXPECT_EQ (tmp_dim[0], 1U);
- EXPECT_EQ (tmp_dim[1], 1U);
- EXPECT_EQ (tmp_dim[2], 1U);
- EXPECT_EQ (tmp_dim[3], 1U);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (out_dim, tmp_dim));
ml_tensors_data_destroy (output);
ml_tensors_data_destroy (input);
status = ml_single_get_input_info (single, &in_info);
EXPECT_EQ (status, ML_ERROR_NONE);
- in_dim[0] = 5;
- in_dim[1] = 1;
- in_dim[2] = 1;
- in_dim[3] = 1;
+ in_dim[0] = out_dim[0] = 5;
status = ml_tensors_info_set_tensor_dimension (in_info, 0, in_dim);
EXPECT_EQ (status, ML_ERROR_NONE);
EXPECT_EQ (tmp_count, 1U);
EXPECT_EQ (tmp_type, ML_TENSOR_TYPE_FLOAT32);
- EXPECT_EQ (tmp_dim[0], 5U);
- EXPECT_EQ (tmp_dim[1], 1U);
- EXPECT_EQ (tmp_dim[2], 1U);
- EXPECT_EQ (tmp_dim[3], 1U);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (in_dim, tmp_dim));
status = ml_single_invoke_dynamic (single, input, in_info, &output, &out_info);
EXPECT_EQ (status, ML_ERROR_NONE);
EXPECT_EQ (tmp_count, 1U);
EXPECT_EQ (tmp_type, ML_TENSOR_TYPE_FLOAT32);
- EXPECT_EQ (tmp_dim[0], 5U);
- EXPECT_EQ (tmp_dim[1], 1U);
- EXPECT_EQ (tmp_dim[2], 1U);
- EXPECT_EQ (tmp_dim[3], 1U);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (out_dim, tmp_dim));
status = ml_single_close (single);
EXPECT_EQ (status, ML_ERROR_NONE);
float *output_buf;
for (int i = 0; i < 32; i++) {
+ ml_tensor_dimension res_dim;
+ res_dim[0] = res_dim[1] = res_dim[2] = res_dim[3] = 1;
+ for (guint32 j = 4; j < ML_TENSOR_RANK_LIMIT; ++j)
+ res_dim[j] = 0;
status = ml_tensors_data_set_tensor_data (input, i, tmp_input, 1 * sizeof (float));
ml_tensors_info_get_tensor_type (in_info, i, &tmp_type);
ml_tensors_info_get_tensor_dimension (in_info, i, tmp_dim);
EXPECT_EQ (tmp_type, ML_TENSOR_TYPE_FLOAT32);
- EXPECT_EQ (tmp_dim[0], 1U);
- EXPECT_EQ (tmp_dim[1], 1U);
- EXPECT_EQ (tmp_dim[2], 1U);
- EXPECT_EQ (tmp_dim[3], 1U);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (tmp_dim, res_dim));
}
status = ml_single_invoke (single, input, &output);
EXPECT_EQ (status, ML_ERROR_NONE);
for (int i = 0; i < 32; i++) {
+ ml_tensor_dimension res_dim;
+ res_dim[0] = res_dim[1] = res_dim[2] = res_dim[3] = 1;
+ for (guint32 j = 4; j < ML_TENSOR_RANK_LIMIT; ++j)
+ res_dim[j] = 0;
ml_tensors_data_get_tensor_data (output, i, (void **) &output_buf, &data_size);
EXPECT_FLOAT_EQ (output_buf[0], 17.0f);
EXPECT_EQ (data_size, sizeof (float));
ml_tensors_info_get_tensor_dimension (out_info, i, tmp_dim);
EXPECT_EQ (tmp_type, ML_TENSOR_TYPE_FLOAT32);
- EXPECT_EQ (tmp_dim[0], 1U);
- EXPECT_EQ (tmp_dim[1], 1U);
- EXPECT_EQ (tmp_dim[2], 1U);
- EXPECT_EQ (tmp_dim[3], 1U);
+ EXPECT_TRUE (gst_tensor_dimension_is_equal (tmp_dim, res_dim));
}
ml_tensors_data_destroy (output);