diff --git a/internal/ceres/parallel_for_test.cc b/internal/ceres/parallel_for_test.cc
index b74165e..54ca636 100644
--- a/internal/ceres/parallel_for_test.cc
+++ b/internal/ceres/parallel_for_test.cc
@@ -170,11 +170,12 @@
 
 // Helper function for partition tests
 bool BruteForcePartition(
-    int* costs, int start, int end, int max_cost, int max_partitions);
+    int* costs, int start, int end, int max_partitions, int max_cost);
 // Basic test if MaxPartitionCostIsFeasible and BruteForcePartition agree on
 // simple test-cases
 TEST(GuidedParallelFor, MaxPartitionCostIsFeasible) {
-  using namespace parallel_for_details;
+  using parallel_for_details::MaxPartitionCostIsFeasible;
+
   std::vector<int> costs, cumulative_costs, partition;
   costs = {1, 2, 3, 5, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0};
   cumulative_costs.resize(costs.size());
@@ -225,7 +226,8 @@
 
 // Randomized tests for MaxPartitionCostIsFeasible
 TEST(GuidedParallelFor, MaxPartitionCostIsFeasibleRandomized) {
-  using namespace parallel_for_details;
+  using parallel_for_details::MaxPartitionCostIsFeasible;
+
   std::vector<int> costs, cumulative_costs, partition;
   const auto dummy_getter = [](const int v) { return v; };
 
@@ -297,9 +299,9 @@
   }
 }
 
-// Randomized tests for CreatePartition
-TEST(GuidedParallelFor, CreatePartition) {
-  using namespace parallel_for_details;
+TEST(GuidedParallelFor, ComputePartition) {
+  using parallel_for_details::ComputePartition;
+
   std::vector<int> costs, cumulative_costs, partition;
   const auto dummy_getter = [](const int v) { return v; };
 
