public static Set<CtType> computeClassProvider(CtType testClass) {
    List<CtType> types =
        Query.getElements(testClass.getParent(CtPackage.class), new TypeFilter(CtType.class));
    types =
        types
            .stream()
            .filter(type -> type != null)
            .filter(type -> type.getPackage() != null)
            .filter(
                type ->
                    type.getPackage()
                        .getQualifiedName()
                        .equals(testClass.getPackage().getQualifiedName()))
            .collect(Collectors.toList());

    if (testClass.getParent(CtType.class) != null) {
      types.add(testClass.getParent(CtType.class));
    }

    types.addAll(
        types.stream().flatMap(type -> getImport(type).stream()).collect(Collectors.toSet()));

    return types.stream().collect(Collectors.toSet());
  }