assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("*d")), XDIAddress.create("*d"));
assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("*c*d")), XDIAddress.create("*c*d"));
assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("*b*c*d")), XDIAddress.create("*b*c*d"));
assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("=a*b*c*d")), XDIAddress.create("=a*b*c*d"));
assertNull(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("*y*d")));
assertNull(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("*b*y*d")));
assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("{}"), false, true), XDIAddress.create("*d"));
assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("{}*d"), false, true), XDIAddress.create("*c*d"));
assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("*b{}{}"), false, true), XDIAddress.create("*b*c*d"));
assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("=a*b*c{}"), false, true), XDIAddress.create("=a*b*c*d"));
assertNull(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("*y*d"), false, true));
assertNull(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("*b*y*d"), false, true));
assertNull(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("{}"), false, false));
assertNull(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("{}*d"), false, false));
assertNull(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("*b{}{}"), false, false));
assertNull(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("=a*b*c{}"), false, false));
assertNull(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("*y*d"), false, false));
assertNull(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("*b*y*d"), false, false));
assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress2, XDIAddress.create("*d"), true, false), XDIAddress.create("*d"));
assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress2, XDIAddress.create("*c*d"), true, false), XDIAddress.create("{}*d"));
assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress2, XDIAddress.create("*b*c*d"), true, false), XDIAddress.create("*b{}*d"));
assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress2, XDIAddress.create("=a*b*c*d"), true, false), XDIAddress.create("{}*b{}*d"));
assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress2, XDIAddress.create("*y*d"), true, false), XDIAddress.create("{}*d"));
assertNull(XDIAddressUtil.endsWithXDIAddress(XDIaddress2, XDIAddress.create("*y*c*d"), true, false));
assertEquals(XDIAddressUtil.endsWithXDIAddress(XDIaddress1, XDIAddress.create("=a*b*c{{=*}}"), false, true), XDIaddress1);