private void testAMulti(final Multi m) {
		NodeBlock nb;
		Multi res;
		ByteBuffer bb;
		int size;

		size = m.getSize();

		bb = m.encode();

		assertEquals("The encoded type has a different size than predicted.", size, bb.remaining());

		nb = NodeBlock.decodeBlock(bb);

		assertNotNull("Decoding failed.", nb);

		assertEquals("Wrong native type.", NodeBlock.BLOCK_MULTIBLOCK, nb.getNativeType());

		res = (Multi) nb;

		NodeBlock[] orig = m.getSubBlocks();

		assertEquals("Wrong count of sub blocks.", orig.length, res.getSubBlocks().length);

		for (NodeBlock sub : res.getSubBlocks()) {
			assertNotNull("A null block was transmitted.", sub);

			boolean found = false;

			for (int i = 0; i < orig.length; i++) {
				if (orig[i] == null)
					continue;

				if (orig[i].getNativeType() == sub.getNativeType() && orig[i].getSize() == sub.getSize()) {
					found = true;
					orig[i] = null;
					break;
				}
			}

			if (!found) {
				fail("SubBlock has no counter part.(1)");
			}
		}

		for (int i = 0; i < orig.length; i++) {
			if (orig[i] != null) {
				fail("SubBlock has no counter part.(2)");
			}
		}
	}