/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
class BrokenEncapsulationTest {
public void testAddCount() {
InstrumentedHashSet<String> set = new InstrumentedHashSet<String>();
set.
addAll(Arrays.
asList("Snap",
"Crackle",
"Pop"));
if(3 == set.
addCount) System.
out.
println("Yeh fuck yeh"); else System.
out.
println(set.
addCount); //assertEquals(3, set.addCount);
}
public static class InstrumentedHashSet<E> extends HashSet<E> {
public int addCount = 0;
@Override
public boolean add(E a) {
addCount += 1;
return super.add(a);
};
@Override
public boolean addAll(Collection<? extends E> c) {
addCount += c.size();
return super.addAll(c);
}
}
}
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// your code goes here
BrokenEncapsulationTest a = new BrokenEncapsulationTest();
a.testAddCount();
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgogY2xhc3MgQnJva2VuRW5jYXBzdWxhdGlvblRlc3QgewoKICBwdWJsaWMgdm9pZCB0ZXN0QWRkQ291bnQoKSB7CiAgICBJbnN0cnVtZW50ZWRIYXNoU2V0PFN0cmluZz4gc2V0ID0gbmV3IEluc3RydW1lbnRlZEhhc2hTZXQ8U3RyaW5nPigpOwoKICAgIHNldC5hZGRBbGwoQXJyYXlzLmFzTGlzdCgiU25hcCIsICJDcmFja2xlIiwgIlBvcCIpKTsKCiAgICBpZigzID09IHNldC5hZGRDb3VudCkgU3lzdGVtLm91dC5wcmludGxuKCJZZWggZnVjayB5ZWgiKTsKICAgIGVsc2UgU3lzdGVtLm91dC5wcmludGxuKHNldC5hZGRDb3VudCk7CiAgICAvL2Fzc2VydEVxdWFscygzLCBzZXQuYWRkQ291bnQpOwogIH0KCiAgcHVibGljIHN0YXRpYyBjbGFzcyBJbnN0cnVtZW50ZWRIYXNoU2V0PEU+IGV4dGVuZHMgSGFzaFNldDxFPiB7CgogICAgcHVibGljIGludCBhZGRDb3VudCA9IDA7CgogICAgQE92ZXJyaWRlCiAgICBwdWJsaWMgYm9vbGVhbiBhZGQoRSBhKSB7CiAgICAgIGFkZENvdW50ICs9IDE7CiAgICAgIHJldHVybiBzdXBlci5hZGQoYSk7CiAgICB9OwoKICAgIEBPdmVycmlkZQogICAgcHVibGljIGJvb2xlYW4gYWRkQWxsKENvbGxlY3Rpb248PyBleHRlbmRzIEU+IGMpIHsKICAgICAgYWRkQ291bnQgKz0gYy5zaXplKCk7CiAgICAgIHJldHVybiBzdXBlci5hZGRBbGwoYyk7CiAgICB9CiAgfQp9CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQlCcm9rZW5FbmNhcHN1bGF0aW9uVGVzdCBhID0gbmV3IEJyb2tlbkVuY2Fwc3VsYXRpb25UZXN0KCk7CgkJYS50ZXN0QWRkQ291bnQoKTsKCX0KfQ==