         println("Property encoding size is: \(data.length)")
     }
     
+    
+    // Test size of ObjectBlock Class
+    func testFastCodingObjectBlock1() {
+        
+        var aObj = Block(used: true)
+        
+        var data = FastCoder.dataWithRootObject(aObj)
+        
+        var bObj = FastCoder.objectWithData(data) as! Block
+        
+        XCTAssertTrue(data.length == 81, "wrong size")
+        //XCTAssertTrue(aObj.dateValue!.isEqual(bObj.dateValue) , "")
+        println("Property encoding size is: \(data.length)")
+    }
+    
+    func testFastCodingObjectBlock2() {
+        
+        var aObj = Block(used: true)
+        var testData = TestClass(num: Int.max)
+        aObj.obj = testData
+        
+        var data = FastCoder.dataWithRootObject(aObj)
+        
+        var bObj = FastCoder.objectWithData(data) as! Block
+        
+        XCTAssertTrue(data.length == 149, "wrong size")
+        //XCTAssertTrue(aObj.dateValue!.isEqual(bObj.dateValue) , "")
+        println("Property encoding size is: \(data.length)")
+    }
+    
+    func testFastCodingTestClass() {
+        
+        var aObj = TestClass(num: Int.max)
+        
+        var data = FastCoder.dataWithRootObject(aObj)
+        
+        var bObj = FastCoder.objectWithData(data) as! TestClass
+        
+        XCTAssertTrue(data.length == 89, "wrong size")
+        //XCTAssertTrue(aObj.dateValue!.isEqual(bObj.dateValue) , "")
+        println("Property encoding size is: \(data.length)")
+    }
+    
+    func testEmptyClassFastCoding() {
+        
+        var aObj = A()
+        
+        var data = FastCoder.dataWithRootObject(aObj)
+        
+        var bObj = FastCoder.objectWithData(data) as! A
+        
+        XCTAssertTrue(data.length == 65, "wrong size")
+        //XCTAssertTrue(aObj.dateValue!.isEqual(bObj.dateValue) , "")
+        println("Property encoding size is: \(data.length)")
+    }
+    
     /**
     func testPropertyCoding() {
      

    }
    
    */

}


*/
    
    internal class Block : NSObject, NSCoding {
        
        var used: Bool = true
        var obj: AnyObject? = nil
        
        override init() {
            super.init()
        }
        
        init(used: Bool) {
            super.init()
            self.used = used
        }
        
        init(obj:SOCoding) {
            super.init()
            self.obj = obj
        }
        
        //MARK: NSCoding
        
        @objc required init(coder decoder: NSCoder) { // NS_DESIGNATED_INITIALIZER
            super.init()
            
            used  = decoder.decodeBoolForKey("1")
            obj = decoder.decodeObjectForKey("0")
        }
        
        @objc func encodeWithCoder(encoder: NSCoder) {
            encoder.encodeBool(used, forKey:"1")
            
            if obj != nil {
                encoder.encodeObject(obj, forKey: "0")
            }
            
        }
        
    }
    
    
    //MARK: Node
    
    func testNodeFastCoding() {
