         
         describe("S3DXMLMTLSamplerDescriptorNode") {
             it("can parse a sampler descriptor") {
-                let desc = descMan.samplerDescriptors["sampler_desc"]!
+                let desc = descMan.getSamplerDescriptor("sampler_desc")
                 expect(desc.minFilter) == MTLSamplerMinMagFilter.Linear
                 expect(desc.magFilter) == MTLSamplerMinMagFilter.Linear
                 expect(desc.mipFilter) == MTLSamplerMipFilter.Linear

                expect(desc.stencilAttachmentPixelFormat) == MTLPixelFormat.Stencil8
                expect(desc.vertexFunction!.name) == "basic_color_vertex"
                expect(desc.fragmentFunction!.name) == "basic_color_fragment"
                expect(desc.vertexDescriptor) == descMan.vertexDescriptors["common_vertex_desc"]!
                expect(desc.colorAttachments[0]) == descMan.colorAttachmentDescriptors["color_attach_desc"]
            }
        }
        
        describe("S3DXMLMTLComputePipelineDescribeNode") {
            it("can parse a compute pipeline descriptor") {
                let desc = descMan.computePipelineDescriptors["compute_pipeline_desc"]!
                expect(desc.label) == "compute-pipeline-descriptor"
                expect(desc.threadGroupSizeIsMultipleOfThreadExecutionWidth) == true
                expect(desc.computeFunction!.name) == "test_compute_function"

        
        describe("S3DXMLMTLStencilDescriptorNode") {
            it("can parse a stencil descriptor") {
                let desc = descMan.getStencilDescriptor("stencil_desc")
                expect(desc.stencilCompareFunction) == MTLCompareFunction.Never
                expect(desc.stencilFailureOperation) == MTLStencilOperation.Replace
                expect(desc.depthFailureOperation) == MTLStencilOperation.IncrementWrap
