Search in sources :

Example 46 with Expression

use of de.neemann.digital.analyse.expression.Expression in project Digital by hneemann.

the class IndependentCheckerTest method testSimple2.

public void testSimple2() {
    Expression ex = and(a, c, d);
    ContextFiller cf = new ContextFiller(a, b, c, d);
    BoolTableExpression bte = new BoolTableExpression(ex, cf);
    IndependentChecker ic = new IndependentChecker(bte);
    assertEquals(4, ic.getVars());
    assertFalse(ic.isIndependentFrom(0));
    assertTrue(ic.isIndependentFrom(1));
    assertFalse(ic.isIndependentFrom(2));
    assertFalse(ic.isIndependentFrom(3));
}
Also used : Expression(de.neemann.digital.analyse.expression.Expression) ContextFiller(de.neemann.digital.analyse.expression.ContextFiller)

Example 47 with Expression

use of de.neemann.digital.analyse.expression.Expression in project Digital by hneemann.

the class IndependentCheckerTest method testRemoveVar.

public void testRemoveVar() {
    Expression ex = and(a, b, c);
    ContextFiller cf = new ContextFiller(a, b, c, d);
    BoolTableExpression bte = new BoolTableExpression(ex, cf);
    IndependentChecker ic = new IndependentChecker(bte);
    BoolTable btr = ic.removeVar(3);
    assertEquals(8, btr.size());
    for (int i = 0; i < 7; i++) assertEquals(ThreeStateValue.zero, btr.get(i));
    assertEquals(ThreeStateValue.one, btr.get(7));
}
Also used : Expression(de.neemann.digital.analyse.expression.Expression) ContextFiller(de.neemann.digital.analyse.expression.ContextFiller)

Example 48 with Expression

use of de.neemann.digital.analyse.expression.Expression in project Digital by hneemann.

the class MinimizerRegressionTest method performTestCalculation.

/**
 * Generates a expression from the table and then checks if
 * the expression reproduces the given table.
 * Does not test if the expression is minimal.
 *
 * @param n   the number of variables
 * @param tab the truth table
 * @throws ExpressionException
 */
private static void performTestCalculation(int n, byte[] tab, MinimizerInterface minimizer) throws ExpressionException, FormatterException {
    ArrayList<Variable> v = vars(n);
    final ExpressionListenerStore listener = new ExpressionListenerStore(null);
    minimizer.minimize(v, new BoolTableByteArray(tab), "Y", listener);
    Expression e = listener.getFirst();
    assertNotNull(e);
    ContextFiller context = new ContextFiller(v);
    for (int i = 0; i < tab.length; i++) {
        if (tab[i] <= 1)
            assertEquals(tab[i] == 1, e.calculate(context.setContextTo(i)));
    }
}
Also used : Variable(de.neemann.digital.analyse.expression.Variable) Expression(de.neemann.digital.analyse.expression.Expression) ContextFiller(de.neemann.digital.analyse.expression.ContextFiller) ExpressionListenerStore(de.neemann.digital.gui.components.table.ExpressionListenerStore)

Example 49 with Expression

use of de.neemann.digital.analyse.expression.Expression in project Digital by hneemann.

the class SimplifyTest method testSimplify.

public void testSimplify() throws Exception, FormatterException {
    Variable a = v("a");
    Variable b = v("b");
    Expression e = or(and(a, b), a);
    Expression s = QuineMcCluskey.simplify(e);
    assertEquals("a", FormatToExpression.FORMATTER_UNICODE.format(s));
}
Also used : Variable(de.neemann.digital.analyse.expression.Variable) FormatToExpression(de.neemann.digital.analyse.expression.format.FormatToExpression) Expression(de.neemann.digital.analyse.expression.Expression)

Example 50 with Expression

use of de.neemann.digital.analyse.expression.Expression in project Digital by hneemann.

the class SimplifyTest method testSimplify3.

public void testSimplify3() throws Exception {
    Variable a = v("a");
    Variable b = v("b");
    Variable c = v("c");
    Expression e = and(or(a, b), c);
    Expression s = QuineMcCluskey.simplify(e);
    assertTrue(s == e);
}
Also used : Variable(de.neemann.digital.analyse.expression.Variable) FormatToExpression(de.neemann.digital.analyse.expression.format.FormatToExpression) Expression(de.neemann.digital.analyse.expression.Expression)

Aggregations

Expression (de.neemann.digital.analyse.expression.Expression)60 Variable (de.neemann.digital.analyse.expression.Variable)34 FormatToExpression (de.neemann.digital.analyse.expression.format.FormatToExpression)12 Parser (de.neemann.digital.analyse.parser.Parser)11 ContextFiller (de.neemann.digital.analyse.expression.ContextFiller)10 NamedExpression (de.neemann.digital.analyse.expression.NamedExpression)9 ByteArrayOutputStream (java.io.ByteArrayOutputStream)7 Circuit (de.neemann.digital.draw.elements.Circuit)5 ElementLibrary (de.neemann.digital.draw.library.ElementLibrary)5 ModelCreator (de.neemann.digital.draw.model.ModelCreator)5 ShapeFactory (de.neemann.digital.draw.shapes.ShapeFactory)5 ArrayList (java.util.ArrayList)5 TestExecuter (de.neemann.digital.TestExecuter)4 QuineMcCluskey (de.neemann.digital.analyse.quinemc.QuineMcCluskey)3 PrimeSelectorDefault (de.neemann.digital.analyse.quinemc.primeselector.PrimeSelectorDefault)3 TableRow (de.neemann.digital.analyse.quinemc.TableRow)2 Model (de.neemann.digital.core.Model)2 Date (java.util.Date)2 DetermineJKStateMachine (de.neemann.digital.analyse.DetermineJKStateMachine)1 ExpressionException (de.neemann.digital.analyse.expression.ExpressionException)1