Skip to content
Closed
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
71 changes: 71 additions & 0 deletions Formula/c/catboost-cli.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
class CatboostCli < Formula
desc "Fast, scalable, high performance Gradient Boosting on Decision Trees cli tool"
homepage "https://catboost.ai"
url "https://github.com/catboost/catboost.git",
tag: "v1.2.1",
revision: "d03b246cae23490dcf991cf822be110d6f818665"
license "Apache-2.0"
head "https://github.com/catboost/catboost.git", branch: "master"

depends_on "cmake" => :build
depends_on "conan@1" => :build
depends_on "ninja" => :build

uses_from_macos "llvm" => :build

resource "testdata" do
url "https://github.com/catboost/tutorials.git",
branch: "master",
revision: "b85bed6b57feafc84e3984872260f9888c9f3bae"
end

def install
args = [
"-DCATBOOST_COMPONENTS=app",
"-DHAVE_CUDA=NO",
"-DCMAKE_TOOLCHAIN_FILE=#{buildpath}/build/toolchains/clang.toolchain",
]

cmakepath = buildpath/"cmake-build"
system "cmake", "-S", ".", "-B", cmakepath, "-G", "Ninja", *args, *std_cmake_args
system "ninja", "-C", cmakepath, "catboost"
bin.install cmakepath/"catboost/app/catboost"
end

test do
assert_match %r{Branch: tags/v#{version}}, shell_output("#{bin}/catboost --version")

resource("testdata").stage do
cd "cmdline_tutorial" do
system bin/"catboost", "fit", "--learn-set", "train.tsv", "--test-set", "test.tsv", "--column-description",
"train.cd", "--loss-function", "RMSE", "--iterations", "1000", "--seed", 1, "--verbose", "0"
system bin/"catboost", "calc", "-m", "model.bin", "--input-path", "test.tsv", "--cd", "train.cd", "-o",
"eval.tsv", "-T", "1", "--output-columns", "DocId,Probability,Target,name,profession,#3"

assert_equal <<~EOF, File.read("eval.tsv")
DocId\tProbability\tTarget\tname\tprofession\t#3
0\t0.5755451606\t0\tAlex\tdoctor\tsenior
1\t0.5819929128\t1\tDemid\tdentist\tjunior
2\t0.6399684939\t1\tValentin\tprogrammer\tsenior
3\t0.6479485073\t1\tIvan\tdoctor\tmiddle
4\t0.5757021776\t0\tIvan\tdentist\tsenior
5\t0.5543948515\t0\tValentin\tdentist\tmiddle
6\t0.6022880215\t0\tMilan\tlawyer\tmiddle
7\t0.5760162599\t0\tMilan\tprogrammer\tsenior
8\t0.6423663059\t1\tValentin\tlawyer\tsenior
9\t0.656955474\t1\tDemid\tdoctor\tmiddle
10\t0.5992072123\t0\tValentin\tdentist\tmiddle
11\t0.5782185863\t0\tMilan\tprogrammer\tsenior
12\t0.6055756528\t1\tValentin\tdentist\tjunior
13\t0.5209084714\t0\tIvan\tdoctor\tsenior
14\t0.5840158456\t0\tValentin\tdentist\tsenior
15\t0.60573894\t0\tMilan\tdentist\tsenior
16\t0.5926617612\t0\tDemid\tlawyer\tmiddle
17\t0.6298311784\t0\tValentin\tprogrammer\tsenior
18\t0.6230447361\t1\tMilan\tlawyer\tsenior
19\t0.6311443544\t1\tValentin\tlawyer\tjunior
EOF
end
end
end
end