1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
/******************************************************************************
* Top contributors (to current version):
* Mudathir Mohamed, Andrew Reynolds, Aina Niemetz
*
* This file is part of the cvc5 project.
*
* Copyright (c) 2009-2025 by the authors listed in the file AUTHORS
* in the top-level source directory and their institutional affiliations.
* All rights reserved. See the file COPYING in the top-level source
* directory for licensing information.
* ****************************************************************************
*
* Black box testing of Command.
*/
package tests;
import static org.junit.jupiter.api.Assertions.*;
import io.github.cvc5.*;
import io.github.cvc5.modes.*;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
class CommandTest extends ParserTest
{
Command parseCommand(String cmdStr)
{
InputParser parser = new InputParser(d_solver, d_symman);
parser.setIncrementalStringInput(InputLanguage.SMT_LIB_2_6, "command_black");
parser.appendIncrementalStringInput(cmdStr);
return parser.nextCommand();
}
@Test
void invoke()
{
Command cmd;
// set logic command can be executed
cmd = parseCommand("(set-logic QF_LIA)");
assertNotEquals(cmd.isNull(), true);
cmd.invoke(d_solver, d_symman);
// get model not available
cmd = parseCommand("(get-model)");
assertNotEquals(cmd.isNull(), true);
String result = cmd.invoke(d_solver, d_symman);
assertEquals(
"(error \"cannot get model unless model generation is enabled (try --produce-models)\")\n",
result);
// logic already set
assertThrows(CVC5ParserException.class, () -> parseCommand("(set-logic QF_LRA)"));
}
@Test
void commandToString()
{
Command cmd;
cmd = parseCommand("(set-logic QF_LIA )");
assertNotEquals(cmd.isNull(), true);
// note normalizes wrt whitespace
assertEquals(cmd.toString(), "(set-logic QF_LIA)");
}
@Test
void getCommandName()
{
Command cmd;
cmd = parseCommand("(get-model)");
assertNotEquals(cmd.isNull(), true);
assertEquals(cmd.getCommandName(), "get-model");
}
}
|