### Question:
KompileOptions implements Serializable { public String mainModule(FileUtil files) { if (mainModule == null) { return FilenameUtils.getBaseName(outerParsing.mainDefinitionFile(files).getName()).toUpperCase(); } return mainModule; }  String docStyle(); String mainModule(FileUtil files); String syntaxModule(FileUtil files); boolean strict(); @ParametersDelegate
    transient GlobalOptions global; @ParametersDelegate
    public OuterParsingOptions outerParsing; @Parameter(names="--backend", description="Choose a backend. <backend> is one of [coq|java|skala]. Each creates the kompiled K definition.")
    public String backend; @Parameter(names="--transition", listConverter=StringListConverter.class, description="<string> is a whitespace-separated list of tags designating rules to become transitions.")
    public List<String> transition; static final String DEFAULT_TRANSITION; @ParametersDelegate
    public Experimental experimental; }### Answer:
@Test public void testDefaultModuleName() { parse("foo.k"); assertEquals("FOO", options.mainModule(files)); }