danica 2.7.2 → 2.7.7

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.
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