### Question:
MenuItem { public MenuItem(String name, int id, int eepromAddress, String functionName, boolean readOnly, boolean localOnly, boolean visible) { this.name = name; this.id = id; this.eepromAddress = eepromAddress; this.functionName = functionName; this.readOnly = readOnly; this.localOnly = localOnly; this.visible = visible; } MenuItem(String name, int id, int eepromAddress, String functionName,
                    boolean readOnly, boolean localOnly, boolean visible); String getName(); boolean isReadOnly(); int getId(); boolean isLocalOnly(); int getEepromAddress(); String getFunctionName(); boolean isVisible(); boolean hasChildren(); abstract MenuState<T> newMenuState(T value, boolean changed, boolean active); abstract void accept(MenuItemVisitor visitor); @Override String toString();  }### Answer:
@Test public void testFloatMenuItem() { FloatMenuItem fl = aFloatMenuItemBuilder() .withName("Flt") .withId(33) .withEepromAddr(-1) .withDecimalPlaces(3) .menuItem(); assertBaseMenuFields(fl, "Flt", 33, -1); assertEquals(fl, aFloatMenuItemBuilder().withExisting(fl).menuItem()); }