Represents a fan motif.
See the Motifs enumeration for the definition of a fan motif. Note that a fan motif includes both its HeadVertex and its LeafVertices.

This class is designed in a way that guarantees that an instance of the class is a valid fan motif.

Inheritance: Motif
Exemplo n.º 1
0
    TestConstructor()
    {
        IVertex oHeadVertex = new Vertex();
        IVertex oLeafVertex1 = new Vertex();
        IVertex oLeafVertex2 = new Vertex();

        FanMotif oFanMotif = new FanMotif( oHeadVertex,
            new IVertex[] {oLeafVertex1, oLeafVertex2} );

        Assert.AreEqual(oHeadVertex, oFanMotif.HeadVertex);
        Assert.AreEqual(2, oFanMotif.LeafVertices.Length);
        Assert.AreEqual( oLeafVertex1, oFanMotif.LeafVertices[0] );
        Assert.AreEqual( oLeafVertex2, oFanMotif.LeafVertices[1] );
        Assert.AreEqual(1.0, oFanMotif.ArcScale);
    }
Exemplo n.º 2
0
    TestCollapsedAttributes()
    {
        // With head vertex name.

        IVertex oHeadVertex = new Vertex();
        oHeadVertex.Name = "Head";

        IVertex oLeafVertex1 = new Vertex();
        IVertex oLeafVertex2 = new Vertex();

        FanMotif oFanMotif = new FanMotif( oHeadVertex,
            new IVertex[] {oLeafVertex1, oLeafVertex2} );

        String sCollapsedAttributes = oFanMotif.CollapsedAttributes;

        CollapsedGroupAttributes oCollapsedGroupAttributes =
            CollapsedGroupAttributes.FromString(sCollapsedAttributes);

        Assert.AreEqual( CollapsedGroupAttributeValues.FanMotifType,
            oCollapsedGroupAttributes[CollapsedGroupAttributeKeys.Type] );

        Assert.IsTrue(
            oCollapsedGroupAttributes.ContainsKey(
                CollapsedGroupAttributeKeys.HeadVertexName) );

        Assert.AreEqual( "Head",
            oCollapsedGroupAttributes[
                CollapsedGroupAttributeKeys.HeadVertexName] );

        Assert.AreEqual( "2",
            oCollapsedGroupAttributes[
                CollapsedGroupAttributeKeys.LeafVertices] );

        Assert.IsTrue(
            oCollapsedGroupAttributes.ContainsKey(
                CollapsedGroupAttributeKeys.ArcScale) );

        Assert.AreEqual( "1",
            oCollapsedGroupAttributes[CollapsedGroupAttributeKeys.ArcScale] );
    }
Exemplo n.º 3
0
    TestCollapsedAttributes2()
    {
        // Without head vertex name, and with ArcScale set to a non-default
        // value.

        IVertex oHeadVertex = new Vertex();

        IVertex oLeafVertex1 = new Vertex();
        IVertex oLeafVertex2 = new Vertex();

        FanMotif oFanMotif = new FanMotif( oHeadVertex,
            new IVertex[] {oLeafVertex1, oLeafVertex2} );

        oFanMotif.ArcScale = 0.5;

        String sCollapsedAttributes = oFanMotif.CollapsedAttributes;

        CollapsedGroupAttributes oCollapsedGroupAttributes =
            CollapsedGroupAttributes.FromString(sCollapsedAttributes);

        Assert.AreEqual( CollapsedGroupAttributeValues.FanMotifType,
            oCollapsedGroupAttributes[CollapsedGroupAttributeKeys.Type] );

        Assert.IsFalse(
            oCollapsedGroupAttributes.ContainsKey(
                CollapsedGroupAttributeKeys.HeadVertexName) );

        Assert.AreEqual( "2",
            oCollapsedGroupAttributes[
                CollapsedGroupAttributeKeys.LeafVertices] );

        Assert.IsTrue(
            oCollapsedGroupAttributes.ContainsKey(
                CollapsedGroupAttributeKeys.ArcScale) );

        Assert.AreEqual( "0.5",
            oCollapsedGroupAttributes[CollapsedGroupAttributeKeys.ArcScale] );
    }
Exemplo n.º 4
0
    TestAllVertices()
    {
        IVertex oHeadVertex = new Vertex();
        IVertex oLeafVertex1 = new Vertex();
        IVertex oLeafVertex2 = new Vertex();

        FanMotif oFanMotif = new FanMotif( oHeadVertex,
            new IVertex[] {oLeafVertex1, oLeafVertex2} );

        IVertex[] aoVerticesInMotif = oFanMotif.VerticesInMotif;

        Assert.AreEqual(2, aoVerticesInMotif.Length);

        Assert.AreEqual( oHeadVertex, oFanMotif.HeadVertex);

        Assert.AreEqual( oLeafVertex1, aoVerticesInMotif.Single(
            oVertex => oVertex == oLeafVertex1) );

        Assert.AreEqual( oLeafVertex2, aoVerticesInMotif.Single(
            oVertex => oVertex == oLeafVertex2) );
    }