Exemple #1
0
def test_main_stop_after_uncrecognized(abc_instance_file):
    """Test that --stop_after raises an error on unknown."""
    app.FLAGS.unparse_flags()
    app.FLAGS(
        ['argv[0]', '--config', abc_instance_file, '--stop_after', 'foo'])
    with pytest.raises(app.UsageError):
        clgen.main([])
Exemple #2
0
def test_main_no_config_flag():
  """Test that UsageError is raised if --config flag not set."""
  with test.Raises(app.UsageError) as e_info:
    clgen.main()
  assert "CLgen --config file not found: '/clgen/config.pbtxt'" == str(
    e_info.value
  )
Exemple #3
0
def test_main_min_samples(abc_instance_file):
  """Test that min_samples samples are produced."""
  FLAGS.unparse_flags()
  FLAGS(["argv0"])
  FLAGS.config = abc_instance_file
  FLAGS.min_samples = 1
  clgen.main()
Exemple #4
0
def test_main_print_cache_invalid_argument(abc_instance_file):
    """Test that UsageError raised if --print_cache_path arg not valid."""
    app.FLAGS.unparse_flags()
    app.FLAGS(
        ['argv[0]', '--config', abc_instance_file, '--print_cache_path=foo'])
    with pytest.raises(app.UsageError) as e_info:
        clgen.main([])
    assert "Invalid --print_cache_path argument: 'foo'" == str(e_info.value)
Exemple #5
0
def test_main_config_file_not_found():
    """Test that UsageError is raised if --config flag not found."""
    with tempfile.TemporaryDirectory() as d:
        flags.FLAGS.unparse_flags()
        flags.FLAGS(['argv[0]', '--config', f'{d}/config.pbtxt'])
        with pytest.raises(app.UsageError) as e_info:
            clgen.main(['argv[0]'])
        assert f"File not found: '{d}/config.pbtxt'" == str(e_info.value)
Exemple #6
0
def test_main_stop_after_uncrecognized(abc_instance_file):
  """Test that --stop_after raises an error on unknown."""
  FLAGS.unparse_flags()
  FLAGS(["argv0"])
  FLAGS.config = abc_instance_file
  FLAGS.stop_after = "foo"
  with test.Raises(app.UsageError):
    clgen.main()
Exemple #7
0
def test_main_print_cache_path_model(abc_instance_file, capsys):
    """Test that --print_cache_path=model prints directory path."""
    app.FLAGS.unparse_flags()
    app.FLAGS(
        ['argv[0]', '--config', abc_instance_file, '--print_cache_path=model'])
    clgen.main([])
    out, err = capsys.readouterr()
    assert '/model/' in out
    assert pathlib.Path(out.strip()).is_dir()
Exemple #8
0
def test_main_stop_after_corpus(abc_instance_file):
    """Test that --stop_after corpus prevents model training."""
    app.FLAGS.unparse_flags()
    app.FLAGS(
        ['argv[0]', '--config', abc_instance_file, '--stop_after', 'corpus'])
    clgen.main([])
    instance = clgen.Instance(
        pbutil.FromFile(pathlib.Path(abc_instance_file), clgen_pb2.Instance()))
    assert not instance.model.is_trained
Exemple #9
0
def test_main_stop_after_train(abc_instance_file):
    """Test that --stop_after train trains the model."""
    app.FLAGS.unparse_flags()
    app.FLAGS(
        ['argv[0]', '--config', abc_instance_file, '--stop_after', 'train'])
    clgen.main([])
    instance = clgen.Instance(
        pbutil.FromFile(pathlib.Path(abc_instance_file), clgen_pb2.Instance()))
    assert instance.model.is_trained
Exemple #10
0
def test_main_print_cache_invalid_argument(abc_instance_file):
  """Test that UsageError raised if --print_cache_path arg not valid."""
  FLAGS.unparse_flags()
  FLAGS(["argv0"])
  FLAGS.config = abc_instance_file
  FLAGS.print_cache_path = "foo"
  with test.Raises(app.UsageError) as e_info:
    clgen.main()
  assert "Invalid --print_cache_path argument: 'foo'" == str(e_info.value)
Exemple #11
0
def test_main_config_file_not_found():
  """Test that UsageError is raised if --config flag not found."""
  with tempfile.TemporaryDirectory() as d:
    app.FLAGS.unparse_flags()
    app.FLAGS(["argv[0]", "--config", f"{d}/config.pbtxt"])
    with test.Raises(app.UsageError) as e_info:
      clgen.main(["argv[0]"])
    assert f"CLgen --config file not found: '{d}/config.pbtxt'" == str(
      e_info.value
    )
Exemple #12
0
def test_main_print_cache_path_model(abc_instance_file, capsys):
  """Test that --print_cache_path=model prints directory path."""
  FLAGS.unparse_flags()
  FLAGS(["argv0"])
  FLAGS.config = abc_instance_file
  FLAGS.print_cache_path = "model"
  clgen.main()
  out, err = capsys.readouterr()
  assert "/model/" in out
  assert pathlib.Path(out.strip()).is_dir()
Exemple #13
0
def test_main_print_cache_path_corpus(abc_instance_file, capsys):
  """Test that --print_cache_path=corpus prints directory path."""
  app.FLAGS.unparse_flags()
  app.FLAGS(
    ["argv[0]", "--config", abc_instance_file, "--print_cache_path=corpus"]
  )
  clgen.main([])
  out, err = capsys.readouterr()
  assert "/corpus/" in out
  assert pathlib.Path(out.strip()).is_dir()
Exemple #14
0
def test_main_stop_after_train(abc_instance_file):
  """Test that --stop_after train trains the model."""
  FLAGS.unparse_flags()
  FLAGS(["argv0"])
  FLAGS.config = abc_instance_file
  FLAGS.stop_after = "train"
  clgen.main()
  instance = clgen.Instance(
    pbutil.FromFile(pathlib.Path(abc_instance_file), clgen_pb2.Instance())
  )
  assert instance.model.is_trained
Exemple #15
0
def test_main_stop_after_corpus(abc_instance_file):
  """Test that --stop_after corpus prevents model training."""
  FLAGS.unparse_flags()
  FLAGS(["argv0"])
  FLAGS.config = abc_instance_file
  FLAGS.stop_after = "corpus"
  clgen.main()
  instance = clgen.Instance(
    pbutil.FromFile(pathlib.Path(abc_instance_file), clgen_pb2.Instance())
  )
  assert not instance.model.is_trained
Exemple #16
0
def test_main_print_cache_path_sampler(abc_instance_file, capsys):
  """Test that --print_cache_path=sampler prints directory path."""
  FLAGS.unparse_flags()
  FLAGS(["argv0"])
  FLAGS.config = abc_instance_file
  FLAGS.print_cache_path = "sampler"
  clgen.main()
  out, err = capsys.readouterr()
  assert "/samples/" in out
  # A sampler's cache isn't created until Sample() is called.
  assert not pathlib.Path(out.strip()).is_dir()
Exemple #17
0
def test_main_print_cache_path_sampler(abc_instance_file, capsys):
    """Test that --print_cache_path=sampler prints directory path."""
    app.FLAGS.unparse_flags()
    app.FLAGS([
        'argv[0]', '--config', abc_instance_file, '--print_cache_path=sampler'
    ])
    clgen.main([])
    out, err = capsys.readouterr()
    assert '/samples/' in out
    # A sampler's cache isn't created until Sample() is called.
    assert not pathlib.Path(out.strip()).is_dir()
Exemple #18
0
def test_main_print_cache_path_corpus(abc_instance_file, capsys):
  """Test that --print_cache_path=corpus prints directory path."""
  FLAGS.unparse_flags()
  FLAGS(["argv0"])
  FLAGS.config = abc_instance_file
  FLAGS.print_cache_path = "corpus"
  clgen.main()
  out, err = capsys.readouterr()
  print("OUT", out)
  assert "/corpus/" in out
  path = out.strip()
  assert pathlib.Path(path).is_dir()
Exemple #19
0
def test_main_min_samples(abc_instance_file):
  """Test that min_samples samples are produced."""
  app.FLAGS.unparse_flags()
  app.FLAGS(["argv[0]", "--config", abc_instance_file, "--min_samples", "1"])
  clgen.main([])
Exemple #20
0
def test_main_stop_after_uncrecognized(abc_instance_file):
  """Test that --stop_after raises an error on unknown."""
  app.FLAGS.unparse_flags()
  app.FLAGS(["argv[0]", "--config", abc_instance_file, "--stop_after", "foo"])
  with test.Raises(app.UsageError):
    clgen.main([])
Exemple #21
0
def test_main_no_config_flag():
    """Test that UsageError is raised if --config flag not set."""
    with pytest.raises(app.UsageError) as e_info:
        clgen.main(['argv[0]'])
    assert "Missing required argument: '--config'" == str(e_info.value)
Exemple #22
0
def test_main_min_samples(abc_instance_file):
    """Test that min_samples samples are produced."""
    app.FLAGS.unparse_flags()
    app.FLAGS(['argv[0]', '--config', abc_instance_file, '--min_samples', '1'])
    clgen.main([])
Exemple #23
0
def test_main_unrecognized_arguments():
    """Test that UsageError is raised if arguments are not recognized."""
    with pytest.raises(app.UsageError) as e_info:
        clgen.main(['argv[0]', '--foo', '--bar'])
    assert "Unrecognized command line options: '--foo --bar'" == str(
        e_info.value)