# Copyright 2010-2025 Google LLC # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. load("@pip_deps//:requirements.bzl", "requirement") load("@rules_python//python:py_binary.bzl", "py_binary") load("//tools/testing:bintest.bzl", "bintest") package(default_visibility = ["//visibility:public"]) py_binary( name = "arc_flow_cutting_stock_sat_py3", srcs = ["arc_flow_cutting_stock_sat.py"], main = "arc_flow_cutting_stock_sat.py", deps = [ requirement("absl-py"), requirement("numpy"), "//ortools/linear_solver/python:model_builder", "//ortools/sat/python:cp_model", ], ) py_binary( name = "assignment_with_constraints_sat_py3", srcs = ["assignment_with_constraints_sat.py"], main = "assignment_with_constraints_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "assignment_with_constraints_sat_py_test", size = "medium", srcs = [":assignment_with_constraints_sat_py_test.bintest"], named_data = {"assignment_with_constraints_sat_py3": ":assignment_with_constraints_sat_py3"}, ) py_binary( name = "balance_group_sat_py3", srcs = ["balance_group_sat.py"], main = "balance_group_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "balance_group_sat_py_test", size = "medium", srcs = [":balance_group_sat_py_test.bintest"], named_data = {"balance_group_sat_py3": ":balance_group_sat_py3"}, ) py_binary( name = "bus_driver_scheduling_sat_py3", srcs = ["bus_driver_scheduling_sat.py"], main = "bus_driver_scheduling_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "bus_driver_scheduling_sat_py_test", size = "medium", srcs = [":bus_driver_scheduling_sat_py_test.bintest"], named_data = {"bus_driver_scheduling_sat_py3": ":bus_driver_scheduling_sat_py3"}, ) py_binary( name = "car_sequencing_optimization_sat_py3", srcs = ["car_sequencing_optimization_sat.py"], main = "car_sequencing_optimization_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "car_sequencing_optimization_sat_py_test", size = "small", srcs = [":car_sequencing_optimization_sat_py_test.bintest"], named_data = {"car_sequencing_optimization_sat_py3": ":car_sequencing_optimization_sat_py3"}, ) py_binary( name = "chemical_balance_sat_py3", srcs = ["chemical_balance_sat.py"], main = "chemical_balance_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "chemical_balance_sat_py_test", size = "medium", srcs = [":chemical_balance_sat_py_test.bintest"], named_data = {"chemical_balance_sat_py3": ":chemical_balance_sat_py3"}, ) py_binary( name = "clustering_sat_py3", srcs = ["clustering_sat.py"], main = "clustering_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "clustering_sat_py_test", size = "medium", srcs = [":clustering_sat_py_test.bintest"], named_data = {"clustering_sat_py3": ":clustering_sat_py3"}, ) py_binary( name = "cover_rectangle_sat_py3", srcs = ["cover_rectangle_sat.py"], main = "cover_rectangle_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "cover_rectangle_sat_py_test", size = "medium", srcs = [":cover_rectangle_sat_py_test.bintest"], named_data = {"cover_rectangle_sat_py3": ":cover_rectangle_sat_py3"}, ) py_binary( name = "flexible_job_shop_sat_py3", srcs = ["flexible_job_shop_sat.py"], main = "flexible_job_shop_sat.py", deps = ["//ortools/sat/python:cp_model"], ) bintest( name = "flexible_job_shop_sat_py_test", srcs = [":flexible_job_shop_sat_py_test.bintest"], named_data = {"flexible_job_shop_sat_py3": ":flexible_job_shop_sat_py3"}, ) py_binary( name = "gate_scheduling_sat_py3", srcs = ["gate_scheduling_sat.py"], main = "gate_scheduling_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/colab:visualization", "//ortools/sat/python:cp_model", ], ) bintest( name = "gate_scheduling_sat_py_test", srcs = [":gate_scheduling_sat_py_test.bintest"], named_data = {"gate_scheduling_sat_py3": ":gate_scheduling_sat_py3"}, ) py_binary( name = "golomb_sat_py3", srcs = ["golomb_sat.py"], main = "golomb_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "golomb_sat_py_test", size = "medium", srcs = [":golomb_sat_py_test.bintest"], named_data = {"golomb_sat_py3": ":golomb_sat_py3"}, ) py_binary( name = "hidato_sat_py3", srcs = ["hidato_sat.py"], main = "hidato_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/colab:visualization", "//ortools/sat/python:cp_model", ], ) bintest( name = "hidato_sat_py_test", srcs = [":hidato_sat_py_test.bintest"], named_data = {"hidato_sat_py3": ":hidato_sat_py3"}, ) py_binary( name = "jobshop_ft06_distance_sat_py3", srcs = ["jobshop_ft06_distance_sat.py"], main = "jobshop_ft06_distance_sat.py", deps = ["//ortools/sat/python:cp_model"], ) bintest( name = "jobshop_ft06_distance_sat_py_test", srcs = [":jobshop_ft06_distance_sat_py_test.bintest"], named_data = {"jobshop_ft06_distance_sat_py3": ":jobshop_ft06_distance_sat_py3"}, ) py_binary( name = "jobshop_ft06_sat_py3", srcs = ["jobshop_ft06_sat.py"], main = "jobshop_ft06_sat.py", deps = [ "//ortools/sat/colab:visualization", "//ortools/sat/python:cp_model", ], ) bintest( name = "jobshop_ft06_sat_py_test", srcs = [":jobshop_ft06_sat_py_test.bintest"], named_data = {"jobshop_ft06_sat_py3": ":jobshop_ft06_sat_py3"}, ) py_binary( name = "jobshop_with_maintenance_sat_py3", srcs = ["jobshop_with_maintenance_sat.py"], main = "jobshop_with_maintenance_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "jobshop_with_maintenance_sat_py_test", size = "medium", srcs = [":jobshop_with_maintenance_sat_py_test.bintest"], named_data = {"jobshop_with_maintenance_sat_py3": ":jobshop_with_maintenance_sat_py3"}, ) py_binary( name = "knapsack_2d_sat_py3", srcs = ["knapsack_2d_sat.py"], main = "knapsack_2d_sat.py", deps = [ requirement("absl-py"), requirement("numpy"), requirement("pandas"), "//ortools/sat/python:cp_model", ], ) bintest( name = "knapsack_2d_sat_py_test", size = "medium", srcs = [":knapsack_2d_sat_py_test.bintest"], named_data = {"knapsack_2d_sat_py3": ":knapsack_2d_sat_py3"}, ) py_binary( name = "line_balancing_sat_py3", srcs = ["line_balancing_sat.py"], main = "line_balancing_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "line_balancing_sat_salbp_20_1_py_test", srcs = [":line_balancing_sat_salbp_20_1_py_test.bintest"], named_data = { "line_balancing_sat_py3": ":line_balancing_sat_py3", "salbp_20_1.alb": "//examples/python/testdata:salbp_20_1.alb", }, ) py_binary( name = "maximize_combinations_sat_py3", srcs = ["maximize_combinations_sat.py"], main = "maximize_combinations_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "maximize_combinations_sat_py_test", size = "medium", srcs = [":maximize_combinations_sat_py_test.bintest"], named_data = {"maximize_combinations_sat_py3": ":maximize_combinations_sat_py3"}, ) py_binary( name = "maze_escape_sat_py3", srcs = ["maze_escape_sat.py"], main = "maze_escape_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "maze_escape_sat_py_test", srcs = [":maze_escape_sat_py_test.bintest"], named_data = {"maze_escape_sat_py3": ":maze_escape_sat_py3"}, ) py_binary( name = "music_playlist_sat_py3", srcs = ["music_playlist_sat.py"], main = "music_playlist_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "music_playlist_sat_py_test", srcs = [":music_playlist_sat_py_test.bintest"], named_data = {"music_playlist_sat_py3": ":music_playlist_sat_py3"}, ) py_binary( name = "no_wait_baking_scheduling_sat_py3", srcs = ["no_wait_baking_scheduling_sat.py"], main = "no_wait_baking_scheduling_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "no_wait_baking_scheduling_sat_py_test", size = "medium", srcs = [":no_wait_baking_scheduling_sat_py_test.bintest"], named_data = {"no_wait_baking_scheduling_sat_py3": ":no_wait_baking_scheduling_sat_py3"}, ) py_binary( name = "pell_equation_sat_py3", srcs = ["pell_equation_sat.py"], main = "pell_equation_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "pell_equation_sat_py_test", size = "medium", srcs = [":pell_equation_sat_py_test.bintest"], named_data = {"pell_equation_sat_py3": ":pell_equation_sat_py3"}, ) py_binary( name = "pentominoes_sat_py3", srcs = ["pentominoes_sat.py"], main = "pentominoes_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "pentominoes_sat_py_test", size = "medium", srcs = [":pentominoes_sat_py_test.bintest"], named_data = {"pentominoes_sat_py3": ":pentominoes_sat_py3"}, ) py_binary( name = "prize_collecting_tsp_sat_py3", srcs = ["prize_collecting_tsp_sat.py"], main = "prize_collecting_tsp_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "prize_collecting_tsp_sat_py_test", size = "medium", srcs = [":prize_collecting_tsp_sat_py_test.bintest"], named_data = {"prize_collecting_tsp_sat_py3": ":prize_collecting_tsp_sat_py3"}, ) py_binary( name = "prize_collecting_vrp_sat_py3", srcs = ["prize_collecting_vrp_sat.py"], main = "prize_collecting_vrp_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "prize_collecting_vrp_sat_py_test", size = "medium", srcs = [":prize_collecting_vrp_sat_py_test.bintest"], named_data = {"prize_collecting_vrp_sat_py3": ":prize_collecting_vrp_sat_py3"}, ) py_binary( name = "qubo_sat_py3", srcs = ["qubo_sat.py"], main = "qubo_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "qubo_sat_py_test", size = "medium", srcs = [":qubo_sat_py_test.bintest"], named_data = {"qubo_sat_py3": ":qubo_sat_py3"}, ) bintest( name = "rcpsp_sat_c1510_1_py_test", srcs = [":rcpsp_sat_c1510_1_py_test.bintest"], named_data = { "rcpsp_sat_py3": ":rcpsp_sat_py3", "c1510_1.mm.txt": "//ortools/scheduling/testdata:c1510_1.mm.txt", }, ) bintest( name = "rcpsp_sat_j301_1_py_test", srcs = [":rcpsp_sat_j301_1_py_test.bintest"], named_data = { "rcpsp_sat_py3": ":rcpsp_sat_py3", "j301_1.sm": "//ortools/scheduling/testdata:j301_1.sm", }, ) py_binary( name = "rcpsp_sat_py3", srcs = ["rcpsp_sat.py"], main = "rcpsp_sat.py", deps = [ "//ortools/scheduling:rcpsp_py_pb2", "//ortools/scheduling/python:rcpsp", requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) py_binary( name = "shift_scheduling_sat_py3", srcs = ["shift_scheduling_sat.py"], main = "shift_scheduling_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "shift_scheduling_sat_py_test", srcs = [":shift_scheduling_sat_py_test.bintest"], named_data = {"shift_scheduling_sat_py3": ":shift_scheduling_sat_py3"}, ) py_binary( name = "single_machine_scheduling_with_setup_release_due_dates_sat_py3", srcs = ["single_machine_scheduling_with_setup_release_due_dates_sat.py"], main = "single_machine_scheduling_with_setup_release_due_dates_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "single_machine_scheduling_with_setup_release_due_dates_sat_py_test", size = "medium", srcs = [":single_machine_scheduling_with_setup_release_due_dates_sat_py_test.bintest"], named_data = {"single_machine_scheduling_with_setup_release_due_dates_sat_py3": ":single_machine_scheduling_with_setup_release_due_dates_sat_py3"}, ) py_binary( name = "spread_robots_sat_py3", srcs = ["spread_robots_sat.py"], main = "spread_robots_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "spread_robots_sat_py_test", srcs = [":spread_robots_sat_py_test.bintest"], named_data = {"spread_robots_sat_py3": ":spread_robots_sat_py3"}, ) py_binary( name = "steel_mill_slab_sat_py3", srcs = ["steel_mill_slab_sat.py"], main = "steel_mill_slab_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "steel_mill_slab_sat_py_test", srcs = [":steel_mill_slab_sat_py_test.bintest"], named_data = {"steel_mill_slab_sat_py3": ":steel_mill_slab_sat_py3"}, ) py_binary( name = "sudoku_sat_py3", srcs = ["sudoku_sat.py"], main = "sudoku_sat.py", deps = ["//ortools/sat/python:cp_model"], ) bintest( name = "sudoku_sat_py_test", srcs = [":sudoku_sat_py_test.bintest"], named_data = {"sudoku_sat_py3": ":sudoku_sat_py3"}, ) py_binary( name = "task_allocation_sat_py3", srcs = ["task_allocation_sat.py"], main = "task_allocation_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "task_allocation_sat_py_test", size = "medium", srcs = [":task_allocation_sat_py_test.bintest"], named_data = {"task_allocation_sat_py3": ":task_allocation_sat_py3"}, ) py_binary( name = "tasks_and_workers_assignment_sat_py3", srcs = ["tasks_and_workers_assignment_sat.py"], main = "tasks_and_workers_assignment_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "tasks_and_workers_assignment_sat_py_test", size = "medium", srcs = [":tasks_and_workers_assignment_sat_py_test.bintest"], named_data = {"tasks_and_workers_assignment_sat_py3": ":tasks_and_workers_assignment_sat_py3"}, ) py_binary( name = "test_scheduling_sat_py3", srcs = ["test_scheduling_sat.py"], main = "test_scheduling_sat.py", deps = [ requirement("absl-py"), requirement("pandas"), "//ortools/sat/python:cp_model", ], ) bintest( name = "test_scheduling_sat_py_test", size = "medium", srcs = [":test_scheduling_sat_py_test.bintest"], named_data = {"test_scheduling_sat_py3": ":test_scheduling_sat_py3"}, ) py_binary( name = "tsp_sat_py3", srcs = ["tsp_sat.py"], main = "tsp_sat.py", deps = ["//ortools/sat/python:cp_model"], ) bintest( name = "tsp_sat_py_test", size = "medium", srcs = [":tsp_sat_py_test.bintest"], named_data = {"tsp_sat_py3": ":tsp_sat_py3"}, ) py_binary( name = "vendor_scheduling_sat_py3", srcs = ["vendor_scheduling_sat.py"], main = "vendor_scheduling_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "vendor_scheduling_sat_py_test", size = "medium", srcs = [":vendor_scheduling_sat_py_test.bintest"], named_data = {"vendor_scheduling_sat_py3": ":vendor_scheduling_sat_py3"}, ) py_binary( name = "wedding_optimal_chart_sat_py3", srcs = ["wedding_optimal_chart_sat.py"], main = "wedding_optimal_chart_sat.py", deps = [ requirement("absl-py"), "//ortools/sat/python:cp_model", ], ) bintest( name = "wedding_optimal_chart_sat_py_test", size = "medium", srcs = [":wedding_optimal_chart_sat_py_test.bintest"], named_data = {"wedding_optimal_chart_sat_py3": ":wedding_optimal_chart_sat_py3"}, ) py_binary( name = "zebra_sat_py3", srcs = ["zebra_sat.py"], main = "zebra_sat.py", deps = ["//ortools/sat/python:cp_model"], ) bintest( name = "zebra_sat_py_test", srcs = [":zebra_sat_py_test.bintest"], named_data = {"zebra_sat_py3": ":zebra_sat_py3"}, )