From ec66af1a7ba32048fd0a695895eb46d7a3e4abbd Mon Sep 17 00:00:00 2001 From: amandelpie Date: Wed, 30 Nov 2022 14:38:18 +0300 Subject: [PATCH 1/2] Split settings and move out --- .../kotlin/org/utbot/framework/UtSettings.kt | 36 ++++++++++++++--- ...ttings.kt => DBSCANClusteringConstants.kt} | 39 ++----------------- .../kotlin/org/utbot/summary/Summarization.kt | 29 +++++++------- .../kotlin/org/utbot/summary/TagGenerator.kt | 2 +- .../summary/clustering/MatrixUniqueness.kt | 6 +-- .../fuzzer/names/ModelBasedNameSuggester.kt | 12 +++--- 6 files changed, 58 insertions(+), 66 deletions(-) rename utbot-summary/src/main/kotlin/org/utbot/summary/{UtSummarySettings.kt => DBSCANClusteringConstants.kt} (51%) diff --git a/utbot-framework-api/src/main/kotlin/org/utbot/framework/UtSettings.kt b/utbot-framework-api/src/main/kotlin/org/utbot/framework/UtSettings.kt index 004d850efa..f7c4fcb793 100644 --- a/utbot-framework-api/src/main/kotlin/org/utbot/framework/UtSettings.kt +++ b/utbot-framework-api/src/main/kotlin/org/utbot/framework/UtSettings.kt @@ -132,11 +132,6 @@ object UtSettings : AbstractSettings( var testName by getBooleanProperty(true) var testDisplayName by getBooleanProperty(true) - /** - * Generate summaries using plugin's custom JavaDoc tags. - */ - var useCustomJavaDocTags by getBooleanProperty(true) - /** * Enable the Summarization module to generate summaries for methods under test. * True by default. @@ -145,6 +140,36 @@ object UtSettings : AbstractSettings( */ var enableSummariesGeneration by getBooleanProperty(true) + /** + * If True test comments will be generated. + */ + var enableJavaDocGeneration = true + + /** + * If True cluster comments will be generated. + */ + var enableClusterCommentsGeneration = true + + /** + * If True names for tests will be generated. + */ + var enableTestNamesGeneration = true + + /** + * If True display names for tests will be generated. + */ + var enableDisplayNameGeneration = true + + /** + * If True display name in from -> to style will be generated. + */ + var useDisplayNameArrowStyle = true + + /** + * Generate summaries using plugin's custom JavaDoc tags. + */ + var useCustomJavaDocTags by getBooleanProperty(true) + /** * Options below regulate which [NullPointerException] check should be performed. * @@ -169,7 +194,6 @@ object UtSettings : AbstractSettings( */ var substituteStaticsWithSymbolicVariable by getBooleanProperty(true) - /** * Use concrete execution. * diff --git a/utbot-summary/src/main/kotlin/org/utbot/summary/UtSummarySettings.kt b/utbot-summary/src/main/kotlin/org/utbot/summary/DBSCANClusteringConstants.kt similarity index 51% rename from utbot-summary/src/main/kotlin/org/utbot/summary/UtSummarySettings.kt rename to utbot-summary/src/main/kotlin/org/utbot/summary/DBSCANClusteringConstants.kt index c2150d33bc..81929cf56f 100644 --- a/utbot-summary/src/main/kotlin/org/utbot/summary/UtSummarySettings.kt +++ b/utbot-summary/src/main/kotlin/org/utbot/summary/DBSCANClusteringConstants.kt @@ -1,56 +1,25 @@ package org.utbot.summary -object UtSummarySettings { - /** - * If True test comments will be generated. - */ - var GENERATE_COMMENTS = true - - /** - * If True cluster comments will be generated. - */ - var GENERATE_CLUSTER_COMMENTS = true - - /** - * If True names for tests will be generated. - */ - var GENERATE_NAMES = true - - /** - * If True display names for tests will be generated. - */ - var GENERATE_DISPLAY_NAMES = true - - /** - * If True display name in from -> to style will be generated. - */ - var GENERATE_DISPLAYNAME_FROM_TO_STYLE = true - - /** - * If True mutation descriptions for tests will be generated - * TODO: implement - */ - var GENERATE_MUTATION_DESCRIPTIONS = true - +object DBSCANClusteringConstants { /** * Sets minimum number of successful execution * for applying the clustering algorithm. */ - const val MIN_NUMBER_OF_EXECUTIONS_FOR_CLUSTERING: Int = 4 + internal const val MIN_NUMBER_OF_EXECUTIONS_FOR_CLUSTERING: Int = 4 /** * DBSCAN hyperparameter. * * Sets minimum number of executions to form a cluster. */ - var MIN_EXEC_DBSCAN: Int = 2 + internal const val MIN_EXEC_DBSCAN: Int = 2 /** * DBSCAN hyperparameter. * * Sets radius of search for algorithm. */ - var RADIUS_DBSCAN: Float = 5.0f + internal const val RADIUS_DBSCAN: Float = 5.0f } object SummarySentenceConstants { diff --git a/utbot-summary/src/main/kotlin/org/utbot/summary/Summarization.kt b/utbot-summary/src/main/kotlin/org/utbot/summary/Summarization.kt index a9777a78a9..e6b9e441b9 100644 --- a/utbot-summary/src/main/kotlin/org/utbot/summary/Summarization.kt +++ b/utbot-summary/src/main/kotlin/org/utbot/summary/Summarization.kt @@ -8,11 +8,6 @@ import org.utbot.framework.plugin.api.UtExecutionCluster import org.utbot.framework.plugin.api.UtMethodTestSet import org.utbot.instrumentation.instrumentation.instrumenter.Instrumenter import org.utbot.summary.SummarySentenceConstants.NEW_LINE -import org.utbot.summary.UtSummarySettings.GENERATE_CLUSTER_COMMENTS -import org.utbot.summary.UtSummarySettings.GENERATE_COMMENTS -import org.utbot.summary.UtSummarySettings.GENERATE_DISPLAYNAME_FROM_TO_STYLE -import org.utbot.summary.UtSummarySettings.GENERATE_DISPLAY_NAMES -import org.utbot.summary.UtSummarySettings.GENERATE_NAMES import org.utbot.summary.analysis.ExecutionStructureAnalysis import org.utbot.summary.ast.JimpleToASTMap import org.utbot.summary.ast.SourceCodeParser @@ -23,6 +18,12 @@ import java.io.File import java.nio.file.Path import java.nio.file.Paths import mu.KotlinLogging +import org.utbot.framework.UtSettings.enableClusterCommentsGeneration +import org.utbot.framework.UtSettings.enableJavaDocGeneration +import org.utbot.framework.UtSettings.useDisplayNameArrowStyle +import org.utbot.framework.UtSettings.enableDisplayNameGeneration +import org.utbot.framework.UtSettings.enableTestNamesGeneration +import org.utbot.framework.UtSettings.useCustomJavaDocTags import org.utbot.framework.plugin.api.util.jClass import org.utbot.fuzzer.FuzzedMethodDescription import org.utbot.fuzzer.FuzzedValue @@ -86,7 +87,7 @@ class Summarization(val sourceFile: File?, val invokeDescriptions: List 0) + return if (enableClusterCommentsGeneration && executionClusters.size > 0) executionClusters else listOf(UtExecutionCluster(UtClusterInfo(), testSet.executions)) @@ -110,9 +111,9 @@ class Summarization(val sourceFile: File?, val invokeDescriptions: List 1 // there is more than one successful execution && clusterTraceTags.traceTags.size > 1 // add if there is more than 1 execution ) { @@ -130,8 +131,8 @@ class Summarization(val sourceFile: File?, val invokeDescriptions: List) { /** Returns map: cluster identifier, List. */ fun dbscanClusterExecutions( methodExecutions: List, - minPts: Int = UtSummarySettings.MIN_EXEC_DBSCAN, - radius: Float = UtSummarySettings.RADIUS_DBSCAN + minPts: Int = DBSCANClusteringConstants.MIN_EXEC_DBSCAN, + radius: Float = DBSCANClusteringConstants.RADIUS_DBSCAN ): Map> { val executionPaths = methodExecutions.map { it.path.asIterable() }.toTypedArray() diff --git a/utbot-summary/src/main/kotlin/org/utbot/summary/fuzzer/names/ModelBasedNameSuggester.kt b/utbot-summary/src/main/kotlin/org/utbot/summary/fuzzer/names/ModelBasedNameSuggester.kt index 9b03251569..d7390ca2ae 100644 --- a/utbot-summary/src/main/kotlin/org/utbot/summary/fuzzer/names/ModelBasedNameSuggester.kt +++ b/utbot-summary/src/main/kotlin/org/utbot/summary/fuzzer/names/ModelBasedNameSuggester.kt @@ -7,7 +7,6 @@ import org.utbot.fuzzer.FuzzedMethodDescription import org.utbot.fuzzer.FuzzedValue import org.utbot.summary.SummarySentenceConstants.FROM_TO_NAMES_COLON import org.utbot.summary.SummarySentenceConstants.FROM_TO_NAMES_TRANSITION -import org.utbot.summary.UtSummarySettings import org.utbot.summary.comment.classic.fuzzer.SimpleCommentForTestProducedByFuzzerBuilder import org.utbot.summary.comment.customtags.fuzzer.CommentWithCustomTagForTestProducedByFuzzerBuilder import java.util.* @@ -35,9 +34,9 @@ class ModelBasedNameSuggester( return sequenceOf( TestSuggestedInfo( - testName = if (UtSummarySettings.GENERATE_NAMES) createTestName(description, values, result) else null, - displayName = if (UtSummarySettings.GENERATE_DISPLAY_NAMES) createDisplayName(description, values, result) else null, - javaDoc = if (UtSummarySettings.GENERATE_COMMENTS) createJavaDoc(description, values, result) else null + testName = if (UtSettings.enableTestNamesGeneration) createTestName(description, values, result) else null, + displayName = if (UtSettings.enableDisplayNameGeneration) createDisplayName(description, values, result) else null, + javaDoc = if (UtSettings.enableJavaDocGeneration) createJavaDoc(description, values, result) else null ) ) } @@ -108,14 +107,14 @@ class ModelBasedNameSuggester( * 2. **Name without appropriate information**: `arg_0 = 0 and others -> return 0` * * NOTE: The ```:``` symbol is used as a separator instead - * of ```->``` if the [UtSummarySettings.GENERATE_DISPLAYNAME_FROM_TO_STYLE] is false. + * of ```->``` if the [UtSettings.GENERATE_DISPLAYNAME_FROM_TO_STYLE] is false. */ private fun createDisplayName( description: FuzzedMethodDescription, values: List, result: UtExecutionResult? ): String { - val displayNameSeparator = if (UtSummarySettings.GENERATE_DISPLAYNAME_FROM_TO_STYLE) FROM_TO_NAMES_TRANSITION else FROM_TO_NAMES_COLON + val displayNameSeparator = if (UtSettings.useDisplayNameArrowStyle) FROM_TO_NAMES_TRANSITION else FROM_TO_NAMES_COLON val summaries = values.asSequence() .mapIndexed { index, value -> @@ -183,5 +182,4 @@ class ModelBasedNameSuggester( .filter { it.isUpperCase() } .joinToString(separator = "") } - } \ No newline at end of file From 08683a0647224890599a428b372638dbf62b1083 Mon Sep 17 00:00:00 2001 From: amandelpie Date: Fri, 2 Dec 2022 12:22:12 +0300 Subject: [PATCH 2/2] Fixed the loading from the file --- .../src/main/kotlin/org/utbot/framework/UtSettings.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/utbot-framework-api/src/main/kotlin/org/utbot/framework/UtSettings.kt b/utbot-framework-api/src/main/kotlin/org/utbot/framework/UtSettings.kt index f7c4fcb793..115ce154cc 100644 --- a/utbot-framework-api/src/main/kotlin/org/utbot/framework/UtSettings.kt +++ b/utbot-framework-api/src/main/kotlin/org/utbot/framework/UtSettings.kt @@ -143,27 +143,27 @@ object UtSettings : AbstractSettings( /** * If True test comments will be generated. */ - var enableJavaDocGeneration = true + var enableJavaDocGeneration by getBooleanProperty(true) /** * If True cluster comments will be generated. */ - var enableClusterCommentsGeneration = true + var enableClusterCommentsGeneration by getBooleanProperty(true) /** * If True names for tests will be generated. */ - var enableTestNamesGeneration = true + var enableTestNamesGeneration by getBooleanProperty(true) /** * If True display names for tests will be generated. */ - var enableDisplayNameGeneration = true + var enableDisplayNameGeneration by getBooleanProperty(true) /** * If True display name in from -> to style will be generated. */ - var useDisplayNameArrowStyle = true + var useDisplayNameArrowStyle by getBooleanProperty(true) /** * Generate summaries using plugin's custom JavaDoc tags.