           .parent()
           .get("name").should.equal "D"
 
-      it "002: root's parent is undefined", ->
+      it "C002: root's parent is undefined", ->
         should.strictEqual @root.parent(), undefined
 
-  context "007: childrens watching", ->
+  context "A007: childrens watching", ->
     beforeEach ->
       @root = new @LabelCategory.Models.LabelCategory
       @fake_label =
         spy: sinon.spy()
         on:  sinon.spy()
 
-    context "001: destroy with no child", ->
+    context "B001: destroy with no child", ->
       beforeEach ->
         @root.parse_labels_recursive_func "1/1/1", @fake_label
         @root.parse_labels_recursive_func "1/1/2", @fake_label

          .get("childrens")["G"]
          .get_label_text().should.equal "A/B/C/D/E/F/G"

  context "005: #children()", ->
    beforeEach ->
      @root = new @LabelCategory.Models.LabelCategory
      @fake_label =
        set: sinon.spy()
        on:  sinon.spy()

    context "001: A/B/C/D/E", ->
      beforeEach ->
        @root.parse_labels_recursive_func "A/B/C/D/E", @fake_label

      it "001: get target category", ->
        @root.children("A").get("name").should.equal "A"
        @root.children("A").children("B").get("name").should.equal "B"
        @root.children("A").children("B").children("C").get("name").should.equal "C"
        @root.children("A").children("B").children("C").children("D").get("name").should.equal "D"
        @root.children("A").children("B").children("C").children("D").children("E").get("name").should.equal "E"

      it "002: is not found", ->
        should.strictEqual @root.children("B"), undefined

  context "006: #parent()", ->
    beforeEach ->
      @root = new @LabelCategory.Models.LabelCategory
      @fake_label =
        spy: sinon.spy()
        on:  sinon.spy()

    context "001: A/B/C/D/E", ->
      beforeEach ->
        @root.parse_labels_recursive_func "A/B/C/D/E", @fake_label
        
      it "001: #parent", ->
        @root.children("A").parent().children("A").get("name").should.equal "A"
        @root.children("A").children("B").children("C").parent().parent().get("name").should.equal "A"
        @root

      )
      @root = new @LabelCategory.Models.LabelCategory()

    context "B001: destroy", ->
      it "C001: destroy with label", ->
        destroy_event_spy = sinon.spy()
        @root.set_label @label
        @label.destroy()
        should.strictEqual @root.get("label"), undefined

  context "A004: #get_label_text()", ->
    beforeEach ->
      @root = new @LabelCategory.Models.LabelCategory()
      @fake_label =
        set:  sinon.spy()
        on:   sinon.spy()

    context "B001: A/B/C/D/E/F/G", ->
      beforeEach ->
        @root.parse_labels_recursive_func "A/B/C/D/E/F/G", @fake_label

      it "C001: simple", ->
        @root.get_label_text().should.equal ""
        @root.get("childrens")["A"].get_label_text().should.equal "A"
        @root.get("childrens")["A"].get("childrens")["B"].get_label_text().should.equal "A/B"
        @root.get("childrens")["A"].get("childrens")["B"].get("childrens")["C"].get_label_text().should.equal "A/B/C"

      it "C002: use parent", ->
        @root
          .get("childrens")["A"]
          .get("childrens")["B"]
