### Question:
TCStringV1 implements TCString { @Override public IntIterable getPurposesConsent() { return TCStringV2.fillBitSet(bbv, V1_PURPOSES_ALLOW); } private  TCStringV1(BitReader bitVector); static TCStringV1 fromBitVector(BitReader bitVector); @Override int getVersion(); @Override Instant getCreated(); @Override Instant getLastUpdated(); @Override int getCmpId(); @Override int getCmpVersion(); @Override int getConsentScreen(); @Override String getConsentLanguage(); @Override int getVendorListVersion(); @Override IntIterable getVendorConsent(); @Override boolean getDefaultVendorConsent(); @Override IntIterable getPurposesConsent(); @Override int getTcfPolicyVersion(); @Override boolean isServiceSpecific(); @Override boolean getUseNonStandardStacks(); @Override IntIterable getSpecialFeatureOptIns(); @Override IntIterable getPurposesLITransparency(); @Override boolean getPurposeOneTreatment(); @Override String getPublisherCC(); @Override IntIterable getVendorLegitimateInterest(); @Override List<PublisherRestriction> getPublisherRestrictions(); @Override IntIterable getAllowedVendors(); @Override IntIterable getDisclosedVendors(); @Override IntIterable getPubPurposesConsent(); @Override IntIterable getPubPurposesLITransparency(); @Override IntIterable getCustomPurposesConsent(); @Override IntIterable getCustomPurposesLITransparency(); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }### Answer:
@Test public void testAllowedPurposes() { TCString model = parse("BOOzQoAOOzQoAAPAFSENCW-AIBA="); assertThat(model.getPurposesConsent(), matchInts(1, 2, 3, 4, 5, 15, 24)); assertTrue(model.getPurposesConsent().contains(1)); assertTrue(model.getPurposesConsent().contains(2)); assertTrue(model.getPurposesConsent().contains(3)); assertTrue(model.getPurposesConsent().contains(4)); assertTrue(model.getPurposesConsent().contains(5)); assertTrue(model.getPurposesConsent().contains(15)); assertTrue(model.getPurposesConsent().contains(24)); }