 
     func testDecoding_withArrayOfDictionary_ofCerealTypeToIdentifyingCereal() {
         do {
-            let subject = try CerealDecoder(encodedString: "k,2:hi:a,209:m,99:c,15:k,3:foo:s,3:bar:p,23:5:MyBar:k,3:bar:s,3:bar:c,15:k,3:foo:s,3:baz:p,23:5:MyBar:k,3:bar:s,3:baz:m,99:c,15:k,3:foo:s,3:foo:p,23:5:MyBar:k,3:bar:s,3:foo:c,15:k,3:foo:s,3:oof:p,23:5:MyBar:k,3:bar:s,3:oof")
+            let subject = try CerealDecoder(encodedBytes: [11,203,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,2,0,0,0,0,0,0,0,104,105,10,174,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,10,198,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,9,11,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,102,111,111,1,3,0,0,0,0,0,0,0,98,97,122,12,1,5,0,0,0,0,0,0,0,77,121,66,97,114,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,98,97,114,1,3,0,0,0,0,0,0,0,98,97,122,9,11,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,102,111,111,1,3,0,0,0,0,0,0,0,98,97,114,12,1,5,0,0,0,0,0,0,0,77,121,66,97,114,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,98,97,114,1,3,0,0,0,0,0,0,0,98,97,114,10,198,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,9,11,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,102,111,111,1,3,0,0,0,0,0,0,0,111,111,102,12,1,5,0,0,0,0,0,0,0,77,121,66,97,114,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,98,97,114,1,3,0,0,0,0,0,0,0,111,111,102,9,11,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,102,111,111,1,3,0,0,0,0,0,0,0,102,111,111,12,1,5,0,0,0,0,0,0,0,77,121,66,97,114,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,98,97,114,1,3,0,0,0,0,0,0,0,102,111,111])
             if let elements: [[TestCerealType: MyBar]] = try subject.decodeCerealPair("hi") {
                 guard let first: [TestCerealType: MyBar] = elements.first else {
                     XCTFail("Array wasn't decoded correctly")


    func testDecoding_withArrayOfDictionary_ofInt64ToIdentifyingCereal() {
        do {
            let subject = try CerealDecoder(encodedString: "k,2:hi:a,149:m,69:z,1:0:p,23:5:MyBar:k,3:bar:s,3:bar:z,1:2:p,23:5:MyBar:k,3:bar:s,3:baz:m,69:z,1:4:p,23:5:MyBar:k,3:bar:s,3:foo:z,1:6:p,23:5:MyBar:k,3:bar:s,3:oof")
            if let elements: [[Int64: MyBar]] = try subject.decodeCereal("hi") {
                guard let first: [Int64: MyBar] = elements.first else {
                    XCTFail("Array wasn't decoded correctly")


    func testDecoding_withMixedArray_containingCereal_raisesError() {
        do {
            let subject = try CerealDecoder(encodedBytes: [11,88,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,2,0,0,0,0,0,0,0,104,105,10,59,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,8,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,2,8,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,102,111,111,1,3,0,0,0,0,0,0,0,98,97,114])
            let elements: [CerealRepresentable]? = try subject.decode("hi")
            XCTFail("Request should of thrown, but got elements: \(elements)")
        } catch CerealError.InvalidEncoding {
