code: def test_extend_matrix(self, weak_labels):
      with pytest.raises(
          ValueError,
          match="Embeddings are not optional the first time a matrix is extended.",
      ):
          weak_labels.extend_matrix([1.0, 0.5, 0.5])
  
      weak_labels.extend_matrix(
          [1.0, 0.5, 0.5],
          np.array([[0.1, 0.1], [0.1, 0.11], [0.11, 0.1]]),
      )
  
      np.testing.assert_equal(
          weak_labels.matrix(),
          np.array([[0, -1, -1], [-1, 1, -1], [-1, 1, -1]]),
      )
  
      weak_labels.extend_matrix([1.0, 1.0, 1.0])
  
      np.testing.assert_equal(
          weak_labels.matrix(),
          np.array([[0, -1, -1], [-1, 1, -1], [-1, -1, -1]]),
      )
  
imports: import sys
  from typing import Callable, List, Optional, Union
  import numpy
  import pandas
  import pytest
  from argilla.client.models import TextClassificationRecord
  from argilla.client.sdk.text_classification.models import CreationTextClassificationRecord, TextClassificationBulkData
  from argilla.labeling.text_classification import WeakLabels, WeakMultiLabels
  from argilla.labeling.text_classification.rule import Rule
  from argilla.labeling.text_classification.weak_labels import DuplicatedRuleNameError, MissingLabelError, MultiLabelError, NoRecordsFoundError, NoRulesFoundError, WeakLabelsBase
  from argilla.server.commons.models import TaskType
  from pandas.testing import assert_frame_equal
  from tests.integration.helpers import SecuredClient
label_desc: Use image node_id 9 for calling the TestWeakLabels obj's underlying member method code with example usage: obj.test_extend_matrix(weak_labels) without return types