### Question:
ModelToVLogConverter { static String[] toVLogFactTuple(final Fact fact) { final List<Term> terms = fact.getArguments(); final String[] vLogFactTuple = new String[terms.size()]; int i = 0; for (final Term term : terms) { if (term instanceof Constant) { vLogFactTuple[i] = TermToVLogConverter.getVLogNameForConstant((Constant) term); } else if (term instanceof NamedNull) { vLogFactTuple[i] = TermToVLogConverter.getVLogNameForNamedNull((NamedNull) term); } else { throw new RulewerkRuntimeException("Terms in facts must be constants or named nulls. Encountered " + term + " of type " + term.getType() + "."); } i++; } return vLogFactTuple; } private  ModelToVLogConverter();  static final String PREDICATE_ARITY_SUFFIX_SEPARATOR; }### Answer:
@Test public void testToVLogFactTupleNulls() { final Skolemization skolemization = new Skolemization(); final UUID uuid = UUID.randomUUID(); final NamedNull n = new RenamedNamedNull(uuid); final Fact atom1 = Expressions.makeFact("p1", Arrays.asList(n)); final String[] expectedTuple = { skolemization.getSkolemConstantName(n) }; final String[] actualTuple = ModelToVLogConverter.toVLogFactTuple(atom1); assertArrayEquals(expectedTuple, actualTuple); }
@Test(expected = RulewerkRuntimeException.class) public void testToVLogFactTupleUnsupported() { class NonValidatingFact extends PositiveLiteralImpl implements Fact { public NonValidatingFact(Predicate predicate, List<Term> terms) { super(predicate, terms); } @Override public <T> T accept(StatementVisitor<T> statementVisitor) { return statementVisitor.visit(this); } } final Variable x = Expressions.makeUniversalVariable("X"); final Fact atom1 = new NonValidatingFact(Expressions.makePredicate("p1", 1), Arrays.asList(x)); ModelToVLogConverter.toVLogFactTuple(atom1); }