Can FHE be used for comparing 2 ciphertexts?

As per your suggestion i added this code in core library so i can change the modulus from higher to lower

std::vector<std::shared_ptr<LWECiphertextImpl>> SWITCHCKKSRNS::EvalFHEWChangeModulus(
    std::vector<lbcrypto::LWECiphertext> LWEciphertexts, uint32_t fromModulus, uint32_t toModulus,uint32_t numCtxts) {
        NativeInteger native_fromModulus(fromModulus);
        NativeInteger native_toModulus(toModulus);
        uint32_t n = m_ccLWE.GetParams()->GetLWEParams()->Getn();  // lattice parameter for additive LWE
#pragma omp parallel for
    for (uint32_t i = 0; i < numCtxts; i++) {
        auto original_a = LWEciphertexts[i]->GetA();
        auto original_b = LWEciphertexts[i]->GetB();
        // multiply by Q_LWE/Q' and round to Q_LWE
        NativeVector a_round(n, toModulus);
        for (uint32_t j = 0; j < n; ++j) {
            a_round[j] = RoundqQAlter(original_a[j], native_toModulus, native_fromModulus);
        }
        NativeInteger b_round = RoundqQAlter(original_b, native_toModulus, native_fromModulus);
        LWEciphertexts[i]     = std::make_shared<LWECiphertextImpl>(std::move(a_round), std::move(b_round));
    }

    return LWEciphertexts;
}

i added this in python wrapper

.def("EvalFHEWChangeModulus", &CryptoContextImpl<DCRTPoly>::EvalFHEWChangeModulus,
             cc_EvalCKKStoFHEW_docs,
             py::arg("LWEciphertexts"),
             py::arg("fromModulus"),
             py::arg("toModulus"),
             py::arg("numCtxts") = 0)

I was able to execute

    cTemp1_new =  cc.EvalFHEWChangeModulus(cTemp1,cTemp1[0].GetModulus(),LWESign[0].GetModulus(),len(cTemp1))

e_a1_result = [
        ccLWE.EvalBinGate(AND, cTemp1_new[i], LWESign[i]) for i in range(len(cTemp1))
    ]

I am not getting any errors

But i am getting incorrect outputs.

can someone please help me with this