Example #1
0
    public char GenerateMember(Chooser chooser, BinaryDecisionDiagram bdd)
    {
        var num = 0;

        for (var index = 0; index < BitLength; ++index)
        {
            if (index < bdd.Ordinal)
            {
                num |= chooser.ChooseBoolean() ? _bitMaps[index] : 0;
            }
            else if (bdd.FalseCase == BinaryDecisionDiagram.False)
            {
                num |= _bitMaps[index];
                bdd  = bdd.TrueCase;
            }
            else if (bdd.TrueCase == BinaryDecisionDiagram.False)
            {
                bdd = bdd.FalseCase;
            }
            else if (chooser.ChooseBoolean())
            {
                num |= _bitMaps[index];
                bdd  = bdd.TrueCase;
            }
            else
            {
                bdd = bdd.FalseCase;
            }
        }
        return((char)num);
    }