-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3 from LisiLisenok/develop
0.4.0
- Loading branch information
Showing
43 changed files
with
2,742 additions
and
936 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,10 @@ | |
[compiler] | ||
source=source | ||
resource=resource | ||
source=examples | ||
|
||
[defaults] | ||
encoding=UTF-8 | ||
|
||
[formattool] | ||
profile=my |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
75 changes: 75 additions & 0 deletions
75
examples/herd/examples/asynctest/fibonacci/fibonacci.ceylon
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
import ceylon.promise { | ||
|
||
Deferred, | ||
Promise | ||
} | ||
import java.lang { | ||
|
||
Runnable, | ||
Thread | ||
} | ||
|
||
"Calculates Fibonacci number by its index. | ||
Function returns incorrect result in order to demonstrate test framework output. | ||
" | ||
throws( `class AssertionError`, "passed index of Fibonacci number `indexOfFibonacciNumber` is less or equals to zero" ) | ||
shared Integer positiveFibonacciNumber( Integer indexOfFibonacciNumber ) { | ||
"Fibonnachi number index must be positive" | ||
assert ( indexOfFibonacciNumber > 0 ); | ||
variable Integer n0 = 0; | ||
variable Integer n1 = 1; | ||
variable Integer ret = 1; | ||
variable Integer currentIndex = 0; // use 1 to succeed the test! | ||
while ( currentIndex < indexOfFibonacciNumber ) { | ||
ret = n0 + n1; | ||
n0 = n1; | ||
n1 = ret; | ||
currentIndex ++; | ||
} | ||
return ret; | ||
} | ||
|
||
"Calculates index of positive Fibonacci number. That's may not be correct for index 1 and 2, | ||
which corresponds to equals Fibonacci numbers." | ||
throws( `class AssertionError`, "passed `fibonacciNumber` is not a Fibonacci number" ) | ||
shared Integer fibonacciNumberIndex( Integer fibonacciNumber ) { | ||
"fibonacci number must be positive" | ||
assert ( fibonacciNumber > 0 ); | ||
variable Integer n0 = 0; | ||
variable Integer n1 = 1; | ||
variable Integer ret = 1; | ||
variable Integer currentIndex = 1; | ||
while ( ret < fibonacciNumber ) { | ||
ret = n0 + n1; | ||
n0 = n1; | ||
n1 = ret; | ||
currentIndex ++; | ||
} | ||
"passed `fibonacciNumber` is not a Fibonacci number" | ||
assert ( ret == fibonacciNumber ); | ||
return currentIndex; | ||
} | ||
|
||
|
||
"Calculates Fibonacci number by its index in separated thread and returns result as promise. | ||
This is function to be tested." | ||
shared Promise<Integer> asyncPositiveFibonacciNumber( Integer indexOfFibonacciNumber ) { | ||
Deferred<Integer> ret = Deferred<Integer>(); | ||
|
||
Thread th = Thread ( | ||
object satisfies Runnable { | ||
shared actual void run() { | ||
try { | ||
ret.fulfill( positiveFibonacciNumber( indexOfFibonacciNumber ) ); | ||
} | ||
catch ( Throwable err ) { | ||
ret.reject( err ); | ||
} | ||
} | ||
} | ||
); | ||
th.start(); | ||
|
||
return ret.promise; | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
" | ||
Testing of asynchronous calculation of Fibonacci numbers. | ||
Test is performed on [[asyncPositiveFibonacciNumber]] using [[runFibonacciTest]] test function. | ||
>Function [[positiveFibonacciNumber]] returns incorrect results in order to demonstrate test framework output. | ||
" | ||
by( "Lis" ) | ||
shared package herd.examples.asynctest.fibonacci; |
75 changes: 0 additions & 75 deletions
75
examples/herd/examples/asynctest/fibonnachi/fibonnachi.ceylon
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.