load("//tools/lint:lint.bzl", "add_lint_tests")
load(
    "//tools/skylark:drake_cc.bzl",
    "drake_cc_binary",
    "drake_cc_googletest",
    "drake_cc_library",
)
load(
    "//tools/skylark:drake_py.bzl",
    "drake_py_binary",
)

package(default_visibility = ["//visibility:private"])

drake_cc_library(
    name = "van_der_pol",
    srcs = ["van_der_pol.cc"],
    hdrs = ["van_der_pol.h"],
    visibility = ["//visibility:public"],
    deps = [
        "//systems/analysis:simulator",
        "//systems/framework:diagram_builder",
        "//systems/framework:leaf_system",
        "//systems/framework:system_constraint",
        "//systems/framework:vector",
        "//systems/primitives:vector_log_sink",
    ],
)

drake_py_binary(
    name = "plot_limit_cycle",
    srcs = ["plot_limit_cycle.py"],
    add_test_rule = 1,
    deps = [
        "//bindings/pydrake",
    ],
)

drake_cc_googletest(
    name = "van_der_pol_test",
    deps = [
        ":van_der_pol",
        "//systems/framework/test_utilities:scalar_conversion",
    ],
)

add_lint_tests()
