     test 'multiple results', ->
         el = $('#test li')
         assert.lengthOf el, 3, "It has 3 elements"
+
+    test 'matches error', ->
+        el = $()
+        el.elements = [{}]
+        el._update()
+
+        assert.lengthOf el.filter(), 0, "matches filter only elements"
+
+    test 'matches fallback', ->
+        # this test is really dont cool
+        util = $.require('util')
+
+        parent = document.createElement('div')
+        children_foo = document.createElement('div')
+        children_foo.className = 'foo'
+        children = document.createElement('div')
+        parent.appendChild children_foo
+        parent.appendChild children
+        el = $(parent)
+
+        prefix = util.prefix
+        util.prefix = -> return false
+
+        filter_div = el.filter('div')
+        filter_foo = el.children().filter('.foo')
+
+        util.prefix = prefix # restore prefix
+
+        assert.deepEqual filter_div.elements, [parent], "Remains the parent"
+        assert.deepEqual filter_foo.elements, [children_foo], "Remains the parent"
         
+suite 'Traversal methods', ->
+    test 'find', ->
+        all = $('*')
+        list = all.find('.list li')
+        assert.deepEqual list.get(), list_items().get(), "Gets the list items"
 
-suite 'Traversal methods', ->
+    test 'find in one', ->
+        doc = $(document)
+        list = doc.find('.list li')
+        assert.deepEqual list.get(), list_items().get(), "Gets the list items"
+
+    test 'filter', ->
+        all = $('*')
+        list = all.filter('.list li')
+        assert.deepEqual list.get(), list_items().get(), "Filter the list items"
+
+        nothing = all.filter('.nothing-with-this')
+        assert.equal nothing.length, 0, "Filter should returns nothing"
+
+        assert.deepEqual all, $('*'), "Doesnt affect the original"
+
+    test 'is', ->
+        doc = $(document)
+        assert.isTrue doc.is(document), "Document is document"
+
+        list = list_items()
+        assert.isTrue list.is('li'), "Filter the list items"
+
+        all = $('*')
+        assert.isTrue all.is(list_items()), "Filter the list items with Rye instance"
 
     test 'add multiple (Rye)', ->
         list = list_items()


        closest = el.closest('bacon')
        assert.lengthOf closest, 0

        assert siblings.length is 2, "Two siblings"
        assert.deepEqual siblings.get().map((el) -> el.className), ['a', 'c']

    test 'parent', ->
        el = $('.a').parent()
        assert el.length is 1, "One element found"
        assert el.get(0).className is 'list', "Parent is .list"

    test 'parents', ->
        els = $('.a').parents()

        assert.isTrue els.is('ul'), "Ul element found"
        assert.isTrue els.is('body'), "Body always found"

    test 'closest', ->
        el = $('.a')
        closest = el.closest('ul')
        assert.lengthOf closest, 1
        assert.equal closest.get(0).className, 'list'

        el = $('.a')
        closest = el.closest('.a')
        assert.lengthOf closest, 1
        assert.equal closest.get(0).className, 'a'

        closest = el.closest('section#test')
        assert.lengthOf closest, 1
