You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: atom-samples/fibonacci/README.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,17 +4,17 @@ This sample is a primitive implementation of calculating N-th number of Fibonacc
4
4
5
5
## Workflow
6
6
7
-
1. Each solution starts with defining a proper contract. [IntegerValue](atom-samples/fibonacci/src/main/java/oo/atom/samples/fibonacci/IntegerValue.java) is a *public contract* for some integral value. The role of the public contracts is discussed [here]()
7
+
1. Each solution starts with defining a proper contract. [IntegerValue](src/main/java/oo/atom/samples/fibonacci/IntegerValue.java) is a *public contract*, representing some integral value. The role of the public contracts is discussed [here]()
8
8
9
-
2.[AssertIntegerValueIsMalformed](atom-samples/fibonacci/src/main/java/oo/atom/samples/fibonacci/AssertIntegerValueIsMalformed.java) and [AssertIntegerValueBoxesCertainInteger](atom-samples/fibonacci/src/main/java/oo/atom/samples/fibonacci/AssertIntegerValueBoxesCertainInteger.java) - these are assertions, used to test the `IntegerValue` implementors. The concept of reusable assertions will be covered [here]()
9
+
2.[AssertIntegerValueIsMalformed](src/main/java/oo/atom/samples/fibonacci/AssertIntegerValueIsMalformed.java) and [AssertIntegerValueBoxesCertainInteger](src/main/java/oo/atom/samples/fibonacci/AssertIntegerValueBoxesCertainInteger.java) - these are assertions, used to test the `IntegerValue` implementors. The concept of reusable assertions will be covered [here]()
10
10
11
11
3. We defined the contract and the assertions to test the contract implementors. Now it is time to define the Atoms itself:
12
-
-[IvConstant](atom-samples/fibonacci/src/main/java/oo/atom/samples/fibonacci/IvConstant.java) - the simplest Atom-implementor of `IntegerValue` contract. Just a constant integer.
13
-
-[IvUndefined](atom-samples/fibonacci/src/main/java/oo/atom/samples/fibonacci/IvUndefined.java) - an Atom, which represents undefined integral value. It is useful when there is a nedd to represent results of calculations, inapplicable for integral values, like division by zero.
14
-
-[IvSum](atom-samples/fibonacci/src/main/java/oo/atom/samples/fibonacci/IvSum.java) - an Atom, representing a sum of two integrals. It demonstrates the usage of [object composition]() - a primary instrument for assembling more complex Atom objects from simpler ones.
15
-
-[IvInferred](atom-samples/fibonacci/src/main/java/oo/atom/samples/fibonacci/IvInference.java) - it is a special kind of Atom - [Inferred Atom](). It is used for non-trivial cases of object composition.
16
-
-[TvFibonacci](atom-samples/fibonacci/src/main/java/oo/atom/samples/fibonacci/TvFibonacci.java) - at last, the implementation of an Atom, representing the Fibonacci number at some certain position. Conceptually, is it an [alias] from `TvInferred`. Aliases are used to gracefully outline and reuse the object composition chains.
12
+
-[IvConstant](src/main/java/oo/atom/samples/fibonacci/IvConstant.java) - the simplest Atom-implementor of `IntegerValue` contract. Just a constant integer.
13
+
-[IvUndefined](src/main/java/oo/atom/samples/fibonacci/IvUndefined.java) - an Atom, which represents undefined integral value. It is useful when there is a need to represent results of calculations, inapplicable for integral values, like division by zero. In case of Fibonacci numbers, `IvUndefined` is used to represent unexisting values at negative position.
14
+
-[IvSum](src/main/java/oo/atom/samples/fibonacci/IvSum.java) - an Atom, representing a sum of two integrals. It demonstrates the usage of [object composition]() - a primary instrument for assembling more complex Atom objects from simpler ones.
15
+
-[IvInferred](src/main/java/oo/atom/samples/fibonacci/IvInference.java) - it is a special kind of Atom - [Inferred Atom](). It is used for non-trivial cases of object composition.
16
+
-[TvFibonacci](src/main/java/oo/atom/samples/fibonacci/TvFibonacci.java) - at last, the implementation of an Atom, representing the Fibonacci number at some certain position. Conceptually, it is an [alias]() from `TvInferred`. Aliases are used to gracefully outline and reuse common object composition chains.
17
17
18
-
4. We defined the nesessary functionality. Now, it's time to test it. It is always possible to test all Atoms using classical approach, populated by mainstream frameworks like JUnit or TestNG. However, OO-atom provides an alternate way, which allows to achive ultimate test coverage. Details are [here](). The actual tests for the Atoms is located [here](atom-samples/fibonacci/src/main/java/oo/atom/samples/fibonacci/).
18
+
4. We defined the nesessary functionality. Now, it's time to test it. It is always possible to test all Atoms using classical approach, populated by mainstream frameworks like JUnit or TestNG. However, OO-atom provides an alternate way, which allows to achieve *ultimate* test coverage. Details are [here](). The actual tests for the Atoms are located [here](src/main/java/oo/atom/samples/fibonacci/).
0 commit comments