Skip to content

Commit 15772d6

Browse files
authored
Added a few tests to check generated clustering comments #384 (#595)
* Added a few tests to check generated clustering comments * Removed empty lines * Fixed review comments
1 parent 4f1c7f5 commit 15772d6

File tree

10 files changed

+123
-93
lines changed

10 files changed

+123
-93
lines changed

utbot-summary-tests/src/test/kotlin/examples/SummaryTestCaseGeneratorTest.kt

Lines changed: 41 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,16 @@ import org.utbot.common.WorkaroundReason
55
import org.utbot.common.workaround
66
import org.utbot.examples.UtValueTestCaseChecker
77
import org.utbot.examples.CoverageMatcher
8-
import org.utbot.examples.DoNotCalculate
98
import org.utbot.framework.UtSettings.checkNpeInNestedMethods
109
import org.utbot.framework.UtSettings.checkNpeInNestedNotPrivateMethods
1110
import org.utbot.framework.UtSettings.checkSolverTimeoutMillis
1211
import org.utbot.framework.codegen.TestExecution
13-
import org.utbot.framework.plugin.api.CodegenLanguage
14-
import org.utbot.framework.plugin.api.MockStrategyApi
15-
import org.utbot.framework.plugin.api.UtExecution
16-
import org.utbot.framework.plugin.api.UtMethod
12+
import org.utbot.framework.plugin.api.*
1713
import org.utbot.framework.plugin.api.util.UtContext
1814
import org.utbot.summary.comment.nextSynonyms
1915
import org.utbot.summary.summarize
2016
import kotlin.reflect.KClass
2117
import kotlin.reflect.KFunction
22-
import kotlin.reflect.KFunction1
23-
import kotlin.reflect.KFunction2
24-
import kotlin.reflect.KFunction3
25-
import kotlin.reflect.KFunction4
2618

2719

2820
private const val NEW_LINE = "\n"
@@ -50,49 +42,14 @@ open class SummaryTestCaseGeneratorTest(
5042
cookie.close()
5143
}
5244

53-
protected inline fun <reified R> checkNoArguments(
54-
method: KFunction1<*, R>,
55-
coverage: CoverageMatcher = DoNotCalculate,
56-
mockStrategy: MockStrategyApi = MockStrategyApi.NO_MOCKS,
57-
summaryKeys: List<String>,
58-
methodNames: List<String> = listOf(),
59-
displayNames: List<String> = listOf()
60-
) = check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
61-
62-
protected inline fun <reified T, reified R> checkOneArgument(
63-
method: KFunction2<*, T, R>,
64-
coverage: CoverageMatcher = DoNotCalculate,
65-
mockStrategy: MockStrategyApi = MockStrategyApi.NO_MOCKS,
66-
summaryKeys: List<String>,
67-
methodNames: List<String> = listOf(),
68-
displayNames: List<String> = listOf()
69-
) = check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
70-
71-
protected inline fun <reified T1, reified T2, reified R> checkTwoArguments(
72-
method: KFunction3<*, T1, T2, R>,
73-
coverage: CoverageMatcher = DoNotCalculate,
74-
mockStrategy: MockStrategyApi = MockStrategyApi.NO_MOCKS,
75-
summaryKeys: List<String>,
76-
methodNames: List<String> = listOf(),
77-
displayNames: List<String> = listOf()
78-
) = check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
79-
80-
protected inline fun <reified T1, reified T2, reified T3, reified R> checkThreeArguments(
81-
method: KFunction4<*, T1, T2, T3, R>,
82-
coverage: CoverageMatcher = DoNotCalculate,
83-
mockStrategy: MockStrategyApi = MockStrategyApi.NO_MOCKS,
84-
summaryKeys: List<String>,
85-
methodNames: List<String> = listOf(),
86-
displayNames: List<String> = listOf()
87-
) = check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
88-
89-
inline fun <reified R> check(
45+
inline fun <reified R> summaryCheck(
9046
method: KFunction<R>,
9147
mockStrategy: MockStrategyApi,
9248
coverageMatcher: CoverageMatcher,
9349
summaryKeys: List<String>,
94-
methodNames: List<String>,
95-
displayNames: List<String>
50+
methodNames: List<String> = listOf(),
51+
displayNames: List<String> = listOf(),
52+
clusterInfo: List<Pair<UtClusterInfo, Int>> = listOf()
9653
) {
9754
workaround(WorkaroundReason.HACK) {
9855
// @todo change to the constructor parameter
@@ -102,11 +59,12 @@ open class SummaryTestCaseGeneratorTest(
10259
}
10360
val utMethod = UtMethod.from(method)
10461
val testSet = executionsModel(utMethod, mockStrategy)
105-
testSet.summarize(searchDirectory)
62+
val testSetWithSummarization = testSet.summarize(searchDirectory)
10663

107-
testSet.executions.checkMatchersWithTextSummary(summaryKeys)
108-
testSet.executions.checkMatchersWithMethodNames(methodNames)
109-
testSet.executions.checkMatchersWithDisplayNames(displayNames)
64+
testSetWithSummarization.executions.checkMatchersWithTextSummary(summaryKeys)
65+
testSetWithSummarization.executions.checkMatchersWithMethodNames(methodNames)
66+
testSetWithSummarization.executions.checkMatchersWithDisplayNames(displayNames)
67+
testSetWithSummarization.checkClusterInfo(clusterInfo)
11068
}
11169

11270
/**
@@ -124,6 +82,37 @@ open class SummaryTestCaseGeneratorTest(
12482
return result
12583
}
12684

85+
// TODO: if next synonyms and normalize function will be removed, this method could be moved as overridden equals to the dataClass [UtClusterInfo]
86+
private fun UtClusterInfo.normalizedAndEquals(other: UtClusterInfo): Boolean {
87+
if (header != other.header) return false
88+
89+
return if (content == null) {
90+
other.content == null
91+
} else {
92+
if (other.content == null) false
93+
else {
94+
content!!.normalize() == other.content!!.normalize()
95+
}
96+
}
97+
}
98+
99+
/**
100+
* Verifies that there are the same number of clusters, its content and number of included tests in each cluster.
101+
*/
102+
fun UtMethodTestSet.checkClusterInfo(clusterInfo: List<Pair<UtClusterInfo, Int>>) {
103+
if (clusterInfo.isEmpty()) {
104+
return
105+
}
106+
107+
Assertions.assertEquals(this.clustersInfo.size, clusterInfo.size)
108+
109+
this.clustersInfo.forEachIndexed { index, it ->
110+
Assertions.assertTrue(it.first!!.normalizedAndEquals(clusterInfo[index].first))
111+
Assertions.assertEquals(it.second.count(), clusterInfo[index].second)
112+
}
113+
}
114+
115+
127116
fun List<UtExecution>.checkMatchersWithTextSummary(
128117
comments: List<String>,
129118
) {

utbot-summary-tests/src/test/kotlin/examples/algorithms/SummaryReturnExampleTest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ class SummaryReturnExampleTest : SummaryTestCaseGeneratorTest(
9494
val mockStrategy = MockStrategyApi.NO_MOCKS
9595
val coverage = DoNotCalculate
9696

97-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
97+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
9898
}
9999

100100
@Test
@@ -160,7 +160,7 @@ class SummaryReturnExampleTest : SummaryTestCaseGeneratorTest(
160160
val mockStrategy = MockStrategyApi.NO_MOCKS
161161
val coverage = DoNotCalculate
162162

163-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
163+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
164164
}
165165

166166
@Test
@@ -230,7 +230,7 @@ class SummaryReturnExampleTest : SummaryTestCaseGeneratorTest(
230230
val mockStrategy = MockStrategyApi.NO_MOCKS
231231
val coverage = DoNotCalculate
232232

233-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
233+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
234234
}
235235

236236
@Test
@@ -304,7 +304,7 @@ class SummaryReturnExampleTest : SummaryTestCaseGeneratorTest(
304304
val mockStrategy = MockStrategyApi.NO_MOCKS
305305
val coverage = DoNotCalculate
306306

307-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
307+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
308308
}
309309

310310
@Test
@@ -399,7 +399,7 @@ class SummaryReturnExampleTest : SummaryTestCaseGeneratorTest(
399399
val mockStrategy = MockStrategyApi.NO_MOCKS
400400
val coverage = DoNotCalculate
401401

402-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
402+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
403403
}
404404

405405
@Test
@@ -501,6 +501,6 @@ class SummaryReturnExampleTest : SummaryTestCaseGeneratorTest(
501501
val mockStrategy = MockStrategyApi.NO_MOCKS
502502
val coverage = DoNotCalculate
503503

504-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
504+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
505505
}
506506
}

utbot-summary-tests/src/test/kotlin/examples/collections/SummaryListWrapperReturnsVoidTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class SummaryListWrapperReturnsVoidTest : SummaryTestCaseGeneratorTest(
5959
val mockStrategy = MockStrategyApi.NO_MOCKS
6060
val coverage = DoNotCalculate
6161

62-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
62+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
6363
}
6464

6565
@Test
@@ -125,6 +125,6 @@ class SummaryListWrapperReturnsVoidTest : SummaryTestCaseGeneratorTest(
125125
val mockStrategy = MockStrategyApi.NO_MOCKS
126126
val coverage = DoNotCalculate
127127

128-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
128+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
129129
}
130130
}

utbot-summary-tests/src/test/kotlin/examples/controlflow/SummaryCycleTest.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class SummaryCycleTest : SummaryTestCaseGeneratorTest(
7777
val mockStrategy = MockStrategyApi.NO_MOCKS
7878
val coverage = DoNotCalculate
7979

80-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
80+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
8181
}
8282

8383
@Test
@@ -124,7 +124,6 @@ class SummaryCycleTest : SummaryTestCaseGeneratorTest(
124124
val mockStrategy = MockStrategyApi.NO_MOCKS
125125
val coverage = DoNotCalculate
126126

127-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
127+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
128128
}
129-
130129
}

utbot-summary-tests/src/test/kotlin/examples/inner/SummaryInnerCallsTest.kt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class SummaryInnerCallsTest : SummaryTestCaseGeneratorTest(
8888
val mockStrategy = MockStrategyApi.NO_MOCKS
8989
val coverage = DoNotCalculate
9090

91-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
91+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
9292
}
9393

9494
@Test
@@ -193,7 +193,7 @@ class SummaryInnerCallsTest : SummaryTestCaseGeneratorTest(
193193
val mockStrategy = MockStrategyApi.NO_MOCKS
194194
val coverage = DoNotCalculate
195195

196-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
196+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
197197
}
198198

199199
// TODO: SAT-1211
@@ -240,7 +240,7 @@ class SummaryInnerCallsTest : SummaryTestCaseGeneratorTest(
240240
val mockStrategy = MockStrategyApi.NO_MOCKS
241241
val coverage = DoNotCalculate
242242

243-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
243+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
244244
}
245245

246246
@Test
@@ -304,7 +304,7 @@ class SummaryInnerCallsTest : SummaryTestCaseGeneratorTest(
304304
methodName4
305305
)
306306

307-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
307+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
308308
}
309309

310310
@Test
@@ -357,7 +357,7 @@ class SummaryInnerCallsTest : SummaryTestCaseGeneratorTest(
357357
methodName3
358358
)
359359

360-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
360+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
361361
}
362362

363363
@Test
@@ -414,7 +414,7 @@ class SummaryInnerCallsTest : SummaryTestCaseGeneratorTest(
414414
methodName3
415415
)
416416

417-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
417+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
418418
}
419419

420420
@Test
@@ -495,7 +495,7 @@ class SummaryInnerCallsTest : SummaryTestCaseGeneratorTest(
495495
methodName5
496496
)
497497

498-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
498+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
499499
}
500500

501501
@Test
@@ -548,7 +548,7 @@ class SummaryInnerCallsTest : SummaryTestCaseGeneratorTest(
548548
methodName4
549549
)
550550

551-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
551+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
552552
}
553553

554554
@Test
@@ -601,7 +601,7 @@ class SummaryInnerCallsTest : SummaryTestCaseGeneratorTest(
601601
methodName4
602602
)
603603

604-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
604+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
605605
}
606606

607607
@Test
@@ -662,7 +662,7 @@ class SummaryInnerCallsTest : SummaryTestCaseGeneratorTest(
662662
methodName3
663663
)
664664

665-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
665+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
666666
}
667667

668668
@Test
@@ -757,7 +757,7 @@ class SummaryInnerCallsTest : SummaryTestCaseGeneratorTest(
757757
methodName5
758758
)
759759

760-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
760+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
761761
}
762762

763763
@Test
@@ -823,6 +823,6 @@ class SummaryInnerCallsTest : SummaryTestCaseGeneratorTest(
823823
methodName4
824824
)
825825

826-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
826+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
827827
}
828828
}

utbot-summary-tests/src/test/kotlin/examples/inner/SummaryNestedCallsTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,6 @@ class SummaryNestedCallsTest : SummaryTestCaseGeneratorTest(
5858
methodName3
5959
)
6060

61-
check(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
61+
summaryCheck(method, mockStrategy, coverage, summaryKeys, methodNames, displayNames)
6262
}
6363
}

0 commit comments

Comments
 (0)