### Question:
MapRecord implements MutableRecord { @Override public boolean removeValue(String field, Value value) { if (!records.containsKey(field) || !records.get(field).contains(value)) { return false; } records.get(field).remove(value); return true; } MapRecord(); @Override List<Value> getValues(String field); @Override MutableRecord makeMutable(); @Override boolean isMutable(); @Override boolean addField(String field, List<Value> values); @Override boolean addValue(String field, Value value); @Override boolean removeField(String field); @Override boolean removeValue(String field, Value value); @Override boolean updateField(String field, List<Value> value); @Override boolean updateValue(String field, Value old_value, Value new_value); @Override boolean hasField(String field); @Override Set<String> getFields();  }### Answer:
@Test public void testRemoveValue() { assertFalse(rec.removeValue("test", new StringValue("foo"))); rec.addField("test", val); assertTrue(rec.getValues("test").contains(val.get(0))); assertTrue(rec.removeValue("test", val.get(0))); assertFalse(rec.getValues("test").contains(new StringValue("foo"))); }