docstr: collection schema 1: [pk, float_vector]
  data file: .npy files
  Steps:
  1. create collection
  2. import data with duplicate npy files
  3. verify fail to import with errors
code: def test_duplicate_numpy_files(self, auto_id, dim, entities):
      """
      collection schema 1: [pk, float_vector]
      data file: .npy files
      Steps:
      1. create collection
      2. import data with duplicate npy files
      3. verify fail to import with errors
      """
      data_fields = [df.vec_field]
      if not auto_id:
          data_fields.append(df.pk_field)
      files = prepare_bulk_insert_numpy_files(
          minio_endpoint=self.minio_endpoint,
          bucket_name=self.bucket_name,
          rows=entities,
          dim=dim,
          data_fields=data_fields,
      )
      files += files
      self._connect()
      c_name = cf.gen_unique_str("bulk_insert")
      fields = [
          cf.gen_int64_field(name=df.pk_field, is_primary=True),
          cf.gen_float_vec_field(name=df.vec_field, dim=dim),
      ]
      schema = cf.gen_collection_schema(fields=fields, auto_id=auto_id)
      self.collection_wrap.init_collection(c_name, schema=schema)
      # import data
      t0 = time.time()
      task_id, _ = self.utility_wrap.do_bulk_insert(
          collection_name=c_name, files=files
      )
      logging.info(f"bulk insert task ids:{task_id}")
      (
          success,
          states,
      ) = self.utility_wrap.wait_for_bulk_insert_tasks_completed(
          task_ids=[task_id], timeout=90
      )
      tt = time.time() - t0
      log.info(f"bulk insert state:{success} in {tt}")
      assert not success
      failed_reason = "duplicate file"
      for state in states.values():
          assert state.state_name in ["Failed", "Failed and cleaned"]
          assert failed_reason in state.infos.get("failed_reason", "")
      assert self.collection_wrap.num_entities == 0
  
imports: import logging
  import time
  import pytest
  import random
  import numpy
  from pathlib import Path
  from base.client_base import TestcaseBase
  from common import common_func
  from common import common_type
  from common.milvus_sys import MilvusSys
  from common.common_type import CaseLabel, CheckTasks
  from utils.util_k8s import get_pod_ip_name_pairs, get_milvus_instance_name, get_milvus_deploy_tool
  from utils.util_log import test_log
  from common.bulk_insert_data import prepare_bulk_insert_json_files, prepare_bulk_insert_numpy_files, DataField, DataErrorType
label_desc: Use image node_id 16 for calling the TestBulkInsertInvalidParams obj's underlying member method code with example usage: obj.test_duplicate_numpy_files(auto_id, dim, entities) without return types