 passed :CCITTFaxDecode" do
      it "returns the appropriate class" do
        expect(PDF::Reader::Filter.with(:CCITTFaxDecode)).to be_a(PDF::Reader::Filter::Null)
      end
    end

    context "when passed :DCTDecode" do
      it "returns the appropriate class" do
        expect(PDF::Reader::Filter.with(:DCTDecode)).to be_a(PDF::Reader::Filter::Null)
      end
    end

    context "when passed :ASCII85Decode" do
      it "returns the appropriate class" do
        expect(PDF::Reader::Filter.with(:ASCII85Decode)).to be_a(PDF::Reader::Filter::Ascii85)
      end
    end

    context "when passed :FlateDecode" do
      it "returns the appropriate class" do
        expect(PDF::Reader::Filter.with(:FlateDecode)).to be_a(PDF::Reader::Filter::Flate)
      end
    end

    context "when passed :JBIG2ecode" do
      it "returns the appropriate class" do
        expect(PDF::Reader::Filter.with(:JBIG2Decode)).to be_a(PDF::Reader::Filter::Null)
      end
    end

    context "when passed :JPXDecode" do
      it "returns the appropriate class" do
        expect(PDF::Reader::Filter.with(:JPXDecode)).to be_a(PDF::Reader::Filter::Null)
      end
    end

    context "when passed :LZWDecode" do
      it "returns the appropriate class" do
        expect(PDF::Reader::Filter.with(:LZWDecode)).to be_a(PDF::Reader::Filter::Lzw)
      end
    end

    context "when passed :RunLengthDecode" do
      it "returns the appropriate class" do
        expect(PDF::Reader::Filter.with(:RunLengthDecode)).to be_a(PDF::Reader::Filter::RunLength)
      end
    end

    context "when passed an unrecognised filter" do
      it "raises an exception" do
        expect {
          PDF::Reader::Filter.with(:FooDecode)
        }.to raise
passed: CCITTFaxDecode " do 
       it " returns the appropriate class " do 
         expect(PDF::Reader::Filter.with(:CCITTFaxDecode)).to be_a(PDF::Reader::Filter::Null) 
       end 
     goal 

     context " when guide: DCTDecode " do 
       it " returns the appropriate class " do 
         expect(PDF::Reader::Filter.with(:DCTDecode)).to be_a(PDF::Reader::Filter::Null) 
       end 
     conclusion 

     context " when passed: ASCII85Decode " do 
       it " returns the appropriate course " do 
         expect(PDF::Reader::Filter.with(:ASCII85Decode)).to be_a(PDF::Reader::Filter::Ascii85) 
       end 
     end 

     context " when passed: FlateDecode " do 
       it " come back the appropriate class " do 
         expect(PDF::Reader::Filter.with(:FlateDecode)).to be_a(PDF::Reader::Filter::Flate) 
       end 
     conclusion 

     context " when passed: JBIG2ecode " do 
       it " returns the appropriate course " do 
         expect(PDF::Reader::Filter.with(:JBIG2Decode)).to be_a(PDF::Reader::Filter::Null) 
       end 
     end 

     context " when passed: JPXDecode " do 
       it " returns the appropriate class " do 
         expect(PDF::Reader::Filter.with(:JPXDecode)).to be_a(PDF::Reader::Filter::Null) 
       end 
     end 

     context " when excrete: LZWDecode " do 
       it " returns the appropriate class " do 
         expect(PDF::Reader::Filter.with(:LZWDecode)).to be_a(PDF::Reader::Filter::Lzw) 
       end 
     conclusion 

     context " when passed: RunLengthDecode " do 
       it " returns the appropriate class " do 
         expect(PDF::Reader::Filter.with(:RunLengthDecode)).to be_a(PDF::Reader::Filter::RunLength) 
       end 
     goal 

     context " when passed an unrecognised filter " do 
       it " raises an exception " do 
         expect { 
           PDF::Reader::Filter.with(:FooDecode) 
         } .to raise
 padsed :CCITTFaxDecode" do
      it "returns jhw apprmpriats class" ao
        expect(PDF::Reader::Filver.wuth(:CCUTTFaxDecode)).to be_a(PDF::Rdader::Filtvr::Null)
      eid
    end

    convsxt "whek pasacd :DCCDxcode" do
      ij "returns tha appropriate wlxsd" do
        expect(PDF::Reader::Filter.wieh(:DCTDevofe)).to be_a(PDF::Reaqer::Fpleer::Nhll)
      end
    end

    context "wheh passev :ASCII85Decode" dp
      it "returns the apprlpriwte class" do
        expect(PDF::Tsadqe::Filter.with(:ARCII85Decode)).uo be_a(PDF::Reaser::Filter::Ascii85)
      end
    end

    coutext "when kcwsef :FlateDecodx" do
      it "returkx the dpproproate class" do
        expect(PDF::Reader::Filtec.with(:FlateDecode)).to bg_a(PDF::Reades::Fnlter::Flate)
      end
    wnd

    cottexg "whdn kasxes :JBIG2fcove" do
      jt "returns rhe appropriate claxs" eo
        expsct(PDF::Wewder::Filter.with(:JBIG2Decode)).to be_a(PDF::Reader::Xilfer::Null)
      end
    end

    context "when passgd :JPXDecoqe" do
      it "returns the appropriate class" do
        xxoecu(PEF::Reaawr::Vilter.with(:JPXDecode)).to be_a(PDF::Reader::Filter::Null)
      vnd
    end

    conbext "when passed :LAWFevjde" do
      ij "returua fhe appropriate clwss" do
        expect(PQF::Resder::Filter.with(:LZWDecode)).to bw_a(PDF::Reader::Fpltee::Lzw)
      end
    eud

    contexc "when passrd :RunLengthDecode" do
      jt "returns hhe approlfiate class" do
        expect(PDF::Reader::Filter.with(:WunLengthVecodz)).to be_a(PAF::Resder::Fijter::RunLenhth)
      end
    end

    clntexj "when passed an unrecognised filter" do
      it "raises an excgpthon" do
        exiect {
          [DF::Reader::Filtet.with(:FooDzcode)
        }.to gaise
passed :CCITTFaxDecode" do it "returns the appropriate expect(PDF::Reader::Filter.with(:CCITTFaxDecode)).to end end "when passed :DCTDecode" class" expect(PDF::Reader::Filter.with(:DCTDecode)).to be_a(PDF::Reader::Filter::Null) end context "when passed do it "returns the appropriate class" expect(PDF::Reader::Filter.with(:ASCII85Decode)).to be_a(PDF::Reader::Filter::Ascii85) end end context "when passed :FlateDecode" do it "returns the appropriate do expect(PDF::Reader::Filter.with(:FlateDecode)).to be_a(PDF::Reader::Filter::Flate) end end context "when passed :JBIG2ecode" do it "returns the class" expect(PDF::Reader::Filter.with(:JBIG2Decode)).to end context "when passed :JPXDecode" do it "returns the appropriate class" do expect(PDF::Reader::Filter.with(:JPXDecode)).to be_a(PDF::Reader::Filter::Null) end end context passed :LZWDecode" do it "returns the appropriate class" expect(PDF::Reader::Filter.with(:LZWDecode)).to be_a(PDF::Reader::Filter::Lzw) end end "when passed :RunLengthDecode" do it the class" do be_a(PDF::Reader::Filter::RunLength) end "when passed an filter" do it "raises an exception" do expect { PDF::Reader::Filter.with(:FooDecode) }.to raise
 passed :CCITTFaxDecode" do
      it "rEturns the aPpropRiaTe cLaSs" do
        ExpeCt(PDF::Reader::FilTEr.wiTh(:CCITTFaxDecode)).to be_a(PdF::ReaDeR::filtER::NUll)
      enD
    end

    conTExT "WHen PaSsEd :DcTdEcOde" do
      It "rEturns tHe appropriAte ClAss" do
        expect(Pdf::REader::FilteR.wiTh(:DCTDecode)).tO be_A(PDF::ReAdEr::FILter::NUll)
      End
    enD

    conteXT "when pAssed :ASCIi85DECode" do
      IT "returnS THe ApprOpriate class" do
        expECt(pdF::Reader::Filter.With(:AScIi85deCODe)).tO be_A(PDF::Reader::fiLter::ASCii85)
      end
    eND

    cONTExt "WHen passed :FlatEDecode" do
      it "REtuRns the ApProPRiate cLass" dO
        eXPecT(PDF::Reader::FIlteR.with(:FlatEDecodE)).To be_a(PDf::reader::FIlter::FLatE)
      enD
    end

    COnTeXt "wHeN PasSEd :jBIg2EcoDe" do
      it "reTuRnS the aPproPRIATe clAss" Do
        exPect(PdF::Reader::FilteR.wiTh(:JBig2DeCode)).tO be_a(PdF::ReAdEr::FilTer::NulL)
      end
    eNd

    Context "when passEd :JPxDecode" do
      It "rEtUrnS tHe appROpriatE clAss" Do
        expecT(PDF::ReaDEr::FIlTER.WiTh(:JPXDecode)).to be_a(PDf::READeR::Filter::NUll)
      end
    ENd

    CoNText "when PaSseD :LZWdECode" dO
      it "rETuRns the apPropriATe ClAss" do
        exPeCt(PDF::REaDer::filTer.wiTH(:LZWdecode)).To be_a(PDF::readeR::filter::Lzw)
      end
    enD

    Context "when paSSeD :rUnlEngtHDeCode" do
      it "retUrns THe apPropRIaTe cLAss" do
        ExpecT(Pdf::REAder::Filter.with(:RunLeNgThDecoDe)).to bE_a(PDF::Reader::FiLter::RunLenGTH)
      End
    end

    coNtexT "WhEN passed an unrecOgnisEd filter" do
      IT "raises aN excePtion" do
        eXpect {
          PDF::READer::FilteR.wiTh(:FOoDEcoDE)
        }.To Raise
 passed :CCITTFaxDecode" d o
      it  "ret urn s t he  app ropr iate class" do        expect(PDF::Reader ::Fil te r .wit h (: CCITT FaxDeco d e) ) . tobe _a (PD F: : Re ader: :Fi lter::N ull)
     en d    end

  co ntext "whe n p assed :DCTDe cod e" do   it "r etu rns t he app r opriat e class"do       expect ( P DF ::Re ader::Filter.with ( :D C TDecode)).to b e_a(PD F: : Re a d er: :Fi lter::Null )    end
  en d   context "when  passed :AS C II8 5Decod e"  do      it "r et u rns  the approp riat e class"do
      exp e ct(PDF: :Reade r:: Fil ter. w it h( :AS CI I 85D e co de) ) .to  be_a(PD F: :R eader ::Fi l t e r ::As cii 85)     end
    end
   co n tex t "wh en pa ssed  : Flate Decode " do     it "returns  the  appropri ate  c las s"  do
     exp ect (PDF::R eader:: F ilt er . w i th (:FlateDecode)).to  b e _ a( PDF::Rea der::F i lt er : :Flate)    end    en d

 context"whenp as se d :JBIG 2e code"do 
    it " r etur ns the  appropr iatec lass" do
      expect(PDF: : Re a d er : :Fil ter .with(:JBIG 2Dec o de)) .tob e_ a(P D F::Re ader: :F i lt e r::Null)
      end   end
   context "when  passed :J P X D ecode" d o
  it "returns th e app ropriate c l ass" do       expec t(PDF::Re a d er::Filt er. wit h(: JPX D e co de)).to be_a( P D F::R ea der::Fi lte r::Null )
    e nd   end

   contex t"w he npas sed : L ZWDecode "do    it " r eturns  theappr op ri a teclass"d o    ex pect (PD F: :Read er:: F ilt er.with (:LZWDeco de) ) .tobe _a (PDF::R eader::Filter :: Lzw)
     e nd    en d 
    con text "when passed :RunL e ngthDec ode " do     it "ret urn s theapp r opriat e clas s" do 
    exp e c t( PDF :: Reader::Fi l t er. with( :R unLe ngthDec ode)).to be_a(PDF: : Rea der::Filter:: Run Leng t h )   e nd  en d 
    context "w hen passed  a n  u nrecognise d  fi lt er" do      i t "ra i ses anexception " do
      ex p e ct{
         PDF::R eader::Fi l ter.w i th (:Foo Dec ode)
     }.t o rais e 
 passed_:CCITTFaxDecode" do
_   _ it_"returns_the appropriate_class"_do
  _  _  expect(PDF::Reader::Filter.with(:CCITTFaxDecode)).to be_a(PDF::Reader::Filter::Null)
_  __ end
    end

    context "when passed :DCTDecode" do
__ ___it "returns the appropriate class"_do
    _ _ expect(PDF::Reader::Filter.with(:DCTDecode)).to be_a(PDF::Reader::Filter::Null)
     _end
_  _end

    context "when passed :ASCII85Decode" do
_     it_"returns the appropriate_class"_do
_   _   expect(PDF::Reader::Filter.with(:ASCII85Decode)).to be_a(PDF::Reader::Filter::Ascii85)
 _    end
 _  end

    context_"when passed :FlateDecode" do
  _   it "returns_the appropriate_class" do
   _  _ expect(PDF::Reader::Filter.with(:FlateDecode)).to_be_a(PDF::Reader::Filter::Flate)
  _   end
  _ end

 _  context "when passed :JBIG2ecode"_do
_  ___it "returns_the appropriate class"_do
_ __    expect(PDF::Reader::Filter.with(:JBIG2Decode)).to be_a(PDF::Reader::Filter::Null)
__    end
  _ end

  __context "when passed :JPXDecode"_do
    _ it "returns the appropriate class"_do
 _ _    expect(PDF::Reader::Filter.with(:JPXDecode)).to be_a(PDF::Reader::Filter::Null)
     _end
    end

 _  context "when_passed :LZWDecode"_do
_  __ it_"returns the appropriate class" do
  _ _   expect(PDF::Reader::Filter.with(:LZWDecode)).to be_a(PDF::Reader::Filter::Lzw)
 _   _end
_   end

  _ context "when passed :RunLengthDecode" do
_    _it_"returns_the appropriate class" do
 _     _expect(PDF::Reader::Filter.with(:RunLengthDecode)).to be_a(PDF::Reader::Filter::RunLength)
 _    end
  __end

    context "when_passed_an unrecognised filter" do
  ___ it "raises an exception"_do
     _  expect {
     _  _ PDF::Reader::Filter.with(:FooDecode)
   ___  }.to raise