code: def test_filter_by_metadata(
      self,
      owner: User,
      test_dataset: FeedbackDataset,
      metadata_filters: Union[MetadataFilters, List[MetadataFilters]],
      expected_num_records: int,
  ) -> None:
      argilla.client.singleton.init(api_key=owner.api_key)
  
      ws = Workspace.create(name="test-workspace")
  
      remote_dataset = test_dataset.push_to_argilla(
          name="test-dataset", workspace=ws
      )
      for metadata in (
          {
              "terms-metadata": "a",
              "integer-metadata": 2,
              "float-metadata": 2.0,
          },
          {
              "terms-metadata": "a",
              "integer-metadata": 4,
              "float-metadata": 4.0,
          },
          {
              "terms-metadata": "c",
              "integer-metadata": 6,
              "float-metadata": 6.0,
          },
      ):
          remote_dataset.add_records(
              [
                  FeedbackRecord(
                      fields={"text": "text"}, metadata=metadata
                  )
                  for _ in range(50)
              ]
          )
  
      filtered_dataset = remote_dataset.filter_by(
          metadata_filters=metadata_filters
      )
      assert all(
          [
              isinstance(record, RemoteFeedbackRecord)
              for record in filtered_dataset.records
          ]
      )
      assert len(filtered_dataset.records) == expected_num_records
  
imports: from datetime import datetime
  from typing import List, Union
  from uuid import UUID
  import argilla.client.singleton
  import pytest
  from argilla import SortBy, TextField, TextQuestion
  from argilla.client.feedback.dataset.local.dataset import FeedbackDataset
  from argilla.client.feedback.schemas.enums import ResponseStatusFilter
  from argilla.client.feedback.schemas.metadata import FloatMetadataFilter, FloatMetadataProperty, IntegerMetadataFilter, IntegerMetadataProperty, MetadataFilters, TermsMetadataFilter, TermsMetadataProperty
  from argilla.client.feedback.schemas.records import FeedbackRecord
  from argilla.client.feedback.schemas.remote.records import RemoteFeedbackRecord
  from argilla.client.feedback.schemas.types import AllowedFieldTypes, AllowedQuestionTypes
  from argilla.client.sdk.users.models import UserRole
  from argilla.client.workspaces import Workspace
  from argilla.server.models import User
  from sqlalchemy.ext.asyncio import AsyncSession
  from tests.factories import DatasetFactory, RecordFactory, ResponseFactory, TextFieldFactory, TextQuestionFactory, UserFactory
label_desc: Use image node_id 1 for calling the TestFilteredRemoteFeedbackDataset obj's underlying member method code with example usage: obj.test_filter_by_metadata(owner, test_dataset, metadata_filters, expected_num_records) without return types