def test_transformations_help(self): subcommands = cmdline.find_methods_in_package(transformations, cmdline.is_cnf_transformation_subcommand) for sc in subcommands: with self.assertRaises(SystemExit) as cm: cnfformula.cnfgen(["cnfgen", "and", "0", "0" ,"-T", sc.name, "-h"]) self.assertEqual(cm.exception.code, 0)
def test_transformations_help(self): subcommands = cmdline.find_methods_in_package( transformations, cmdline.is_cnf_transformation_subcommand) for sc in subcommands: with self.assertRaises(SystemExit) as cm: cnfformula.cnfgen( ["cnfgen", "and", "0", "0", "-T", sc.name, "-h"]) self.assertEqual(cm.exception.code, 0)
def setup_command_line(parser): """Setup general command line options Arguments: - `parser`: parser to fill with options """ parser.add_argument( '--input', '-i', type=argparse.FileType('r', 0), metavar="<input>", default='-', help="""Input file. The input formula is read as a dimacs CNF file file instead of standard input. Setting '<input>' to '-' is another way to read from standard input. (default: -) """) parser.add_argument('--output', '-o', type=argparse.FileType('wb', 0), metavar="<output>", default='-', help="""Output file. The formula is saved on file instead of being sent to standard output. Setting '<output>' to '-' is another way to send the formula to standard output. (default: -) """) parser.add_argument('--quiet', '-q', action='store_false', default=True, dest='verbose', help="""Output just the formula with no header.""") # Cmdline parser for formula transformations from cnfformula import transformations from cnfformula.cmdline import is_cnf_transformation_subcommand from cnfformula.cmdline import find_methods_in_package subparsers = parser.add_subparsers(title="Available transformation", metavar="<transformation>") for sc in find_methods_in_package(transformations, is_cnf_transformation_subcommand, sortkey=lambda x: x.name): p = subparsers.add_parser(sc.name, help=sc.description) sc.setup_command_line(p) p.set_defaults(transformation=sc)
def setup_command_line(parser): """Setup general command line options Arguments: - `parser`: parser to fill with options """ parser.add_argument('--input','-i', type=argparse.FileType('r',0), metavar="<input>", default='-', help="""Input file. The input formula is read as a dimacs CNF file file instead of standard input. Setting '<input>' to '-' is another way to read from standard input. (default: -) """) parser.add_argument('--output','-o', type=argparse.FileType('wb',0), metavar="<output>", default='-', help="""Output file. The formula is saved on file instead of being sent to standard output. Setting '<output>' to '-' is another way to send the formula to standard output. (default: -) """) parser.add_argument('--quiet', '-q',action='store_false',default=True,dest='verbose', help="""Output just the formula with no header.""") # Cmdline parser for formula transformations from cnfformula import transformations from cnfformula.cmdline import is_cnf_transformation_subcommand from cnfformula.cmdline import find_methods_in_package subparsers = parser.add_subparsers(title="Available transformation", metavar="<transformation>") for sc in find_methods_in_package(transformations, is_cnf_transformation_subcommand, sortkey=lambda x:x.name): p=subparsers.add_parser(sc.name,help=sc.description) sc.setup_command_line(p) p.set_defaults(transformation=sc)
def test_find_formula_families(self): subcommands = cmdline.find_methods_in_package(families,cmdline.is_cnfgen_subcommand) self.assertNotEqual(subcommands[:],[])
def test_find_formula_transformations(self): subcommands = cmdline.find_methods_in_package( transformations, cmdline.is_cnf_transformation_subcommand) self.assertNotEqual(subcommands[:], [])
def test_find_formula_transformations(self): subcommands = cmdline.find_methods_in_package(transformations, cmdline.is_cnf_transformation_subcommand) self.assertNotEqual(subcommands[:],[])