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