Skip to content

[planning] Add Anzu planning tools to planning/sampling_based/dev #22598

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions common/parallelism.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#pragma once

#include <compare>
#include <optional>
#include <string_view>

Expand Down Expand Up @@ -90,6 +91,10 @@ class Parallelism {
/** Returns the degree of parallelism. The result will always be >= 1. */
int num_threads() const { return num_threads_; }

/** Provides the automatic comparison operator between Parallelisms, which
compares num_threads between this and the other instance of Parallelism. */
auto operator<=>(const Parallelism&) const = default;

private:
int num_threads_ = 1;
};
Expand Down
25 changes: 25 additions & 0 deletions common/test/parallelism_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,31 @@ GTEST_TEST(ParallelismTest, BoolConversionAssignmentTest) {
EXPECT_EQ(assigned_parallelism.num_threads(), kNoneThreads);
}

// Test that all of the comparisons between Parallelism work.
GTEST_TEST(ParallelismTest, ParallelismCompareTest) {
const Parallelism false_parallelism(false);
const Parallelism none_parallelism = Parallelism::None();
const Parallelism true_parallelism(true);
const Parallelism max_parallelism = Parallelism::Max();

EXPECT_EQ(false_parallelism, false_parallelism);
EXPECT_EQ(none_parallelism, none_parallelism);
EXPECT_EQ(false_parallelism, none_parallelism);

EXPECT_EQ(true_parallelism, true_parallelism);
EXPECT_EQ(max_parallelism, max_parallelism);
EXPECT_EQ(true_parallelism, max_parallelism);

EXPECT_NE(false_parallelism, true_parallelism);
EXPECT_NE(none_parallelism, max_parallelism);

EXPECT_LT(false_parallelism, true_parallelism);
EXPECT_LT(none_parallelism, max_parallelism);

EXPECT_GT(true_parallelism, false_parallelism);
EXPECT_GT(max_parallelism, none_parallelism);
}

// Tests all variety of environment variable string parsing.
GTEST_TEST(ParallelismTest, ParsingLogicTest) {
// When string parsing fails, this is what we get back.
Expand Down
Loading