### Question:
CaesarCodec extends CodecImpl { @NonNull @Override public String decode(@NonNull String text) { return encode(text, 26 - offset); } CaesarCodec();  CaesarCodec(int offset); @NonNull @Override String decode(@NonNull String text); @NonNull @Override String encode(@NonNull String text); @NonNull @Override String getName(Context context);  }### Answer:
@Test public void testDecode() throws Exception { String inp = "Ifmq xf bsf cfjoh buubdlfe"; String decode = codec.decode(inp); System.out.println("decode = " + decode); assertEquals(decode, "Help we are being attacked"); }
@Test public void testDecode2() throws Exception { String inp = "! !"; String decode = codec.decode(inp); System.out.println("decode = '" + decode + "'"); assertEquals(decode, "! !"); }
@Test public void testDecode3() throws Exception { String inp = (char) 19 + ""; String decode = codec.decode(inp); System.out.println("decode = '" + decode + "'"); assertEquals(decode, "\u0013"); }
@Test public void decode() { }