public boolean testReverse() throws PersistitException {
        setPhase("b");

        _ex.clear().append(Key.AFTER);
        int index1 = _total - 1;
        int index2;
        while (_ex.previous() && !isStopped()) {
            index2 = (int) (_ex.getKey().decodeLong());
            for (int i = index1; i > index2; i--) {
                if (_checksum[i] != -1) {
                    return false;
                }
            }
            index1 = index2 - 1;
            final int cksum = checksum(_ex.getValue());
            if ((index2 < 0) || (index2 >= _total)) {
                return false;
            }
            if (cksum != _checksum[index2]) {
                return false;
            }
        }
        for (int i = index1; i >= 0; i--) {
            if (_checksum[i] != -1) {
                return false;
            }
        }

        return true;
    }