gettc 1.3 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/dist/template/bin/runner.sh +113 -113
- metadata +17 -11
- checksums.yaml +0 -7
data/Rakefile
CHANGED
@@ -13,7 +13,7 @@ spec = Gem::Specification.new do |s|
|
|
13
13
|
s.name = 'gettc'
|
14
14
|
s.summary = 'Download TopCoder problem and generate a skeleton solution'
|
15
15
|
s.description = 'Given a TopCoder problem ID, gettc downloads the problem specification, parses the whole thing into a Markdown file, generates inputs/outputs based on the Examples and System Tests given, and finally generates basic solution files for you to get started.'
|
16
|
-
s.version = '1.3'
|
16
|
+
s.version = '1.3.1'
|
17
17
|
|
18
18
|
s.author = 'Seri'
|
19
19
|
s.email = 'seritrinh@gmail.com'
|
data/dist/template/bin/runner.sh
CHANGED
@@ -1,113 +1,113 @@
|
|
1
|
-
mode="$1"
|
2
|
-
solver="$2"
|
3
|
-
data_d="$3"
|
4
|
-
output_d="$4"
|
5
|
-
ostream=/dev/null
|
6
|
-
|
7
|
-
timeit () {
|
8
|
-
if [ -x /usr/bin/time ]; then
|
9
|
-
/usr/bin/time -o $ostream "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
|
10
|
-
elif [ $mode = 'verbose' ]; then
|
11
|
-
time "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
|
12
|
-
else
|
13
|
-
"$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
|
14
|
-
fi
|
15
|
-
}
|
16
|
-
|
17
|
-
puts () {
|
18
|
-
echo "$1" > $ostream
|
19
|
-
}
|
20
|
-
|
21
|
-
write () {
|
22
|
-
echo -n "$1" > $ostream
|
23
|
-
}
|
24
|
-
|
25
|
-
view_file () {
|
26
|
-
filename="$1"
|
27
|
-
write '<'
|
28
|
-
cat "$filename" > $ostream
|
29
|
-
puts '>'
|
30
|
-
}
|
31
|
-
|
32
|
-
report_case () {
|
33
|
-
write ' Input: '
|
34
|
-
view_file "$data_d/$test_case.in"
|
35
|
-
write ' Expected: '
|
36
|
-
view_file "$data_d/$test_case.out"
|
37
|
-
write ' Received: '
|
38
|
-
view_file "$output_d/$test_case.out"
|
39
|
-
}
|
40
|
-
|
41
|
-
init () {
|
42
|
-
export TIME="Time: %es - Memory: %MK"
|
43
|
-
export TIMEFORMAT=%3lR
|
44
|
-
|
45
|
-
if [ ! -d "$output_d" ]; then
|
46
|
-
mkdir "$output_d"
|
47
|
-
fi
|
48
|
-
|
49
|
-
if [ "$mode" = 'verbose' ]; then
|
50
|
-
ostream=/dev/stdout
|
51
|
-
elif [ "$mode" = 'file' ]; then
|
52
|
-
ostream=log
|
53
|
-
fi
|
54
|
-
|
55
|
-
dir=`dirname $0`
|
56
|
-
checker="$dir/../build/check"
|
57
|
-
if [ ! -x "$checker" ]; then
|
58
|
-
undo=`pwd`
|
59
|
-
cd "$dir/../util/check"
|
60
|
-
make
|
61
|
-
cd "$undo"
|
62
|
-
fi
|
63
|
-
}
|
64
|
-
|
65
|
-
main () {
|
66
|
-
cases=0
|
67
|
-
|
68
|
-
fails=0
|
69
|
-
|
70
|
-
errors=0
|
71
|
-
failstr=''
|
72
|
-
|
73
|
-
errorstr=''
|
74
|
-
for input in "$data_d"/*.in; do
|
75
|
-
if [ -f "$input" ]; then
|
76
|
-
cases=$(( cases + 1 ))
|
77
|
-
|
78
|
-
test_case=`basename "$input"`
|
79
|
-
test_case=${test_case%.in}
|
80
|
-
|
81
|
-
write "Check $test_case ... "
|
82
|
-
timeit "$solver" "$data_d/$test_case.in" "$output_d/$test_case.out"
|
83
|
-
"$checker" "$data_d/$test_case.out" "$output_d/$test_case.out" > $ostream
|
84
|
-
retcode=$?
|
85
|
-
|
86
|
-
if [ $retcode -eq 0 ]; then
|
87
|
-
puts 'Passed'
|
88
|
-
|
89
|
-
elif [ $retcode -eq 1 ]; then
|
90
|
-
fails=$(( fails + 1 ))
|
91
|
-
failstr="$failstr $test_case"
|
92
|
-
puts 'Failed'
|
93
|
-
report_case "$test_case"
|
94
|
-
|
95
|
-
else
|
96
|
-
errors=$(( errors + 1 ))
|
97
|
-
errorstr="$errorstr $test_case"
|
98
|
-
puts 'Error'
|
99
|
-
report_case "$test_case"
|
100
|
-
fi
|
101
|
-
fi
|
102
|
-
done
|
103
|
-
echo "$cases cases checked, $fails failed, $errors errored"
|
104
|
-
if [ $fails -gt 0 ]; then
|
105
|
-
echo "Failed cases:${failstr}"
|
106
|
-
fi
|
107
|
-
if [ $errors -gt 0 ]; then
|
108
|
-
echo "Errored cases:${errorstr}"
|
109
|
-
fi
|
110
|
-
|
111
|
-
}
|
112
|
-
init
|
113
|
-
main
|
1
|
+
mode="$1"
|
2
|
+
solver="$2"
|
3
|
+
data_d="$3"
|
4
|
+
output_d="$4"
|
5
|
+
ostream=/dev/null
|
6
|
+
|
7
|
+
timeit () {
|
8
|
+
if [ -x /usr/bin/time ]; then
|
9
|
+
/usr/bin/time -o $ostream "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
|
10
|
+
elif [ $mode = 'verbose' ]; then
|
11
|
+
time "$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
|
12
|
+
else
|
13
|
+
"$1" "$2" "$3" "$4" "$5" "$6" "$7" "$8" "$9"
|
14
|
+
fi
|
15
|
+
}
|
16
|
+
|
17
|
+
puts () {
|
18
|
+
echo "$1" > $ostream
|
19
|
+
}
|
20
|
+
|
21
|
+
write () {
|
22
|
+
echo -n "$1" > $ostream
|
23
|
+
}
|
24
|
+
|
25
|
+
view_file () {
|
26
|
+
filename="$1"
|
27
|
+
write '<'
|
28
|
+
cat "$filename" > $ostream
|
29
|
+
puts '>'
|
30
|
+
}
|
31
|
+
|
32
|
+
report_case () {
|
33
|
+
write ' Input: '
|
34
|
+
view_file "$data_d/$test_case.in"
|
35
|
+
write ' Expected: '
|
36
|
+
view_file "$data_d/$test_case.out"
|
37
|
+
write ' Received: '
|
38
|
+
view_file "$output_d/$test_case.out"
|
39
|
+
}
|
40
|
+
|
41
|
+
init () {
|
42
|
+
export TIME="Time: %es - Memory: %MK"
|
43
|
+
export TIMEFORMAT=%3lR
|
44
|
+
|
45
|
+
if [ ! -d "$output_d" ]; then
|
46
|
+
mkdir "$output_d"
|
47
|
+
fi
|
48
|
+
|
49
|
+
if [ "$mode" = 'verbose' ]; then
|
50
|
+
ostream=/dev/stdout
|
51
|
+
elif [ "$mode" = 'file' ]; then
|
52
|
+
ostream=log
|
53
|
+
fi
|
54
|
+
|
55
|
+
dir=`dirname $0`
|
56
|
+
checker="$dir/../build/check"
|
57
|
+
if [ ! -x "$checker" ]; then
|
58
|
+
undo=`pwd`
|
59
|
+
cd "$dir/../util/check"
|
60
|
+
make
|
61
|
+
cd "$undo"
|
62
|
+
fi
|
63
|
+
}
|
64
|
+
|
65
|
+
main () {
|
66
|
+
cases=0
|
67
|
+
|
68
|
+
fails=0
|
69
|
+
|
70
|
+
errors=0
|
71
|
+
failstr=''
|
72
|
+
|
73
|
+
errorstr=''
|
74
|
+
for input in "$data_d"/*.in; do
|
75
|
+
if [ -f "$input" ]; then
|
76
|
+
cases=$(( cases + 1 ))
|
77
|
+
|
78
|
+
test_case=`basename "$input"`
|
79
|
+
test_case=${test_case%.in}
|
80
|
+
|
81
|
+
write "Check $test_case ... "
|
82
|
+
timeit "$solver" "$data_d/$test_case.in" "$output_d/$test_case.out"
|
83
|
+
"$checker" "$data_d/$test_case.out" "$output_d/$test_case.out" > $ostream
|
84
|
+
retcode=$?
|
85
|
+
|
86
|
+
if [ $retcode -eq 0 ]; then
|
87
|
+
puts 'Passed'
|
88
|
+
|
89
|
+
elif [ $retcode -eq 1 ]; then
|
90
|
+
fails=$(( fails + 1 ))
|
91
|
+
failstr="$failstr $test_case"
|
92
|
+
puts 'Failed'
|
93
|
+
report_case "$test_case"
|
94
|
+
|
95
|
+
else
|
96
|
+
errors=$(( errors + 1 ))
|
97
|
+
errorstr="$errorstr $test_case"
|
98
|
+
puts 'Error'
|
99
|
+
report_case "$test_case"
|
100
|
+
fi
|
101
|
+
fi
|
102
|
+
done
|
103
|
+
echo "$cases cases checked, $fails failed, $errors errored"
|
104
|
+
if [ $fails -gt 0 ]; then
|
105
|
+
echo "Failed cases:${failstr}"
|
106
|
+
fi
|
107
|
+
if [ $errors -gt 0 ]; then
|
108
|
+
echo "Errored cases:${errorstr}"
|
109
|
+
fi
|
110
|
+
|
111
|
+
}
|
112
|
+
init
|
113
|
+
main
|
metadata
CHANGED
@@ -1,41 +1,46 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gettc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.3.1
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Seri
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-05 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: hpricot
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- - '>='
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: '0'
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- - '>='
|
27
|
+
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '0'
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rdiscount
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- - '>='
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: '0'
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- - '>='
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: '0'
|
41
46
|
description: Given a TopCoder problem ID, gettc downloads the problem specification,
|
@@ -92,26 +97,27 @@ files:
|
|
92
97
|
- core/test/topcoder/types_test.rb
|
93
98
|
homepage: http://seri.github.io/gettc
|
94
99
|
licenses: []
|
95
|
-
metadata: {}
|
96
100
|
post_install_message:
|
97
101
|
rdoc_options: []
|
98
102
|
require_paths:
|
99
103
|
- core/lib
|
100
104
|
required_ruby_version: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
101
106
|
requirements:
|
102
|
-
- - '>='
|
107
|
+
- - ! '>='
|
103
108
|
- !ruby/object:Gem::Version
|
104
109
|
version: '0'
|
105
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
|
+
none: false
|
106
112
|
requirements:
|
107
|
-
- - '>='
|
113
|
+
- - ! '>='
|
108
114
|
- !ruby/object:Gem::Version
|
109
115
|
version: '0'
|
110
116
|
requirements: []
|
111
117
|
rubyforge_project:
|
112
|
-
rubygems_version:
|
118
|
+
rubygems_version: 1.8.25
|
113
119
|
signing_key:
|
114
|
-
specification_version:
|
120
|
+
specification_version: 3
|
115
121
|
summary: Download TopCoder problem and generate a skeleton solution
|
116
122
|
test_files:
|
117
123
|
- core/test/topcoder/download_test.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 6da782156ab1219febecce10ac6d71eb335575c5
|
4
|
-
data.tar.gz: cd6573718505dd788da31ad9c6acc2818a6444f7
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: c370151c234ab1c0229015b0b758ac8e870909759d928aa8170fb12c8c1c559a06813db7b0ecec48fbc233f92edd81e1d80c6e2fe26e112a5ae4a409f3871b42
|
7
|
-
data.tar.gz: 4c0fc25883795a409fb052d61c04f9b36c3f8d276f066a5348d79c5ca00d57d2165b325381924e12fba5bff15b9039a7fa012da2319ac62b7caa730d2975b25f
|