test_class.file: domain/src/test/java/org/m4m/domain/PairTest.java
test_class.identifier: PairTest
test_case.body: @Test
      public void pairWithLeftNullAreEqual() {
          Pair<Command, Command> pair1 = new Pair<Command, Command>(null, Command.HasData);
          Pair<Command, Command> pair2 = new Pair<Command, Command>(null, Command.HasData);
  
          assertEquals(pair1, pair2);
          assertEquals(pair1.hashCode(), pair2.hashCode());
      }
test_case.class_method_signature: PairTest.pairWithLeftNullAreEqual()
test_case.full_signature: @Test public void pairWithLeftNullAreEqual()
test_case.identifier: pairWithLeftNullAreEqual
test_case.invocations: assertEquals assertEquals hashCode hashCode
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void pairWithLeftNullAreEqual()
focal_class.declarator: left
focal_class.modifier: public
focal_class.original_string: public T left;
focal_class.type: T
focal_class.var_name: left
focal_class.declarator: right
focal_class.modifier: public
focal_class.original_string: public U right;
focal_class.type: U
focal_class.var_name: right
focal_class.file: domain/src/main/java/org/m4m/domain/Pair.java
focal_class.identifier: Pair
focal_class.class_method_signature: Pair.Pair(T left, U right)
focal_class.full_signature: public  Pair(T left, U right)
focal_class.identifier: Pair
focal_class.modifiers: public
focal_class.parameters: (T left, U right)
focal_class.signature:  Pair(T left, U right)
focal_class.class_method_signature: Pair.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_class.class_method_signature: Pair.equals(Object o)
focal_class.full_signature: @Override public boolean equals(Object o)
focal_class.identifier: equals
focal_class.modifiers: @Override public
focal_class.parameters: (Object o)
focal_class.return: boolean
focal_class.signature: boolean equals(Object o)
focal_class.class_method_signature: Pair.hashCode()
focal_class.full_signature: @Override public int hashCode()
focal_class.identifier: hashCode
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int hashCode()
focal_method.body: @Override
      public int hashCode() {
          int result = 0;
          if (left != null) result += left.hashCode();
          if (right != null) result = 31 * result + right.hashCode();
          return result;
      }
focal_method.class_method_signature: Pair.hashCode()
focal_method.full_signature: @Override public int hashCode()
focal_method.identifier: hashCode
focal_method.invocations: hashCode hashCode
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: int
focal_method.signature: int hashCode()