Skip to content

Commit

Permalink
Updated tests. Add code fixes for updated tests.
Browse files Browse the repository at this point in the history
Due to ancestors list contains ruby module itself as it's ancestor,
algorithm for removing not direct ancestors worked not correctly for
this case. Updated algorithm and tests.
  • Loading branch information
nikitabobko authored and vladimir-koshelev committed Jul 9, 2018
1 parent ecd3358 commit b54deb3
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 9 deletions.
Expand Up @@ -124,8 +124,14 @@ object RubyClassHierarchyLoader {
private fun removeAllNonDirectAncestors(module: Module, ancestorGetter: (Module) -> (List<String>?)): List<String> {
val toRemove = HashSet<String>()
ancestorGetter(module)?.forEach {
if (it != module.name && !toRemove.contains(it)) {
name2Module[it]?.let { ancestorGetter(it)?.let { toRemove.addAll(it) } }
val firstLevelAncestor: String = it
if (firstLevelAncestor != module.name && !toRemove.contains(firstLevelAncestor)) {
name2Module[firstLevelAncestor]?.let {
ancestorGetter(it)?.forEach {
val secondLevelAncestor: String = it
if (secondLevelAncestor != firstLevelAncestor) toRemove.add(secondLevelAncestor)
}
}
}
}
return ancestorGetter(module)?.filter { !toRemove.contains(it) } ?: listOf()
Expand Down
22 changes: 15 additions & 7 deletions state-tracker/src/test/java/testData/classes.json
Expand Up @@ -16,6 +16,7 @@
"Kernel"
],
"ancestors": [
"Gem::Resolver::Molinillo::Resolver::Resolution",
"Gem::Resolver::Molinillo::Delegates::SpecificationProvider",
"Gem::Resolver::Molinillo::Delegates::ResolutionState",
"RequireAll",
Expand Down Expand Up @@ -108,6 +109,7 @@
"Kernel"
],
"ancestors": [
"CGI",
"RequireAll",
"Kernel"
],
Expand Down Expand Up @@ -215,6 +217,7 @@
"Kernel"
],
"ancestors": [
"Timeout::Error",
"RequireAll",
"Kernel"
],
Expand Down Expand Up @@ -261,7 +264,7 @@
"Kernel"
],
"ancestors": [

"Dir::Tmpname"
],
"class_methods": [
{
Expand Down Expand Up @@ -322,7 +325,7 @@
"Kernel"
],
"ancestors": [

"RequireAll"
],
"class_methods": [

Expand Down Expand Up @@ -404,7 +407,7 @@
"Kernel"
],
"ancestors": [

"Kernel"
],
"class_methods": [
{
Expand Down Expand Up @@ -1244,7 +1247,7 @@
"Kernel"
],
"ancestors": [

"Gem::Resolver::Molinillo::Delegates::SpecificationProvider"
],
"class_methods": [

Expand Down Expand Up @@ -1358,7 +1361,7 @@
"Kernel"
],
"ancestors": [

"Gem::Resolver::Molinillo::Delegates::ResolutionState"
],
"class_methods": [

Expand Down Expand Up @@ -1430,6 +1433,7 @@
"Kernel"
],
"ancestors": [
"Object",
"RequireAll",
"Kernel"
],
Expand All @@ -1449,7 +1453,7 @@
"Kernel"
],
"ancestors": [

"CGI::Escape"
],
"class_methods": [

Expand Down Expand Up @@ -1497,6 +1501,7 @@
"Kernel"
],
"ancestors": [
"CGI::Util",
"CGI::Escape"
],
"class_methods": [
Expand Down Expand Up @@ -1655,6 +1660,7 @@
"Kernel"
],
"ancestors": [
"RuntimeError",
"RequireAll",
"Kernel"
],
Expand All @@ -1674,7 +1680,7 @@
"Kernel"
],
"ancestors": [

"BasicObject"
],
"class_methods": [

Expand Down Expand Up @@ -1751,6 +1757,7 @@
"Kernel"
],
"ancestors": [
"StandardError",
"RequireAll",
"Kernel"
],
Expand All @@ -1770,6 +1777,7 @@
"Kernel"
],
"ancestors": [
"Exception",
"RequireAll",
"Kernel"
],
Expand Down

0 comments on commit b54deb3

Please sign in to comment.