90 Commits

Author SHA1 Message Date
Jake Ireland
baaaf6db9a Merge pull request #35 from Smaug123/str-rotate-optimise
Rotating functions optimise
2021-05-03 18:56:12 +12:00
Jake W. Ireland
ed8d568a93 Added more tests for code coverage goal 2021-05-03 18:50:47 +12:00
Jake W. Ireland
f1022d54b4 Rotating functions optimise
The two rotating functions that we have (for strings and for arrays) are not optimal, and I didn't quite pick up on this in [`b3acd44`](b3acd440f1).  This commit optimises them:
```julia
julia> using Benchmarktools, Random

julia> A = rand(1000);

julia> @btime rotate_right_old(A, 3);
  4.059 μs (1 allocation: 7.94 KiB)

julia> @btime rotate_right_new(A, 3);
  622.573 ns (1 allocation: 7.94 KiB)

julia> rotate_right_old(A, 3) == rotate_right_new(A, 3)
true

julia> @btime rotate_left_old(A, 3);
  4.042 μs (1 allocation: 7.94 KiB)

julia> @btime rotate_left_new(A, 3);
  639.320 ns (1 allocation: 7.94 KiB)

julia> rotate_left_old(A, 3) == rotate_left_new(A, 3)
true

julia> S = randstring(1000);

julia> @btime rotate_left_str_old(S, 3);
  30.889 μs (13 allocations: 10.55 KiB)

julia> @btime rotate_left(S, 3);
  883.661 ns (3 allocations: 2.16 KiB)

julia> rotate_left_str_old(S, 3) == rotate_left(S, 3)
true

julia> @btime rotate_right_str_old(S, 3);
  30.821 μs (13 allocations: 10.55 KiB)

julia> @btime rotate_right(S, 3);
  885.314 ns (3 allocations: 2.16 KiB)

julia> rotate_right_str_old(S, 3) == rotate_right(S, 3)
true
```
2021-04-30 11:38:39 +12:00
Jake Ireland
d1a41bf721 Merge pull request #34 from Smaug123/monoalphabetic-io
Default chatty to io = stdout in crack_monoalphabetic; suppress chatty printing in tests (closes #31)
2021-04-30 10:50:18 +12:00
Jake W. Ireland
925b8de686 Default chatty to io = stdout in crack_monoalphabetic; suppress chatty printing in tests 2021-04-29 11:42:15 +12:00
Jake Ireland
2d922ca2ea Merge pull request #29 from Smaug123/bug-monoalphabetic
Type-error bug fix for monoalphabetic (fixes #28)
v2.1.1
2021-03-10 11:42:28 +13:00
Jake W. Ireland
cc144fa165 Added chatty crack_monoalphabetic test for code coverage goal 2021-03-10 11:32:57 +13:00
Jake W. Ireland
48b986af11 Updated version number 2021-03-10 11:28:08 +13:00
Jake Ireland
08086b9248 Merge pull request #30 from Smaug123/rem-x86
Remove x86 workflow
2021-03-10 11:26:27 +13:00
Smaug123
e419823c47 Remove x86 workflow 2021-03-09 19:25:01 +00:00
Jake W. Ireland
2431d3c0f7 Fixed syntax error 2021-03-09 13:33:24 +13:00
Jake W. Ireland
2ae0efd513 Type-error bug fix for monoalphabetic (fixes #28) 2021-03-09 13:18:01 +13:00
Jake Ireland
2ae8bc6bab Updated compat entry for julia v2.1.0 2021-01-16 10:36:17 +13:00
Jake Ireland
ace12580e6 Merge pull request #26 from Smaug123/version-update
Updated version number
2021-01-16 10:29:30 +13:00
Jake Ireland
9859fd86c0 Updated version number
Additions: 
  - Ciphers:
    - Rail Fence
    - Atbash (special case for monoalphabetic substitution cipher)
  - Performance considerations
  - Docstrings
2021-01-15 14:00:03 +13:00
Jake Ireland
96091758fd Merge pull request #24 from jakewilliami/master
Some performance considerations, code style cleanup, added rail fence implementation (see #23), updated caesar method for shift fallback, added atbash cipher implementation, and added documentation
2021-01-13 02:11:48 +13:00
Jake W. Ireland
fd47cff503 Renamed Travis in order to migrate to GH Actions (a token-free system) 2021-01-13 02:11:00 +13:00
Jake W. Ireland
c715c190bf Removed un-needed comment 2021-01-13 02:05:35 +13:00
Jake W. Ireland
938d326ce6 Merged substitution.jl with monoalphabetic.jl, updating documentation accordingly 2021-01-13 02:05:01 +13:00
Jake W. Ireland
e23f905f3e Ensure tests don't have multiple imports (the base runtests file already imports ClassicalCiphers) 2021-01-13 02:04:01 +13:00
Jake W. Ireland
40feeb4844 Fixed typo 2021-01-13 00:57:57 +13:00
Jake W. Ireland
3495d47080 Fixed bug in CI 2021-01-13 00:53:01 +13:00
Jake W. Ireland
6b9a54fdd9 Refined docstrings and added documentation 2021-01-13 00:39:37 +13:00
Jake W. Ireland
46cf9ca9fa rectified incorrect test in substitution 2021-01-12 23:49:48 +13:00
Jake W. Ireland
55183d284c Added substitution cipher 2021-01-11 19:31:53 +13:00
Jake W. Ireland
29ebc22cd2 Updated Caesar method to fall back to traditionally used shift, and changed one test case for a more accurate test statement... 2021-01-11 17:30:40 +13:00
Jake W. Ireland
8c467f6c89 Updated README.md for Rail Fence cipher 2021-01-08 04:54:10 +13:00
Jake W. Ireland
9cb4f1306c Added Rail Fence Cipher implementation (addresses #23)
This is only my attempt at an implementation.  @r0cketr1kky can still have another attempt, or refine my solution, but it is here now for people to use.

TODO: add better docstrings.
2021-01-08 04:48:00 +13:00
Jake W. Ireland
09f71792f3 Refined code style to be more in line with Blue Code Style guide 2021-01-08 02:48:44 +13:00
Jake W. Ireland
b3acd440f1 Performance considerations and addition of union of types
- Performance considerations, including better typing where possible; and
  - Addition of un-exported `AbstractPair` type for more general use of `playfair` functions
2021-01-08 02:03:06 +13:00
Patrick Stevens
c4ebe4c0dc Bump version to 2.0.1 (#22) v2.0.1 2019-09-12 21:09:10 +01:00
Patrick Stevens
e385968a42 Bump to actual release 2.0 (#21) 2019-09-12 21:07:10 +01:00
Patrick Stevens
abc8d090c5 Issue a version (#19) 1.0.1 2.0.0 2019-09-12 19:23:12 +01:00
Patrick Stevens
2a0eb5c630 Move to Project.toml, bump to Julia v1 (#18) 2019-09-12 19:18:28 +01:00
Smaug123
3196694bc1 Merge pull request #16 from staticfloat/updated_ci_url
Update CI URLs to point to new caching infrastructure
v0.3.1
2017-05-17 07:30:57 +01:00
Elliot Saba
3ff235bbff Update CI URLs to point to new caching infrastructure 2017-05-16 16:56:02 -07:00
Smaug123
6ff2628c15 Merge pull request #15 from tkelman/patch-1
use specific version numbers for Travis tests; retire julia 0.4 support
v0.3.0
2017-05-04 22:17:54 +01:00
Tony Kelman
2d99024201 Drop Julia 0.4 support
set minimum version to 0.5 in REQUIRE
2017-05-04 11:50:22 -07:00
Smaug123
f0b990436d Remove Julia 0.4 from Travis tests
… since Julia 0.4 is no longer supported for ClassicalCiphers.jl.
2017-05-04 19:33:14 +01:00
Tony Kelman
4402a19f6e use specific version numbers for Travis tests
since 0.4 is still supported according to REQUIRE,
but release is 0.5 at the moment and will be 0.6 soon
2017-05-04 11:26:05 -07:00
Smaug123
e8f8172957 Merge pull request #14 from Smaug123/tidyup/remove-comment
Remove commented include from solitaire
2017-04-30 09:44:31 +01:00
Smaug123
b03a7a2996 Remove commented include from solitaire 2017-04-28 18:40:43 +01:00
Smaug123
bc4ad4cb3f Merge pull request #13 from cormullion/myfork
Updates for v0.5 and v0.6
2017-04-28 18:38:14 +01:00
cormullion
ed2e4ef899 add Compat to see if it keeps Travis happier 2017-04-28 15:40:59 +01:00
cormullion
a3da67ce7e updates for 0.6 2017-04-28 11:18:49 +01:00
cormullion
8c3a152225 some fixes for v0.5 2017-04-28 11:06:03 +01:00
Smaug123
4e02a36b07 Fix some incorrect documentation in README 2016-11-08 19:57:54 +00:00
Smaug123
ce30c83132 Merge pull request #12 from Smaug123/pull-request/d3b54be6
Make crack_cipher outputs consistent for different ciphers
2016-01-16 22:01:00 +00:00
Smaug123
d3b54be6ed Make crack_cipher outputs consistent for different ciphers 2016-01-16 21:45:40 +00:00
Smaug123
aebd353646 More Lint-related changes v0.2.0 v1.0.0 2016-01-13 18:56:20 +00:00