danica 2.7.2 → 2.7.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +71 -0
  3. data/.gitignore +6 -1
  4. data/.rubocop.yml +18 -0
  5. data/.rubocop_todo.yml +123 -0
  6. data/Dockerfile +22 -0
  7. data/Gemfile +2 -1
  8. data/README.md +9 -1
  9. data/Rakefile +4 -0
  10. data/config/check_specs.yml +13 -0
  11. data/config/rubycritc.rb +12 -0
  12. data/config/yardstick.rb +13 -0
  13. data/config/yardstick.yml +33 -0
  14. data/danica.gemspec +19 -10
  15. data/docker-compose.yml +14 -9
  16. data/lib/danica.rb +2 -1
  17. data/lib/danica/base_operations.rb +3 -0
  18. data/lib/danica/builder.rb +2 -0
  19. data/lib/danica/common.rb +8 -4
  20. data/lib/danica/dsl.rb +8 -6
  21. data/lib/danica/dsl/builder.rb +4 -1
  22. data/lib/danica/equation.rb +3 -3
  23. data/lib/danica/equation/builder.rb +2 -0
  24. data/lib/danica/exception.rb +3 -2
  25. data/lib/danica/expressable.rb +14 -8
  26. data/lib/danica/expression.rb +4 -2
  27. data/lib/danica/expression/gauss.rb +5 -5
  28. data/lib/danica/formatted.rb +27 -8
  29. data/lib/danica/function.rb +5 -3
  30. data/lib/danica/function/name.rb +2 -0
  31. data/lib/danica/operator.rb +13 -9
  32. data/lib/danica/operator/addition.rb +4 -3
  33. data/lib/danica/operator/chained.rb +4 -3
  34. data/lib/danica/operator/cos.rb +2 -1
  35. data/lib/danica/operator/division.rb +2 -1
  36. data/lib/danica/operator/exponential.rb +2 -1
  37. data/lib/danica/operator/functional.rb +3 -2
  38. data/lib/danica/operator/multiplication.rb +4 -2
  39. data/lib/danica/operator/power.rb +4 -3
  40. data/lib/danica/operator/sin.rb +2 -1
  41. data/lib/danica/operator/squared_root.rb +2 -1
  42. data/lib/danica/variables_holder.rb +7 -4
  43. data/lib/danica/variables_holder/alias_builder.rb +4 -4
  44. data/lib/danica/variables_holder/calculator.rb +2 -0
  45. data/lib/danica/variables_holder/store.rb +3 -2
  46. data/lib/danica/variables_holder/variables_builder.rb +2 -1
  47. data/lib/danica/version.rb +3 -1
  48. data/lib/danica/wrapper.rb +14 -9
  49. data/lib/danica/wrapper/constant.rb +10 -14
  50. data/lib/danica/wrapper/container.rb +3 -3
  51. data/lib/danica/wrapper/group.rb +3 -2
  52. data/lib/danica/wrapper/negative.rb +3 -1
  53. data/lib/danica/wrapper/number.rb +6 -3
  54. data/lib/danica/wrapper/plus_minus.rb +3 -1
  55. data/lib/danica/wrapper/variable.rb +13 -8
  56. data/scripts/check_readme.sh +6 -0
  57. data/scripts/rubycritic.sh +10 -0
  58. data/spec/integration/global/danica/formatted_spec.rb +87 -0
  59. data/spec/integration/global/danica/operator/addition_spec.rb +32 -0
  60. data/spec/integration/{multiplication_spec.rb → global/danica/operator/multiplication_spec.rb} +12 -9
  61. data/spec/integration/{power_spec.rb → global/danica/operator/power_spec.rb} +4 -2
  62. data/spec/integration/{negative_spec.rb → global/danica/wrapper/negative_spec.rb} +9 -8
  63. data/spec/integration/{plus_minus_spec.rb → global/danica/wrapper/plus_minus_spec.rb} +5 -4
  64. data/spec/integration/readme/constant_spec.rb +4 -1
  65. data/spec/integration/readme/danica/formatted_spec.rb +24 -0
  66. data/spec/integration/readme/danica_spec.rb +20 -4
  67. data/spec/integration/readme/equation_spec.rb +4 -2
  68. data/spec/integration/readme/expression_spec.rb +11 -8
  69. data/spec/integration/readme/function_spec.rb +11 -7
  70. data/spec/integration/readme/number_spec.rb +9 -8
  71. data/spec/integration/readme/operator_spec.rb +3 -1
  72. data/spec/integration/readme/variables_spec.rb +8 -6
  73. data/spec/lib/danica/common_spec.rb +71 -10
  74. data/spec/lib/danica/dsl_spec.rb +21 -18
  75. data/spec/lib/danica/equation_spec.rb +10 -8
  76. data/spec/lib/danica/expressable_spec.rb +5 -2
  77. data/spec/lib/danica/expression/gauss_spec.rb +6 -3
  78. data/spec/lib/danica/expression_spec.rb +48 -26
  79. data/spec/lib/danica/formatted_spec.rb +34 -13
  80. data/spec/lib/danica/function/name_spec.rb +3 -1
  81. data/spec/lib/danica/function_spec.rb +14 -10
  82. data/spec/lib/danica/operator/addition_spec.rb +16 -15
  83. data/spec/lib/danica/operator/cos_spec.rb +9 -8
  84. data/spec/lib/danica/operator/division_spec.rb +18 -17
  85. data/spec/lib/danica/operator/exponential_spec.rb +9 -8
  86. data/spec/lib/danica/operator/multiplication_spec.rb +16 -15
  87. data/spec/lib/danica/operator/power_spec.rb +17 -16
  88. data/spec/lib/danica/operator/sin_spec.rb +9 -8
  89. data/spec/lib/danica/operator/squared_root_spec.rb +9 -8
  90. data/spec/lib/danica/operator_spec.rb +13 -4
  91. data/spec/lib/danica/variables_holder/store_spec.rb +19 -13
  92. data/spec/lib/danica/variables_holder_spec.rb +76 -59
  93. data/spec/lib/danica/wrapper/constant_spec.rb +9 -2
  94. data/spec/lib/danica/wrapper/group_spec.rb +4 -1
  95. data/spec/lib/danica/wrapper/negative_spec.rb +4 -1
  96. data/spec/lib/danica/wrapper/number_spec.rb +8 -3
  97. data/spec/lib/danica/wrapper/plus_minus_spec.rb +4 -1
  98. data/spec/lib/danica/wrapper/variable_spec.rb +6 -3
  99. data/spec/lib/danica/wrapper_spec.rb +14 -12
  100. data/spec/lib/danica_spec.rb +6 -5
  101. data/spec/spec_helper.rb +3 -2
  102. data/spec/support/models/expression/baskara.rb +3 -3
  103. data/spec/support/models/expression/parabole.rb +2 -0
  104. data/spec/support/models/expression/quadratic_sum.rb +3 -1
  105. data/spec/support/models/expression/spatial.rb +2 -1
  106. data/spec/support/models/function/my_function.rb +3 -1
  107. data/spec/support/models/function/parabole.rb +1 -1
  108. data/spec/support/models/function/quadratic_sum.rb +2 -0
  109. data/spec/support/models/function/spatial.rb +2 -0
  110. data/spec/support/models/operator/inverse.rb +3 -1
  111. data/spec/support/models/operator/my_operator.rb +3 -1
  112. data/spec/support/models/variables_holder/dummy.rb +3 -1
  113. data/spec/support/shared_contexts/common.rb +4 -2
  114. data/spec/support/shared_examples/base_operations.rb +7 -4
  115. data/spec/support/shared_examples/common.rb +3 -1
  116. data/spec/support/shared_examples/operator/chained.rb +12 -6
  117. data/spec/support/shared_examples/operator/dual_term.rb +9 -8
  118. data/spec/support/shared_examples/operator/single_input.rb +7 -2
  119. data/spec/support/shared_examples/variable.rb +8 -4
  120. metadata +158 -36
  121. data/spec/integration/addition_spec.rb +0 -28
  122. data/spec/integration/formatted_spec.rb +0 -75
  123. data/spec/integration/readme/formatting_spec.rb +0 -34
@@ -1,28 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'integration of addition' do
4
- describe 'with negative and positivenegative (+/-) numbers' do
5
- subject do
6
- Danica::Operator::Addition.new(
7
- Danica::Wrapper::Negative.new(1),
8
- 2,
9
- -3,
10
- 4,
11
- Danica::Wrapper::PlusMinus.new(5),
12
- Danica::Wrapper::Number.new(-6)
13
- )
14
- end
15
-
16
- describe '#to_gnu' do
17
- it 'returns the correct string' do
18
- expect(subject.to_gnu).to eq('-1 + 2 -3 + 4 + 5 -6')
19
- end
20
- end
21
-
22
- describe '#to_tex' do
23
- it 'returns the correct string' do
24
- expect(subject.to_tex).to eq('-1 + 2 -3 + 4 \pm 5 -6')
25
- end
26
- end
27
- end
28
- end
@@ -1,75 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'integration of formatted objects' do
4
- let(:variable) { Danica.build(:v) { v } }
5
- subject do
6
- variable.tex
7
- end
8
-
9
- context 'when interacting with a multiplication' do
10
- let(:other) do
11
- Danica.build(:x, :y) { x * y }
12
- end
13
- context 'when multipling another multiplication' do
14
- let(:result) { subject * other }
15
- it do
16
- expect(result).to be_a(Danica::Formatted)
17
- end
18
-
19
- it 'knows how to convert it to string' do
20
- expect(result.to_s).to eq('v \\cdot x \\cdot y')
21
- end
22
- end
23
-
24
- context 'when multiplicated by another multiplication' do
25
- let(:result) { other * subject }
26
- it do
27
- expect(result).to be_a(Danica::Formatted)
28
- end
29
-
30
- it 'knows how to convert it to string' do
31
- expect(result.to_s).to eq('x \\cdot y \\cdot v')
32
- end
33
- end
34
- end
35
-
36
- context 'when interacting with a sum' do
37
- let(:other) do
38
- Danica.build(:x, :y) { x + y }
39
- end
40
- context 'when summing another sum' do
41
- let(:result) { subject + other }
42
- it do
43
- expect(result).to be_a(Danica::Formatted)
44
- end
45
-
46
- it 'knows how to convert it to string' do
47
- expect(result.to_s).to eq('v + x + y')
48
- end
49
- end
50
-
51
- context 'when added by another sum' do
52
- let(:result) { other + subject }
53
- it do
54
- expect(result).to be_a(Danica::Formatted)
55
- end
56
-
57
- it 'knows how to convert it to string' do
58
- expect(result.to_s).to eq('x + y + v')
59
- end
60
- end
61
- end
62
-
63
- context 'when operating multiplication and subtraction all toguether' do
64
- let(:variable) { Danica::Wrapper::Variable.new(:v) }
65
- let(:x) { Danica::Wrapper::Variable.new(:x) }
66
- let(:result) { x * (-subject) }
67
- it do
68
- expect(result).to be_a(Danica::Formatted)
69
- end
70
-
71
- it 'knows how to convert it to string' do
72
- expect(result.to_s).to eq('x \cdot \left(-v\right)')
73
- end
74
- end
75
- end
@@ -1,34 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'formatting' do
4
- subject do
5
- value = 1 / 3.0
6
- Danica.build(:x) do
7
- x + value
8
- end
9
- end
10
-
11
- describe '#to_tex' do
12
- it 'formats the output' do
13
- expect(subject.to_tex(decimals: 3)).to eq('x + 0.333')
14
- end
15
- end
16
- end
17
-
18
- describe Danica::Formatted do
19
- let(:expression) do
20
- value = 1 / 3.0
21
- Danica.build(:x) do
22
- x + value
23
- end
24
- end
25
- subject do
26
- expression.tex(decimals: 3)
27
- end
28
-
29
- describe '#to_tex' do
30
- it 'formats the output' do
31
- expect(subject.to_s).to eq('x + 0.333')
32
- end
33
- end
34
- end