///////////////////////////////////////////////////////////////////////
        /// <summary>Adds element from the gm: namespace</summary>
        ///////////////////////////////////////////////////////////////////////
        internal bool AddFromMetaNamespace(XmlNode node)
        {
            if (String.Compare(node.NamespaceURI,
                               GBaseNameTable.NSGBaseMeta, true) == 0)
            {
                switch (node.LocalName)
                {
                case "item_type":
                    ExtensionElements.Add(MetadataItemType.Parse(node));
                    break;

                case "attributes":
                    ExtensionElements.Add(ItemTypeAttributes.Parse(node));
                    break;

                case "attribute":
                    ExtensionElements.Add(AttributeHistogram.Parse(node));
                    break;

                case "stats":
                    ExtensionElements.Add(Stats.Parse(node));
                    break;

                default:
                    return(false);
                }
                return(true);
            }
            return(false);
        }
        public void testGetSetAttributeHistogram()
        {
            AttributeHistogram xHistogram = new AttributeHistogram("x",
                                            GBaseAttributeType.Int,
                                            2);
            AttributeHistogram yHistogram = new AttributeHistogram("x",
                                            GBaseAttributeType.Int,
                                            2);
            GBaseEntry entry = new GBaseEntry();
            Assert.IsNull(entry.AttributeHistogram);

            entry.AttributeHistogram = xHistogram;

            Assert.AreEqual(xHistogram, entry.AttributeHistogram);

            entry.AttributeHistogram = yHistogram;

            Assert.AreEqual(yHistogram, entry.AttributeHistogram);

            entry.AttributeHistogram = null;

            Assert.AreEqual(null, entry.AttributeHistogram);
        }
        public void TestGenerate()
        {
            HistogramValue[] values = { new HistogramValue("a", 10),
                                        new HistogramValue("b", 12) };
            AttributeHistogram original =
                new AttributeHistogram("xxx", GBaseAttributeType.Text, 1000, new List<HistogramValue>(values));

            StringWriter sWriter = new StringWriter();
            XmlWriter xmlWriter = new XmlTextWriter(sWriter);
            original.Save(xmlWriter);
            xmlWriter.Close();

            AttributeHistogram parsed = Parse(sWriter.ToString());

            Assert.AreEqual("xxx", parsed.Name, "name");
            Assert.AreEqual(1000, parsed.Count, "count");
            Assert.AreEqual(GBaseAttributeType.Text, parsed.Type, "type");

            List<HistogramValue> parsedValues = parsed.Values;
            Assert.AreEqual("a", parsedValues[0].Content, "values[0].Name");
            Assert.AreEqual(10, parsedValues[0].Count, "values[0].Count");
            Assert.AreEqual("b", parsedValues[1].Content, "values[1].Name");
            Assert.AreEqual(12, parsedValues[1].Count, "values[1].Count");
        }