code: def test_repeat_modification(
      self, sentence_attacked_text, entailment_attacked_text
  ):
      constraint = (
          textattack.constraints.pre_transformation.RepeatModification()
      )
      assert constraint._get_modifiable_indices(
          sentence_attacked_text
      ) == set(range(len(sentence_attacked_text.words)))
      assert constraint._get_modifiable_indices(
          entailment_attacked_text
      ) == set(range(len(entailment_attacked_text.words)))
      sentence_attacked_text.attack_attrs["modified_indices"] = {
          0,
          1,
          2,
          3,
      }
      assert constraint._get_modifiable_indices(
          sentence_attacked_text
      ) == (
          set(range(len(sentence_attacked_text.words))) - {0, 1, 2, 3}
      )
      entailment_attacked_text.attack_attrs["modified_indices"] = {
          1,
          3,
          11,
          17,
          23,
      }
      assert constraint._get_modifiable_indices(
          entailment_attacked_text
      ) == (
          set(range(len(entailment_attacked_text.words)))
          - {1, 3, 11, 17, 23}
      )
  
file_path: TextAttack/tests/test_constraints/test_pretransformation_constraints.py
imports: import collections
  import pytest
  import textattack
label_desc: Use image node_id 5 for calling the TestPretransformationConstraints obj's underlying member method code with example usage: obj.test_repeat_modification(sentence_attacked_text, entailment_attacked_text) without return types