func checkCodeBook(t *testing.T, protocolVersion byte, maxCodePage byte, expectedCodePageCounts map[byte]int) {
	var (
		cb *wbxml.CodeBook = MakeCodeBook(protocolVersion)
		i  byte
	)

	if !cb.IsReady() {
		t.Error("CodeBook should be ready")
	}

	for i = 0; i < 25; i++ {
		if i != 3 && i < maxCodePage {
			checkCodePage(t, cb, i, expectedCodePageCounts)
		} else {
			checkHasNotCodePage(t, cb, i)
		}
	}
}
func checkHasNotCodePage(t *testing.T, cb *wbxml.CodeBook, code byte) {
	if cb.HasTagCode(code) {
		t.Errorf("codebook should NOT have tag code page %d!", code)
	}
}
func checkCodePage(t *testing.T, cb *wbxml.CodeBook, code byte, expectedCount map[byte]int) {
	if !cb.HasTagCode(code) {
		t.Errorf("codebook should have tag code page %d!", code)
	}
	checkCodePageCount(t, cb.TagCodePages[code], expectedCount)
}