func (t *IntTree) isRanged() bool {
	if t == nil {
		return true
	}
	return t.Root.isRanged()
}
Does every node correctly annotate the range of its children.
package interval
import (
	"fmt"
	"math/rand"
	"os"
	"strings"
	"testing"
	"unsafe"
	"gopkg.in/check.v1"
	"github.com/biogo/store/llrb"
)
func (t *IntTree) isBST() bool {
	if t == nil {
		return true
	}
	return t.Root.isBST(t.Min(), t.Max())
}
func (n *IntNode) isBST(min, max IntInterface) bool {
	if n == nil {
		return true
	}
	if n.Elem.Range().Start < min.Range().Start || n.Elem.Range().Start > max.Range().Start {
		return false
	}
	return n.Left.isBST(min, n.Elem) || n.Right.isBST(n.Elem, max)
}
func (t *IntTree) is23_234() bool {
	if t == nil {
		return true
	}
	return t.Root.is23_234()
}
func (n *IntNode) is23_234() bool {
	if n == nil {
		return true
	}
	if Mode == BU23 {
		if (n.Left != nil) && (n.Right != nil) {
			if n.Left.color() == llrb.Red && n.Right.color() == llrb.Red {
				return false
			}
		}
		if n.Right.color() == llrb.Red {
			return false
		}
	} else if Mode == TD234 {
		if n.Right.color() == llrb.Red && n.Left.color() == llrb.Black {
			return false
		}
	} else {
		panic("cannot reach")
	}
	if n.color() == llrb.Red && n.Left.color() == llrb.Red {
		return false
	}
	return n.Left.is23_234() && n.Right.is23_234()
}
func (t *IntTree) isBalanced() bool {
	if t == nil {
		return true
	}
	var black int  
	for x := t.Root; x != nil; x = x.Left {
		if x.color() == llrb.Black {
			black++
		}
	}
	return t.Root.isBalanced(black)
}
func (n *IntNode) isBalanced(black int) bool {
	if n == nil && black == 0 {
		return true
	} else if n == nil && black != 0 {
		return false
	}
	if n.color() == llrb.Black {
		black--
	}
	return n.Left.isBalanced(black) && n.Right.isBalanced(black)
}