test_class.file: singa-core/src/test/java/bio/singa/core/utility/PairTest.java
test_class.identifier: PairTest
test_case.body: @Test
      void shouldGenerateCorrectHashes() {
          Pair<Double> p1 = new Pair<>(11.45, 17.09);
          Pair<Double> p2 = new Pair<>(17.09, 11.45);
          CommutablePair<String> p3 = new CommutablePair<>("Lobster", "Pineapple");
          CommutablePair<String> p4 = new CommutablePair<>("Pineapple", "Lobster");
          assertNotEquals(p1.hashCode(), p2.hashCode());
          assertEquals(p3.hashCode(), p4.hashCode());
      }
test_case.class_method_signature: PairTest.shouldGenerateCorrectHashes()
test_case.full_signature: @Test void shouldGenerateCorrectHashes()
test_case.identifier: shouldGenerateCorrectHashes
test_case.invocations: assertNotEquals hashCode hashCode assertEquals hashCode hashCode
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void shouldGenerateCorrectHashes()
focal_class.declarator: first
focal_class.modifier: private final
focal_class.original_string: private final ValueType first;
focal_class.type: ValueType
focal_class.var_name: first
focal_class.declarator: second
focal_class.modifier: private final
focal_class.original_string: private final ValueType second;
focal_class.type: ValueType
focal_class.var_name: second
focal_class.file: singa-core/src/main/java/bio/singa/core/utility/Pair.java
focal_class.identifier: Pair
focal_class.class_method_signature: Pair.Pair(ValueType first, ValueType second)
focal_class.full_signature: public  Pair(ValueType first, ValueType second)
focal_class.identifier: Pair
focal_class.modifiers: public
focal_class.parameters: (ValueType first, ValueType second)
focal_class.signature:  Pair(ValueType first, ValueType second)
focal_class.class_method_signature: Pair.getFirst()
focal_class.full_signature: public ValueType getFirst()
focal_class.identifier: getFirst
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ValueType
focal_class.signature: ValueType getFirst()
focal_class.class_method_signature: Pair.getSecond()
focal_class.full_signature: public ValueType getSecond()
focal_class.identifier: getSecond
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ValueType
focal_class.signature: ValueType getSecond()
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_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_method.body: @Override
      public int hashCode() {
          int result = first != null ? first.hashCode() : 0;
          result = 31 * result + (second != null ? second.hashCode() : 0);
          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()