@achow101 noted we don't reject them therefore they must be silently accepted. This is not part of the specs, we should remove them. Also cc @sipa.

I can take care of this.
{
    FlatSigningProvider keys_priv, keys_pub;
    std::string error;
    auto parse_priv = Parse(prv, keys_priv, error);
    auto parse_pub = Parse(pub, keys_pub, error);
    BOOST_CHECK_MESSAGE(!parse_priv, prv);
    BOOST_CHECK_MESSAGE(!parse_pub, pub);
    BOOST_CHECK_EQUAL(error, expected_error);
}
void CheckInferRaw(const CScript& script)
{
    FlatSigningProvider dummy_provider;
    std::unique_ptr<Descriptor> desc = InferDescriptor(script, dummy_provider);
    BOOST_CHECK(desc->ToString().rfind("raw(", 0) == 0);
}
constexpr int DEFAULT = 0;
constexpr int RANGE = 1; 
constexpr int HARDENED = 2; 
constexpr int UNSOLVABLE = 4; 
constexpr int SIGNABLE = 8; 
constexpr int DERIVE_HARDENED = 16; 
constexpr int MIXED_PUBKEYS = 32;
constexpr int XONLY_KEYS = 64; 
constexpr int MISSING_PRIVKEYS = 128; 
constexpr int SIGNABLE_FAILS = 256; 
bool EqualDescriptor(std::string a, std::string b)