Summary: @public Adds a special case for comparing Integer instances. Makes the tests more relevant too. Test Plan: - Added a new testmaster
parent
904ebb0154
commit
34aa9c2949
@ -0,0 +1,86 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2013- Facebook.
|
||||||
|
* All rights reserved.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package codetoanalyze.java.infer;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class HashMapExample {
|
||||||
|
|
||||||
|
public static void putIntegerTwiceThenGetTwice(
|
||||||
|
HashMap<Integer, Integer> hashMap
|
||||||
|
) {
|
||||||
|
Integer i32 = new Integer(32);
|
||||||
|
Integer i52 = new Integer(52);
|
||||||
|
|
||||||
|
hashMap.put(i32, i32);
|
||||||
|
hashMap.put(i52, i52);
|
||||||
|
|
||||||
|
Integer a = hashMap.get(i32);
|
||||||
|
Integer b = hashMap.get(i52);
|
||||||
|
|
||||||
|
a.intValue();
|
||||||
|
b.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void containsIntegerTwiceThenGetTwice(
|
||||||
|
HashMap<Integer, Integer> hashMap
|
||||||
|
) {
|
||||||
|
Integer i32 = new Integer(32);
|
||||||
|
Integer i52 = new Integer(52);
|
||||||
|
|
||||||
|
if (hashMap.containsKey(i32) && hashMap.containsKey(i52)) {
|
||||||
|
Integer a = hashMap.get(i32);
|
||||||
|
Integer b = hashMap.get(i52);
|
||||||
|
a.intValue();
|
||||||
|
b.intValue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getOneIntegerWithoutCheck() {
|
||||||
|
HashMap<Integer, Integer> hashMap = new HashMap<>();
|
||||||
|
Integer i32 = new Integer(32);
|
||||||
|
|
||||||
|
Integer a = hashMap.get(i32);
|
||||||
|
|
||||||
|
return a.intValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void getTwoIntegersWithOneCheck(
|
||||||
|
Integer i,
|
||||||
|
Integer j
|
||||||
|
) {
|
||||||
|
HashMap<Integer, Integer> hashMap = new HashMap<>();
|
||||||
|
|
||||||
|
if (hashMap.containsKey(i) && !i.equals(j)) {
|
||||||
|
Integer a = hashMap.get(i);
|
||||||
|
Integer b = hashMap.get(j);
|
||||||
|
|
||||||
|
a.intValue();
|
||||||
|
b.intValue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Integer getOrCreateInteger(
|
||||||
|
final HashMap<Integer, Integer> map,
|
||||||
|
final int id) {
|
||||||
|
Integer x = null;
|
||||||
|
if (map.containsKey(id)) {
|
||||||
|
x = map.get(id);
|
||||||
|
} else {
|
||||||
|
x = new Integer(0);
|
||||||
|
map.put(id, x);
|
||||||
|
}
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void getOrCreateIntegerThenDeref(
|
||||||
|
final HashMap<Integer, Integer> map) {
|
||||||
|
Integer x = getOrCreateInteger(map, 42);
|
||||||
|
// dereference x
|
||||||
|
x.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,82 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2013- Facebook.
|
|
||||||
* All rights reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package codetoanalyze.java.infer;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
public class HashMapModelTest {
|
|
||||||
|
|
||||||
public static int putIntegerTwiceThenGetTwice() {
|
|
||||||
HashMap<Integer, Integer> hashMap = new HashMap<>();
|
|
||||||
Integer i32 = new Integer(32);
|
|
||||||
Integer i52 = new Integer(52);
|
|
||||||
|
|
||||||
hashMap.put(i32, i32);
|
|
||||||
hashMap.put(i52, i52);
|
|
||||||
|
|
||||||
Integer a = hashMap.get(i32);
|
|
||||||
Integer b = hashMap.get(i52);
|
|
||||||
|
|
||||||
return a.intValue() * b.intValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int containsIntegerTwiceThenGetTwice(
|
|
||||||
HashMap<Integer, Integer> hashMap
|
|
||||||
) {
|
|
||||||
Integer i32 = new Integer(32);
|
|
||||||
Integer i52 = new Integer(52);
|
|
||||||
|
|
||||||
if (hashMap.containsKey(i32) && hashMap.containsKey(i52)) {
|
|
||||||
Integer a = hashMap.get(i32);
|
|
||||||
Integer b = hashMap.get(i52);
|
|
||||||
return a.intValue() * b.intValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getOneIntegerWithoutCheck(
|
|
||||||
HashMap<Integer, Integer> hashMap
|
|
||||||
) {
|
|
||||||
Integer i32 = new Integer(32);
|
|
||||||
|
|
||||||
Integer a = hashMap.get(i32);
|
|
||||||
|
|
||||||
return a.intValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getTwoIntegersWithOneCheck(
|
|
||||||
HashMap<Integer, Integer> hashMap
|
|
||||||
) {
|
|
||||||
Integer i32 = new Integer(32);
|
|
||||||
Integer i52 = new Integer(52);
|
|
||||||
|
|
||||||
if (hashMap.containsKey(i32)) {
|
|
||||||
Integer a = hashMap.get(i32);
|
|
||||||
Integer b = hashMap.get(i52);
|
|
||||||
|
|
||||||
return a.intValue() * b.intValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getTwoParameterIntegersWithOneCheck(
|
|
||||||
HashMap<Integer, Integer> hashMap,
|
|
||||||
Integer i32,
|
|
||||||
Integer i52
|
|
||||||
) {
|
|
||||||
if (hashMap.containsKey(i32)) {
|
|
||||||
Integer a = hashMap.get(i32);
|
|
||||||
Integer b = hashMap.get(i52);
|
|
||||||
|
|
||||||
return a.intValue() * b.intValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in new issue