gitlab-derailed_benchmarks 1.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.github/workflows/check_changelog.yml +10 -0
- data/.gitignore +8 -0
- data/.gitlab-ci.yml +56 -0
- data/.travis.yml +18 -0
- data/Appraisals +26 -0
- data/CHANGELOG.md +105 -0
- data/Gemfile +9 -0
- data/README.md +692 -0
- data/Rakefile +29 -0
- data/bin/derailed +93 -0
- data/derailed_benchmarks.gemspec +39 -0
- data/gemfiles/.bundle/config +2 -0
- data/gemfiles/rails_5_1.gemfile +15 -0
- data/gemfiles/rails_5_2.gemfile +15 -0
- data/gemfiles/rails_6_0.gemfile +15 -0
- data/gemfiles/rails_git.gemfile +19 -0
- data/lib/derailed_benchmarks.rb +51 -0
- data/lib/derailed_benchmarks/auth_helper.rb +34 -0
- data/lib/derailed_benchmarks/auth_helpers/devise.rb +41 -0
- data/lib/derailed_benchmarks/core_ext/kernel_require.rb +88 -0
- data/lib/derailed_benchmarks/load_tasks.rb +145 -0
- data/lib/derailed_benchmarks/require_tree.rb +65 -0
- data/lib/derailed_benchmarks/stats_from_dir.rb +128 -0
- data/lib/derailed_benchmarks/stats_in_file.rb +60 -0
- data/lib/derailed_benchmarks/tasks.rb +292 -0
- data/lib/derailed_benchmarks/version.rb +5 -0
- data/test/derailed_benchmarks/core_ext/kernel_require_test.rb +33 -0
- data/test/derailed_benchmarks/require_tree_test.rb +95 -0
- data/test/derailed_benchmarks/stats_from_dir_test.rb +125 -0
- data/test/derailed_test.rb +14 -0
- data/test/fixtures/require/child_one.rb +4 -0
- data/test/fixtures/require/child_two.rb +9 -0
- data/test/fixtures/require/parent_one.rb +8 -0
- data/test/fixtures/require/raise_child.rb +6 -0
- data/test/fixtures/require/relative_child.rb +4 -0
- data/test/fixtures/require/relative_child_two.rb +4 -0
- data/test/fixtures/stats/significant/loser.bench.txt +100 -0
- data/test/fixtures/stats/significant/winner.bench.txt +100 -0
- data/test/integration/tasks_test.rb +132 -0
- data/test/rails_app/Rakefile +9 -0
- data/test/rails_app/app/assets/config/manifest.js +0 -0
- data/test/rails_app/app/assets/javascripts/authenticated.js +2 -0
- data/test/rails_app/app/assets/stylesheets/authenticated.css +4 -0
- data/test/rails_app/app/controllers/application_controller.rb +17 -0
- data/test/rails_app/app/controllers/authenticated_controller.rb +8 -0
- data/test/rails_app/app/controllers/pages_controller.rb +14 -0
- data/test/rails_app/app/helpers/application_helper.rb +4 -0
- data/test/rails_app/app/helpers/authenticated_helper.rb +4 -0
- data/test/rails_app/app/models/user.rb +13 -0
- data/test/rails_app/app/views/authenticated/index.html.erb +1 -0
- data/test/rails_app/app/views/layouts/application.html.erb +14 -0
- data/test/rails_app/app/views/pages/index.html.erb +1 -0
- data/test/rails_app/config.ru +6 -0
- data/test/rails_app/config/application.rb +52 -0
- data/test/rails_app/config/boot.rb +12 -0
- data/test/rails_app/config/database.yml +22 -0
- data/test/rails_app/config/environment.rb +11 -0
- data/test/rails_app/config/environments/development.rb +27 -0
- data/test/rails_app/config/environments/production.rb +51 -0
- data/test/rails_app/config/environments/test.rb +37 -0
- data/test/rails_app/config/initializers/backtrace_silencers.rb +9 -0
- data/test/rails_app/config/initializers/devise.rb +258 -0
- data/test/rails_app/config/initializers/inflections.rb +12 -0
- data/test/rails_app/config/initializers/mime_types.rb +7 -0
- data/test/rails_app/config/initializers/secret_token.rb +13 -0
- data/test/rails_app/config/initializers/session_store.rb +10 -0
- data/test/rails_app/config/locales/devise.en.yml +59 -0
- data/test/rails_app/config/locales/en.yml +9 -0
- data/test/rails_app/config/locales/es.yml +10 -0
- data/test/rails_app/config/routes.rb +67 -0
- data/test/rails_app/db/migrate/20141210070547_devise_create_users.rb +45 -0
- data/test/rails_app/db/schema.rb +35 -0
- data/test/rails_app/perf.rake +10 -0
- data/test/rails_app/public/404.html +26 -0
- data/test/rails_app/public/422.html +26 -0
- data/test/rails_app/public/500.html +26 -0
- data/test/rails_app/public/favicon.ico +0 -0
- data/test/rails_app/public/javascripts/application.js +2 -0
- data/test/rails_app/public/javascripts/controls.js +965 -0
- data/test/rails_app/public/javascripts/dragdrop.js +974 -0
- data/test/rails_app/public/javascripts/effects.js +1123 -0
- data/test/rails_app/public/javascripts/prototype.js +6001 -0
- data/test/rails_app/public/javascripts/rails.js +202 -0
- data/test/rails_app/public/stylesheets/.gitkeep +0 -0
- data/test/rails_app/script/rails +8 -0
- data/test/support/integration_case.rb +7 -0
- data/test/test_helper.rb +65 -0
- metadata +398 -0
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
class KernelRequireTest < ActiveSupport::TestCase
|
6
|
+
|
7
|
+
setup do
|
8
|
+
require 'derailed_benchmarks/core_ext/kernel_require'
|
9
|
+
GC.disable
|
10
|
+
end
|
11
|
+
|
12
|
+
teardown do
|
13
|
+
GC.enable
|
14
|
+
end
|
15
|
+
|
16
|
+
def assert_node_in_parent(file_name, parent)
|
17
|
+
file = fixtures_dir(File.join("require", file_name))
|
18
|
+
node = parent[file]
|
19
|
+
assert node, "Expected:\n#{parent.children}\nto include:\n#{file.inspect}"
|
20
|
+
assert node.cost < parent.cost, "Expected:\n#{node.inspect}\nto cost less than:\n#{parent.inspect}" unless parent == TOP_REQUIRE
|
21
|
+
node
|
22
|
+
end
|
23
|
+
|
24
|
+
test "core extension profiles useage" do
|
25
|
+
require fixtures_dir("require/parent_one.rb")
|
26
|
+
parent = assert_node_in_parent("parent_one.rb", TOP_REQUIRE)
|
27
|
+
assert_node_in_parent("child_one.rb", parent)
|
28
|
+
child_two = assert_node_in_parent("child_two.rb", parent)
|
29
|
+
assert_node_in_parent("relative_child", parent)
|
30
|
+
assert_node_in_parent("relative_child_two", parent)
|
31
|
+
assert_node_in_parent("raise_child.rb", child_two)
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
class RequireTree < ActiveSupport::TestCase
|
6
|
+
|
7
|
+
def tree(name)
|
8
|
+
DerailedBenchmarks::RequireTree.new(name)
|
9
|
+
end
|
10
|
+
|
11
|
+
def teardown
|
12
|
+
DerailedBenchmarks::RequireTree.const_set("REQUIRED_BY", {})
|
13
|
+
end
|
14
|
+
|
15
|
+
test "default_cost" do
|
16
|
+
parent = tree("parent")
|
17
|
+
assert_equal 0, parent.cost
|
18
|
+
value = rand(0..100)
|
19
|
+
parent.cost = value
|
20
|
+
|
21
|
+
assert_equal value, parent.cost
|
22
|
+
end
|
23
|
+
|
24
|
+
test "stores child" do
|
25
|
+
parent = tree("parent")
|
26
|
+
child = tree("child")
|
27
|
+
parent << child
|
28
|
+
|
29
|
+
# [](name)
|
30
|
+
assert_equal child, parent["child"]
|
31
|
+
# children
|
32
|
+
assert_equal [child], parent.children
|
33
|
+
assert_equal [child], parent.sorted_children
|
34
|
+
end
|
35
|
+
|
36
|
+
test "sorts children" do
|
37
|
+
parent = tree("parent")
|
38
|
+
parent.cost = rand(5..10)
|
39
|
+
small = tree("small")
|
40
|
+
small.cost = rand(10..100)
|
41
|
+
|
42
|
+
large = tree("large")
|
43
|
+
large.cost = small.cost + 1
|
44
|
+
|
45
|
+
parent << small
|
46
|
+
parent << large
|
47
|
+
|
48
|
+
expected = [large, small]
|
49
|
+
assert_equal expected, parent.sorted_children
|
50
|
+
|
51
|
+
expected = <<-OUT
|
52
|
+
parent: #{ parent.cost.round(4) } MiB
|
53
|
+
large: #{ large.cost.round(4) } MiB
|
54
|
+
small: #{ small.cost.round(4) } MiB
|
55
|
+
OUT
|
56
|
+
capture = StringIO.new
|
57
|
+
|
58
|
+
parent.print_sorted_children(0, capture)
|
59
|
+
|
60
|
+
assert_equal expected, capture.string
|
61
|
+
end
|
62
|
+
|
63
|
+
test "attributes duplicate children" do
|
64
|
+
parent = tree("parent")
|
65
|
+
parent.cost = rand(5..10)
|
66
|
+
small = tree("small")
|
67
|
+
small.cost = rand(10..100)
|
68
|
+
|
69
|
+
large = tree("large")
|
70
|
+
large.cost = small.cost + 1
|
71
|
+
|
72
|
+
dup = tree("large")
|
73
|
+
dup.cost = 0.4
|
74
|
+
small << dup
|
75
|
+
|
76
|
+
parent << small
|
77
|
+
parent << large
|
78
|
+
|
79
|
+
expected = [large, small]
|
80
|
+
assert_equal expected, parent.sorted_children
|
81
|
+
|
82
|
+
expected = [dup]
|
83
|
+
assert_equal expected, small.sorted_children
|
84
|
+
|
85
|
+
expected = <<-OUT
|
86
|
+
parent: #{ parent.cost.round(4) } MiB
|
87
|
+
large: #{ large.cost.round(4) } MiB (Also required by: small)
|
88
|
+
small: #{ small.cost.round(4) } MiB
|
89
|
+
large: #{ dup.cost.round(4) } MiB (Also required by: parent)
|
90
|
+
OUT
|
91
|
+
capture = StringIO.new
|
92
|
+
parent.print_sorted_children(0, capture)
|
93
|
+
assert_equal expected, capture.string
|
94
|
+
end
|
95
|
+
end
|
@@ -0,0 +1,125 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
class StatsFromDirTest < ActiveSupport::TestCase
|
6
|
+
test "that it works" do
|
7
|
+
dir = fixtures_dir("stats/significant")
|
8
|
+
branch_info = {}
|
9
|
+
branch_info["loser"] = { desc: "Old commit", time: Time.now, file: dir.join("loser.bench.txt"), name: "loser" }
|
10
|
+
branch_info["winner"] = { desc: "I am the new commit", time: Time.now + 1, file: dir.join("winner.bench.txt"), name: "winner" }
|
11
|
+
stats = DerailedBenchmarks::StatsFromDir.new(branch_info).call
|
12
|
+
|
13
|
+
newest = stats.newest
|
14
|
+
oldest = stats.oldest
|
15
|
+
|
16
|
+
assert newest.average < oldest.average
|
17
|
+
|
18
|
+
assert_equal "winner", newest.name
|
19
|
+
assert_equal "loser", oldest.name
|
20
|
+
|
21
|
+
assert_in_delta 0.26, stats.d_max, 0.01
|
22
|
+
assert_in_delta 0.2145966026289347, stats.d_critical, 0.00001
|
23
|
+
assert_equal true, stats.significant?
|
24
|
+
|
25
|
+
format = DerailedBenchmarks::StatsFromDir::FORMAT
|
26
|
+
assert_equal "1.0062", format % stats.x_faster
|
27
|
+
assert_equal "0.6147", format % stats.percent_faster
|
28
|
+
|
29
|
+
assert_equal "11.3844", format % newest.median
|
30
|
+
end
|
31
|
+
|
32
|
+
test "alignment" do
|
33
|
+
dir = fixtures_dir("stats/significant")
|
34
|
+
branch_info = {}
|
35
|
+
branch_info["loser"] = { desc: "Old commit", time: Time.now, file: dir.join("loser.bench.txt"), name: "loser" }
|
36
|
+
branch_info["winner"] = { desc: "I am the new commit", time: Time.now + 1, file: dir.join("winner.bench.txt"), name: "winner" }
|
37
|
+
stats = DerailedBenchmarks::StatsFromDir.new(branch_info).call
|
38
|
+
def stats.percent_faster
|
39
|
+
-0.1
|
40
|
+
end
|
41
|
+
|
42
|
+
def stats.x_faster
|
43
|
+
0.9922
|
44
|
+
end
|
45
|
+
|
46
|
+
assert_equal 1, stats.align.length
|
47
|
+
end
|
48
|
+
|
49
|
+
test "banner faster" do
|
50
|
+
dir = fixtures_dir("stats/significant")
|
51
|
+
branch_info = {}
|
52
|
+
branch_info["loser"] = { desc: "Old commit", time: Time.now, file: dir.join("loser.bench.txt"), name: "loser" }
|
53
|
+
branch_info["winner"] = { desc: "I am the new commit", time: Time.now + 1, file: dir.join("winner.bench.txt"), name: "winner" }
|
54
|
+
stats = DerailedBenchmarks::StatsFromDir.new(branch_info).call
|
55
|
+
newest = stats.newest
|
56
|
+
oldest = stats.oldest
|
57
|
+
|
58
|
+
# Test fixture for banner
|
59
|
+
def stats.d_max
|
60
|
+
"0.037"
|
61
|
+
end
|
62
|
+
|
63
|
+
def stats.d_critical
|
64
|
+
"0.001"
|
65
|
+
end
|
66
|
+
|
67
|
+
def newest.median
|
68
|
+
10.5
|
69
|
+
end
|
70
|
+
|
71
|
+
def oldest.median
|
72
|
+
11.0
|
73
|
+
end
|
74
|
+
|
75
|
+
expected = <<~EOM
|
76
|
+
[winner] "I am the new commit" - (10.5 seconds)
|
77
|
+
FASTER 🚀🚀🚀 by:
|
78
|
+
1.0476x [older/newer]
|
79
|
+
4.5455% [(older - newer) / older * 100]
|
80
|
+
[loser] "Old commit" - (11.0 seconds)
|
81
|
+
EOM
|
82
|
+
|
83
|
+
actual = StringIO.new
|
84
|
+
stats.banner(actual)
|
85
|
+
|
86
|
+
assert_match expected, actual.string
|
87
|
+
end
|
88
|
+
|
89
|
+
test "banner slower" do
|
90
|
+
dir = fixtures_dir("stats/significant")
|
91
|
+
branch_info = {}
|
92
|
+
branch_info["loser"] = { desc: "I am the new commit", time: Time.now, file: dir.join("loser.bench.txt"), name: "loser" }
|
93
|
+
branch_info["winner"] = { desc: "Old commit", time: Time.now - 10, file: dir.join("winner.bench.txt"), name: "winner" }
|
94
|
+
stats = DerailedBenchmarks::StatsFromDir.new(branch_info).call
|
95
|
+
newest = stats.newest
|
96
|
+
oldest = stats.oldest
|
97
|
+
|
98
|
+
def oldest.median
|
99
|
+
10.5
|
100
|
+
end
|
101
|
+
|
102
|
+
def newest.median
|
103
|
+
11.0
|
104
|
+
end
|
105
|
+
|
106
|
+
expected = <<~EOM
|
107
|
+
[loser] "I am the new commit" - (11.0 seconds)
|
108
|
+
SLOWER 🐢🐢🐢 by:
|
109
|
+
0.9545x [older/newer]
|
110
|
+
-4.7619% [(older - newer) / older * 100]
|
111
|
+
[winner] "Old commit" - (10.5 seconds)
|
112
|
+
EOM
|
113
|
+
|
114
|
+
actual = StringIO.new
|
115
|
+
stats.banner(actual)
|
116
|
+
|
117
|
+
assert_match expected, actual.string
|
118
|
+
end
|
119
|
+
|
120
|
+
test "stats from samples with slightly different sizes" do
|
121
|
+
stats = DerailedBenchmarks::StatsFromDir.new({})
|
122
|
+
out = stats.statistical_test([100,101,102, 100, 101, 99], [1,3, 3, 2])
|
123
|
+
assert out[:alternative]
|
124
|
+
end
|
125
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
class DerailedBenchmarksTest < ActiveSupport::TestCase
|
6
|
+
test "truth" do
|
7
|
+
assert_kind_of Module, DerailedBenchmarks
|
8
|
+
end
|
9
|
+
|
10
|
+
test "gem_is_bundled?" do
|
11
|
+
assert DerailedBenchmarks.gem_is_bundled?("rack")
|
12
|
+
refute DerailedBenchmarks.gem_is_bundled?("wicked")
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class ParentOne
|
2
|
+
@retained = +""
|
3
|
+
1_000_000.times.map { @retained << "A" }
|
4
|
+
end
|
5
|
+
require File.expand_path('../child_one.rb', __FILE__)
|
6
|
+
require File.expand_path('../child_two.rb', __FILE__)
|
7
|
+
require_relative 'relative_child'
|
8
|
+
require_relative File.expand_path('relative_child_two', __dir__)
|
@@ -0,0 +1,100 @@
|
|
1
|
+
9.590142 0.831269 10.457801 ( 11.437769)
|
2
|
+
9.836019 0.837319 10.728024 ( 11.792425)
|
3
|
+
9.889497 0.837097 10.762795 ( 11.747066)
|
4
|
+
9.532349 0.835770 10.407767 ( 11.343758)
|
5
|
+
9.498824 0.821246 10.366225 ( 11.282013)
|
6
|
+
9.531201 0.834812 10.412715 ( 11.330127)
|
7
|
+
9.583804 0.830178 10.449280 ( 11.384867)
|
8
|
+
9.681340 0.834776 10.553697 ( 11.496842)
|
9
|
+
9.629079 0.820234 10.487276 ( 11.406677)
|
10
|
+
9.616845 0.818370 10.481193 ( 11.395825)
|
11
|
+
9.738706 0.825397 10.600923 ( 11.541978)
|
12
|
+
9.613132 0.827242 10.477559 ( 11.406065)
|
13
|
+
9.486763 0.818159 10.342470 ( 11.305299)
|
14
|
+
9.590618 0.833308 10.468615 ( 11.428548)
|
15
|
+
9.725126 0.842955 10.604727 ( 11.580922)
|
16
|
+
9.598757 0.846951 10.491222 ( 11.462324)
|
17
|
+
9.484803 0.836242 10.366269 ( 11.328111)
|
18
|
+
9.591107 0.818305 10.455931 ( 11.381660)
|
19
|
+
9.745620 0.841107 10.623715 ( 11.572584)
|
20
|
+
9.670502 0.826673 10.535566 ( 11.464770)
|
21
|
+
9.573957 0.825235 10.439166 ( 11.358507)
|
22
|
+
9.468308 0.817744 10.330541 ( 11.240717)
|
23
|
+
9.799312 0.833922 10.670213 ( 11.645225)
|
24
|
+
9.575413 0.828039 10.444712 ( 11.366111)
|
25
|
+
9.632808 0.828399 10.506581 ( 11.439761)
|
26
|
+
9.599766 0.829294 10.467003 ( 11.427869)
|
27
|
+
9.521930 0.828257 10.388242 ( 11.347915)
|
28
|
+
9.842608 0.815513 10.694427 ( 11.667158)
|
29
|
+
9.590377 0.837459 10.467418 ( 11.433524)
|
30
|
+
9.729984 0.819101 10.587020 ( 11.539660)
|
31
|
+
9.540025 0.819396 10.396442 ( 11.314444)
|
32
|
+
9.615953 0.827258 10.479946 ( 11.414527)
|
33
|
+
9.572009 0.824862 10.438432 ( 11.362800)
|
34
|
+
9.612657 0.818645 10.476568 ( 11.385235)
|
35
|
+
9.755889 0.823267 10.615302 ( 11.545301)
|
36
|
+
9.493372 0.813202 10.345646 ( 11.254617)
|
37
|
+
9.529610 0.816457 10.391484 ( 11.305237)
|
38
|
+
9.575646 0.828898 10.449636 ( 11.374993)
|
39
|
+
9.533278 0.828915 10.405592 ( 11.347798)
|
40
|
+
9.692731 0.845925 10.577313 ( 11.545701)
|
41
|
+
9.662406 0.835481 10.543032 ( 11.511367)
|
42
|
+
9.588803 0.834782 10.468166 ( 11.427231)
|
43
|
+
9.696038 0.832612 10.573877 ( 11.545533)
|
44
|
+
9.612567 0.833363 10.491381 ( 11.410244)
|
45
|
+
9.471584 0.836005 10.352883 ( 11.303213)
|
46
|
+
9.682906 0.829932 10.558423 ( 11.466843)
|
47
|
+
9.676123 0.825750 10.548111 ( 11.468789)
|
48
|
+
9.509686 0.826678 10.380435 ( 11.290658)
|
49
|
+
9.552683 0.826631 10.421387 ( 11.337799)
|
50
|
+
9.579964 0.829423 10.447095 ( 11.358198)
|
51
|
+
9.506519 0.812635 10.357147 ( 11.313867)
|
52
|
+
9.654363 0.839408 10.531093 ( 11.515562)
|
53
|
+
9.576167 0.833579 10.447897 ( 11.421267)
|
54
|
+
9.498507 0.826285 10.370417 ( 11.336780)
|
55
|
+
9.758637 0.842156 10.645638 ( 11.595915)
|
56
|
+
9.635031 0.836329 10.516094 ( 11.475492)
|
57
|
+
9.934052 0.825471 10.794286 ( 11.812346)
|
58
|
+
9.652537 0.821982 10.520060 ( 11.434903)
|
59
|
+
9.526788 0.820300 10.384780 ( 11.306397)
|
60
|
+
9.473180 0.812507 10.329689 ( 11.233813)
|
61
|
+
9.862016 0.841529 10.757393 ( 11.734586)
|
62
|
+
9.534627 0.821267 10.392666 ( 11.313970)
|
63
|
+
9.640884 0.837997 10.515254 ( 11.489616)
|
64
|
+
9.535812 0.826216 10.407273 ( 11.318032)
|
65
|
+
9.588703 0.851935 10.476997 ( 11.462256)
|
66
|
+
9.574569 0.834756 10.454909 ( 11.404434)
|
67
|
+
9.650073 0.839516 10.535755 ( 11.488113)
|
68
|
+
9.551275 0.822510 10.415396 ( 11.378195)
|
69
|
+
9.627255 0.829954 10.500136 ( 11.458503)
|
70
|
+
9.560385 0.814457 10.419578 ( 11.333235)
|
71
|
+
9.572809 0.819290 10.438854 ( 11.349594)
|
72
|
+
9.660163 0.824722 10.530198 ( 11.443437)
|
73
|
+
9.661319 0.837408 10.550881 ( 11.512634)
|
74
|
+
9.637423 0.837322 10.520727 ( 11.432594)
|
75
|
+
9.664915 0.825478 10.526599 ( 11.464716)
|
76
|
+
9.644935 0.814938 10.505644 ( 11.424535)
|
77
|
+
9.799771 0.835598 10.671993 ( 11.613622)
|
78
|
+
9.791496 0.840368 10.676233 ( 11.643770)
|
79
|
+
9.760101 0.850254 10.648067 ( 11.619884)
|
80
|
+
9.784358 0.829651 10.658058 ( 11.632889)
|
81
|
+
9.727932 0.844568 10.616464 ( 11.578881)
|
82
|
+
9.776381 0.847439 10.663001 ( 11.648257)
|
83
|
+
9.839221 0.835333 10.714699 ( 11.670378)
|
84
|
+
9.697873 0.836432 10.570815 ( 11.541265)
|
85
|
+
9.867105 0.836122 10.741859 ( 11.681261)
|
86
|
+
9.675377 0.826509 10.539536 ( 11.465271)
|
87
|
+
9.703541 0.830895 10.578611 ( 11.502074)
|
88
|
+
9.717583 0.832110 10.586737 ( 11.531415)
|
89
|
+
9.784151 0.842351 10.662311 ( 11.647167)
|
90
|
+
9.741646 0.832834 10.612608 ( 11.580701)
|
91
|
+
9.687384 0.798745 10.525026 ( 11.493736)
|
92
|
+
9.698579 0.851183 10.586010 ( 11.588731)
|
93
|
+
9.712651 0.823867 10.573837 ( 11.540969)
|
94
|
+
9.657543 0.829349 10.524768 ( 11.443846)
|
95
|
+
9.675987 0.807980 10.521943 ( 11.451106)
|
96
|
+
9.744757 0.817850 10.600094 ( 11.535379)
|
97
|
+
9.683474 0.836913 10.557015 ( 11.525771)
|
98
|
+
9.922540 0.843157 10.805096 ( 11.808377)
|
99
|
+
9.696813 0.821768 10.554695 ( 11.464342)
|
100
|
+
9.760965 0.836511 10.636968 ( 11.594082)
|
@@ -0,0 +1,100 @@
|
|
1
|
+
9.558387 0.795543 10.392696 ( 11.309311)
|
2
|
+
9.524045 0.803011 10.364301 ( 11.318477)
|
3
|
+
9.534609 0.804759 10.383564 ( 11.340585)
|
4
|
+
9.535700 0.800444 10.373048 ( 11.289682)
|
5
|
+
9.532372 0.794646 10.371722 ( 11.287656)
|
6
|
+
9.556350 0.822103 10.425949 ( 11.413659)
|
7
|
+
9.586525 0.824110 10.456246 ( 11.429651)
|
8
|
+
9.551907 0.830509 10.428443 ( 11.411978)
|
9
|
+
9.518711 0.834491 10.398652 ( 11.376422)
|
10
|
+
9.569772 0.827570 10.442956 ( 11.413585)
|
11
|
+
9.618950 0.829319 10.485139 ( 11.440848)
|
12
|
+
9.556727 0.807981 10.401758 ( 11.328267)
|
13
|
+
9.480701 0.804683 10.322360 ( 11.245781)
|
14
|
+
9.563369 0.801410 10.409686 ( 11.334188)
|
15
|
+
9.493082 0.805298 10.335983 ( 11.248441)
|
16
|
+
9.681861 0.803602 10.524930 ( 11.456107)
|
17
|
+
9.614529 0.781155 10.444055 ( 11.364476)
|
18
|
+
9.597825 0.806409 10.442217 ( 11.365743)
|
19
|
+
9.538346 0.813941 10.388972 ( 11.346084)
|
20
|
+
9.538091 0.808328 10.391165 ( 11.346197)
|
21
|
+
9.502600 0.812638 10.360783 ( 11.306602)
|
22
|
+
9.571149 0.826238 10.449697 ( 11.411387)
|
23
|
+
9.531260 0.821429 10.390722 ( 11.532200)
|
24
|
+
9.611447 0.783734 10.431579 ( 11.351863)
|
25
|
+
9.533522 0.806067 10.384192 ( 11.296454)
|
26
|
+
9.586843 0.820340 10.444013 ( 11.383357)
|
27
|
+
9.615441 0.804255 10.456321 ( 11.385184)
|
28
|
+
9.462530 0.803438 10.302507 ( 11.223665)
|
29
|
+
9.676985 0.789649 10.511461 ( 11.427901)
|
30
|
+
9.574692 0.816601 10.427670 ( 11.374204)
|
31
|
+
9.596892 0.803796 10.437442 ( 11.362358)
|
32
|
+
9.562942 0.815001 10.415687 ( 11.383593)
|
33
|
+
9.622502 0.804110 10.470848 ( 11.488275)
|
34
|
+
9.766782 0.828892 10.632272 ( 11.635267)
|
35
|
+
9.612909 0.804247 10.455650 ( 11.421374)
|
36
|
+
9.537415 0.805782 10.390754 ( 11.294518)
|
37
|
+
9.763286 0.805568 10.614687 ( 11.533764)
|
38
|
+
9.507627 0.806313 10.350967 ( 11.299277)
|
39
|
+
9.469710 0.803944 10.312100 ( 11.232190)
|
40
|
+
9.535007 0.795200 10.371960 ( 11.292289)
|
41
|
+
9.530755 0.797043 10.372644 ( 11.289316)
|
42
|
+
9.588961 0.806621 10.431681 ( 11.368492)
|
43
|
+
9.592512 0.808849 10.446866 ( 11.359820)
|
44
|
+
9.653610 0.803463 10.501491 ( 11.419194)
|
45
|
+
9.547770 0.812003 10.405405 ( 11.368690)
|
46
|
+
9.682181 0.812963 10.530854 ( 11.485025)
|
47
|
+
9.491677 0.807396 10.344595 ( 11.281067)
|
48
|
+
9.587365 0.813596 10.442915 ( 11.394766)
|
49
|
+
9.569528 0.814968 10.421925 ( 11.395829)
|
50
|
+
9.499610 0.806958 10.342308 ( 11.266410)
|
51
|
+
9.470981 0.802210 10.311858 ( 11.228286)
|
52
|
+
9.562924 0.794929 10.395599 ( 11.322258)
|
53
|
+
9.601453 0.810256 10.456259 ( 11.374217)
|
54
|
+
9.505371 0.799272 10.354669 ( 11.279456)
|
55
|
+
9.457992 0.795362 10.289520 ( 11.205184)
|
56
|
+
9.628120 0.787671 10.453407 ( 11.377989)
|
57
|
+
9.627611 0.805838 10.470388 ( 11.399739)
|
58
|
+
9.675034 0.812966 10.532779 ( 11.515440)
|
59
|
+
9.612906 0.807182 10.457964 ( 11.434272)
|
60
|
+
9.480996 0.803877 10.325013 ( 11.265876)
|
61
|
+
9.717399 0.823376 10.577638 ( 11.569749)
|
62
|
+
9.665028 0.809491 10.511645 ( 11.488256)
|
63
|
+
9.512832 0.805858 10.363675 ( 11.339722)
|
64
|
+
9.654066 0.807307 10.506755 ( 11.426100)
|
65
|
+
9.865550 0.794908 10.703626 ( 11.618194)
|
66
|
+
9.652618 0.793610 10.493186 ( 11.419415)
|
67
|
+
9.499487 0.796346 10.341364 ( 11.250758)
|
68
|
+
9.544258 0.797515 10.385862 ( 11.284281)
|
69
|
+
9.739863 0.794279 10.570723 ( 11.509588)
|
70
|
+
9.487554 0.785309 10.316760 ( 11.233325)
|
71
|
+
9.481721 0.803731 10.329705 ( 11.255686)
|
72
|
+
9.466643 0.802025 10.313663 ( 11.234516)
|
73
|
+
9.565479 0.798706 10.406513 ( 11.374955)
|
74
|
+
9.546849 0.818211 10.409684 ( 11.368566)
|
75
|
+
9.559145 0.813582 10.418666 ( 11.401304)
|
76
|
+
9.547626 0.787676 10.380384 ( 11.305801)
|
77
|
+
9.731920 0.806463 10.576084 ( 11.499545)
|
78
|
+
9.634309 0.804944 10.477565 ( 11.398455)
|
79
|
+
9.663389 0.797418 10.499369 ( 11.418504)
|
80
|
+
9.741374 0.818880 10.597056 ( 11.575796)
|
81
|
+
9.683985 0.804469 10.527844 ( 11.457434)
|
82
|
+
9.739006 0.808335 10.587852 ( 11.513780)
|
83
|
+
9.761998 0.818945 10.618427 ( 11.614032)
|
84
|
+
9.737508 0.819736 10.593885 ( 11.588014)
|
85
|
+
9.735949 0.821038 10.595284 ( 11.552597)
|
86
|
+
9.750022 0.814069 10.601283 ( 11.567239)
|
87
|
+
9.700983 0.801116 10.542112 ( 11.471005)
|
88
|
+
9.720313 0.798207 10.555314 ( 11.473235)
|
89
|
+
9.685407 0.811225 10.534452 ( 11.467112)
|
90
|
+
9.677940 0.809071 10.526291 ( 11.447495)
|
91
|
+
9.609120 0.813429 10.467227 ( 11.372680)
|
92
|
+
9.712403 0.810281 10.560867 ( 11.485852)
|
93
|
+
9.748022 0.817132 10.603028 ( 11.522460)
|
94
|
+
9.737389 0.801790 10.576720 ( 11.522855)
|
95
|
+
9.709541 0.795349 10.542238 ( 11.544047)
|
96
|
+
9.658660 0.819237 10.515718 ( 11.520783)
|
97
|
+
9.765426 0.829642 10.632481 ( 11.615062)
|
98
|
+
9.731822 0.809695 10.578871 ( 11.558062)
|
99
|
+
9.575340 0.800450 10.421430 ( 11.318465)
|
100
|
+
9.682845 0.796365 10.515529 ( 11.435012)
|