gitlab-derailed_benchmarks 1.6.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.
- 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)
|