gettc 1.3 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|