trackler 2.2.1.143 → 2.2.1.144

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/clojure/README.org +4 -2
  4. data/tracks/powershell/.gitignore +4 -0
  5. data/tracks/powershell/README.md +13 -0
  6. data/tracks/powershell/config.json +17 -4
  7. data/tracks/powershell/docs/ABOUT.md +16 -0
  8. data/tracks/powershell/docs/INSTALLATION.md +42 -0
  9. data/tracks/powershell/docs/LEARNING.md +28 -0
  10. data/tracks/powershell/docs/RESOURCES.md +5 -0
  11. data/tracks/powershell/docs/SNIPPET.txt +7 -3
  12. data/tracks/powershell/docs/TESTS.md +21 -0
  13. data/tracks/powershell/docs/img +0 -0
  14. data/tracks/powershell/exercises/hamming/hamming-example.ps1 +1 -1
  15. data/tracks/powershell/exercises/hamming/hamming.tests.ps1 +15 -15
  16. data/tracks/powershell/exercises/hello-world/hello-world-example.ps1 +4 -0
  17. data/tracks/powershell/exercises/hello-world/hello-world.tests.ps1 +4 -4
  18. data/tracks/powershell/exercises/leap/README.md +8 -0
  19. data/tracks/powershell/exercises/leap/leap-example.ps1 +4 -4
  20. data/tracks/powershell/exercises/leap/leap.tests.ps1 +7 -7
  21. data/tracks/powershell/exercises/two-fer/.version +1 -0
  22. data/tracks/powershell/exercises/two-fer/README.md +20 -0
  23. data/tracks/powershell/exercises/two-fer/TwoFer.example.ps1 +15 -0
  24. data/tracks/powershell/exercises/two-fer/TwoFer.ps1 +9 -0
  25. data/tracks/powershell/exercises/two-fer/TwoFer.tests.ps1 +36 -0
  26. data/tracks/python/exercises/markdown/markdown.py +7 -11
  27. data/tracks/rust/config.json +23 -0
  28. data/tracks/rust/exercises/diamond/Cargo.toml +6 -0
  29. data/tracks/rust/exercises/diamond/README.md +92 -0
  30. data/tracks/rust/exercises/diamond/example.rs +68 -0
  31. data/tracks/rust/exercises/diamond/src/lib.rs +6 -0
  32. data/tracks/rust/exercises/diamond/tests/diamond.rs +100 -0
  33. data/tracks/rust/exercises/spiral-matrix/Cargo.toml +4 -0
  34. data/tracks/rust/exercises/spiral-matrix/README.md +63 -0
  35. data/tracks/rust/exercises/spiral-matrix/example.rs +35 -0
  36. data/tracks/rust/exercises/spiral-matrix/src/lib.rs +6 -0
  37. data/tracks/rust/exercises/spiral-matrix/tests/spiral-matrix.rs +55 -0
  38. data/tracks/swift/exercises/isbn-verifier/Tests/IsbnVerifierTests/IsbnVerifierTests.swift +5 -0
  39. metadata +24 -4
  40. data/tracks/powershell/docs/INSTRUCTIONS.md +0 -14
  41. data/tracks/powershell/exercises/hello-world/hello-world_example.ps1 +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b65c8a425dbf105a088d9dbaf07e19f8f0391b4d
4
- data.tar.gz: a91c0542e0d47d449d0844166d924688af580f06
3
+ metadata.gz: eb51fb7ee44f636504401640885cdc66ec06f78c
4
+ data.tar.gz: 7062ee14e5593ea35ad7f5962982945a30876d9f
5
5
  SHA512:
6
- metadata.gz: 82bf770e80b49014a2835430b8533263e55d288afca5174018889303989666d2d8f9f06d1a7cea641d4707cb5010652beaf8c9367734af4956c72197b4f80c4c
7
- data.tar.gz: 1393c650ebdc992c6e15029799280df1fbcfb5aa9a02c5fc6957423863189ef58059f9ea1edd46696d5e40319c4b3153df34dfbe4081e51498208eb02dc418a3
6
+ metadata.gz: 5c1491d32f0f088587e5f0d76767b2614f5b92eb7201da23983a464051ca97c9b516386183d3278689a90fca0d9eb9d9c66daff779f8773170e79259971307bc
7
+ data.tar.gz: 5acd3d5935adc9521292902cb4248a617b78c05d1ecd44f16c3372578f6268883a2b86e773809d572a6069d48f2b3bd02c690312c03e67cbb2f51f8f03342498
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.2.1.143"
2
+ VERSION = "2.2.1.144"
3
3
  end
@@ -1,7 +1,9 @@
1
1
  #+TITLE: Exercism Clojure Track
2
2
 
3
- #+ATTR_HTML: :alt Build Status
4
- [[https://travis-ci.org/exercism/clojure][https://travis-ci.org/exercism/clojure.svg]]
3
+ #+ATTR_HTML: :alt Travis Build Status
4
+ [[https://travis-ci.org/exercism/clojure][https://travis-ci.org/exercism/clojure.svg?branch=master]]
5
+ #+ATTR_HTML: :alt Appveyor Build Status
6
+ [[https://ci.appveyor.com/project/haus/clojure][https://ci.appveyor.com/api/projects/status/k7lh9ohu77sqcwp2/branch/master#.jpg]]
5
7
 
6
8
  Exercism exercises in Clojure
7
9
 
@@ -1,3 +1,7 @@
1
1
  bin/configlet
2
2
  bin/configlet.exe
3
3
  exercises/hamming/hamming.ps1
4
+ .vs/ProjectSettings.json
5
+ .vs/slnx.sqlite
6
+ .vs/VSWorkspaceState.json
7
+ .vs/powershell/v15/.suo
@@ -6,3 +6,16 @@ Exercism Exercises for Windows PowerShell
6
6
 
7
7
  Please see the [contributing guide](https://github.com/exercism/x-api/blob/master/CONTRIBUTING.md#the-exercise-data)
8
8
 
9
+ Due to the spected amount of parallel changes to the **config.json** file, entries regarding the related exercise should be edited during the merging process to the master.
10
+
11
+ ## Development Guidelines (by Microsoft)
12
+
13
+ The topics in this section provide development guidelines that you can use to produce well-formed cmdlets. By leveraging the common functionality provided by the Windows PowerShell runtime and by following these guidelines, you can develop robust cmdlets with minimal effort and provide the user with a consistent experience. Additionally, you will reduce the test burden because common functionality does not require retesting.
14
+
15
+ [Cmdlet Development Guidelines (by Microsoft)](https://msdn.microsoft.com/en-us/library/ms714657(v=vs.85).aspx):
16
+
17
+ * [Required Development Guidelines](https://msdn.microsoft.com/en-us/library/dd878238(v=vs.85).aspx)
18
+ * [Strongly Encouraged Development Guidelines](https://msdn.microsoft.com/en-us/library/dd878270(v=vs.85).aspx)
19
+ * [Advisory Development Guidelines](https://msdn.microsoft.com/en-us/library/dd878291(v=vs.85).aspx)
20
+
21
+ !!! [Approved Verbs for Windows PowerShell Commands](https://msdn.microsoft.com/en-us/library/ms714428(v=vs.85).aspx)
@@ -6,7 +6,7 @@
6
6
  "active": false,
7
7
  "foregone": [
8
8
 
9
- ],
9
+ ],
10
10
  "exercises": [
11
11
  {
12
12
  "uuid": "83c215e6-4a4e-4302-8d68-47f367478d2c",
@@ -15,7 +15,7 @@
15
15
  "unlocked_by": null,
16
16
  "difficulty": 1,
17
17
  "topics": [
18
-
18
+ "strings"
19
19
  ]
20
20
  },
21
21
  {
@@ -25,7 +25,19 @@
25
25
  "unlocked_by": null,
26
26
  "difficulty": 1,
27
27
  "topics": [
28
-
28
+ "control_flow_if_else_statements",
29
+ "integers"
30
+ ]
31
+ },
32
+ {
33
+ "uuid": "45f285c2-9358-451d-a931-1dee54df7b67",
34
+ "slug": "two-fer",
35
+ "core": false,
36
+ "unlocked_by": null,
37
+ "difficulty": 1,
38
+ "topics": [
39
+ "optional_values",
40
+ "strings"
29
41
  ]
30
42
  },
31
43
  {
@@ -35,7 +47,8 @@
35
47
  "unlocked_by": null,
36
48
  "difficulty": 1,
37
49
  "topics": [
38
-
50
+ "filtering",
51
+ "strings"
39
52
  ]
40
53
  }
41
54
  ]
@@ -0,0 +1,16 @@
1
+ Windows PowerShell® is a task-based command-line shell and scripting language designed especially for system administration. Built on the .NET Framework, Windows PowerShell helps IT professionals and power users control and automate the administration of the Windows operating system and applications that run on Windows.
2
+
3
+ Windows PowerShell commands, called cmdlets, let you manage the computers from the command line. Windows PowerShell providers let you access data stores, such as the registry and certificate store, as easily as you access the file system. In addition, Windows PowerShell has a rich expression parser and a fully developed scripting language.
4
+
5
+ Windows PowerShell includes the following features:
6
+
7
+ * Cmdlets for performing common system administration tasks, such as managing the registry, services, processes, and event logs, and using Windows Management Instrumentation (WMI).
8
+ * A task-based scripting language and support for existing scripts and command-line tools.
9
+ * Consistent design. Because cmdlets and system data stores use common syntax and naming conventions, data can be shared easily and the output from one cmdlet can be used as the input to another cmdlet without reformatting or manipulation.
10
+ * Simplified, command-based navigation of the operating system, which lets users navigate the registry and other data stores by using the same techniques that they use to navigate the file system.
11
+ * Powerful object manipulation capabilities. Objects can be directly manipulated or sent to other tools or databases.
12
+ * Extensible interface. Independent software vendors and enterprise developers can build custom tools and utilities to administer their software.
13
+
14
+ [PowerShell has been open sourced](https://github.com/PowerShell/PowerShell) and when released, PowerShell Core 6 will be supported on Windows, Linux and MacOS.
15
+
16
+ Detailed documentation on many PowerShell concepts and features can be found at https://docs.microsoft.com/en-us/powershell
@@ -0,0 +1,42 @@
1
+ ## PowerShell language track requirements
2
+
3
+ The Exercism Windows PowerShell language track requires installed on your system:
4
+
5
+ * Windows PowerShell or Windows PowerShell Core
6
+ * Pester test and mock framework module installed
7
+
8
+ (PS: Support for PowerShell is limited to critical fixes. PowerShell Core is consistently maintained and has greater cross-platform support)
9
+
10
+ ### Installing Windows PowerShell
11
+
12
+ PowerShell comes pre-installed on all Windows operating systems from Windows 7 SP1 onward.
13
+
14
+ You can find the latest version of PowerShell and installation instructions for all platforms (Linux, macOS and Windows) [here](https://github.com/PowerShell/PowerShell/blob/master/README.md#get-powershell).
15
+
16
+ ### Installing and updating the Pester framework
17
+
18
+ [Pester](https://github.com/pester/Pester) is the PowerShell testing framework. Since version 4.0.9 it is compatible with PowerShell Core on Windows, Linux and MacOS (with some limitations)
19
+
20
+ It is preinstalled on Windows 10, however, it is recommended you update by running the following PowerShell command:
21
+
22
+ ```PowerShell
23
+
24
+ Install-Module -Name Pester -Force -SkipPublisherCheck
25
+
26
+ ```
27
+ For subsequent updates, run:
28
+
29
+ ``` PowerShell
30
+ Update-Module -Name Pester
31
+ ```
32
+ if necessary, further instructions for installation are available at: https://github.com/pester/Pester/wiki/Installation-and-Update
33
+
34
+ ## Using an IDE
35
+
36
+ If you want a more full-featured editing experience, you probably want to use an IDE. These are the most popular IDE's that support building PowerShell projects:
37
+
38
+ ### All platforms
39
+ * [PowerShell ISE], build-in graphical IDE that comes with PowerShell
40
+ * [Visual Studio Code](https://code.visualstudio.com/download) with the [PowerShell extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell). Visual Studio Code will also allow you to run the tests and also debug your code.
41
+ * [Atom](https://atom.io/) with the [PowerShell package](https://atom.io/packages/language-powershell)
42
+ * [Sublime Text 3](https://www.sublimetext.com/3) with the [PowerShell package](https://packagecontrol.io/packages/PowerShell)
@@ -0,0 +1,28 @@
1
+ # Learning PowerShell
2
+
3
+ A great place to start learning PowerShell is at the PowerShell Github repository where it has a [learning section](https://github.com/PowerShell/PowerShell/tree/master/docs/learning-powershell). This has a huge amount of information and links to a wide range of PowerShell topics.
4
+
5
+ PowerShell also has a very complete self documenting help system. You can explore much of what PowerShell offers using the `Get-Help` cmdlet. From within PowerShell, try:
6
+
7
+ ``` PowerShell
8
+ Get-Help about
9
+ ```
10
+
11
+ You will see about 3 pages of topics that can be explored.
12
+
13
+ Two further functions that will be of great use are:
14
+
15
+ * Get-Command
16
+ * Get-Member
17
+
18
+ Wanting to know what these do? Try `Get-Help Get-Command` and `Get-Help Get-Member` of course.
19
+
20
+ ## PowerShell Verbs and Nouns
21
+
22
+ PowerShell follows quite a strict Verb-Noun for the naming of its cmdlets. Initially this can be a jarring experience to seasoned programmers. Whilst you can name your functions anything you like, becoming familiar with and adopting the standard verbs will improve your PowerShell coding.
23
+
24
+ To see a list of all the approved verbs, simply run:
25
+
26
+ ``` PowerShell
27
+ Get-Verb
28
+ ```
@@ -0,0 +1,5 @@
1
+ # Futher Reading
2
+
3
+ * A large resource of reference and training material can be found at the [PowerShell GitHub repostory](https://github.com/PowerShell/PowerShell/blob/master/docs/learning-powershell/powershell-beginners-guide.md#recommended-training-and-reading])
4
+ * PowerShell Documentation is found at https://docs.microsoft.com/en-us/powershell/
5
+ * Channel 9 series on [Getting Started with PowerShell 3.0](https://channel9.msdn.com/Series/GetStartedPowerShell3). This is still a valuable series even though PowerShell 3.0 is now old and superseded.
@@ -1,4 +1,8 @@
1
- function HelloWorld {
2
- param( [string]$person = "World")
3
- return "Hello $person!"
1
+ Function Get-HelloWorld {
2
+ Param(
3
+ [Parameter(Mandatory=$false, Position=0)]
4
+ [string]$Person = "World"
5
+ )
6
+
7
+ return "Hello, $Person!"
4
8
  }
@@ -0,0 +1,21 @@
1
+ # Tests
2
+
3
+ The exercises all use the [Pester](https://github.com/pester/Pester) framework for mocking and testing.
4
+
5
+ All tests will be in a file named `[exercise].Tests.ps1` as is the standard for the Pester framework.
6
+
7
+ To run tests from PowerShell you can simply run:
8
+
9
+ ``` PowerShell
10
+ Invoke-Pester
11
+ ```
12
+
13
+ This will run all `.Tests.ps1` files it can find in the directory.
14
+
15
+ ## Running tests in Visual Studio Code
16
+
17
+ You can run tests in visual studio code in a couple of ways:
18
+
19
+ 1. Running the `.Tests.ps1` script from the Debug menu. Keyboard short cuts are: `F5` or `Shift + F5`
20
+ 1. From within the editor by clicking on the "Run Tests" link above the `Describe` keyword in the test code itself
21
+ 1. Configuring a Task to run the Pester framework
File without changes
@@ -1,4 +1,4 @@
1
- function Compute([string]$strand1, [string]$strand2) {
1
+ function Get-HammingDifference([string]$strand1, [string]$strand2) {
2
2
  if ( $strand1.length -ne $strand2.length) {
3
3
  Throw "Mismatching string lengths"
4
4
  }
@@ -4,61 +4,61 @@ $sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.tests\.', '.'
4
4
 
5
5
  Describe "HammingTest" {
6
6
  It "tests identical strands" {
7
- Compute 'A' 'A' | Should be 0
7
+ Get-HammingDifference 'A' 'A' | Should be 0
8
8
  }
9
9
  It "tests log identical strands" {
10
- Compute "GGACTGA" "GGACTGA" | Should be 0
10
+ Get-HammingDifference "GGACTGA" "GGACTGA" | Should be 0
11
11
  }
12
12
 
13
13
  It "tests complete distance in single nucleotide strands" {
14
- Compute "A" "G" | Should be 1
14
+ Get-HammingDifference "A" "G" | Should be 1
15
15
  }
16
16
 
17
17
  It "tests complete distance in small strands" {
18
- Compute "AG" "CT" | Should be 2
18
+ Get-HammingDifference "AG" "CT" | Should be 2
19
19
  }
20
20
 
21
21
  It "tests small distance in small strands" {
22
- Compute "AT" "CT" | Should be 1
22
+ Get-HammingDifference "AT" "CT" | Should be 1
23
23
  }
24
24
 
25
25
  It "tests small distance" {
26
- Compute "GGACG" "GGTCG" | Should be 1
26
+ Get-HammingDifference "GGACG" "GGTCG" | Should be 1
27
27
  }
28
28
 
29
29
  It "tests small distance in long strands" {
30
- Compute "ACCAGGG" "ACTATGG" | Should be 2
30
+ Get-HammingDifference "ACCAGGG" "ACTATGG" | Should be 2
31
31
  }
32
32
 
33
33
  It "tests non unique character in first strand" {
34
- Compute "AGA" "AGG" | Should be 1
34
+ Get-HammingDifference "AGA" "AGG" | Should be 1
35
35
  }
36
36
 
37
37
  It "tests non unique character in second strand" {
38
- Compute "AGG" "AGA" | Should be 1
38
+ Get-HammingDifference "AGG" "AGA" | Should be 1
39
39
  }
40
40
 
41
41
  It "tests same nucleotides in different position" {
42
- Compute "TAG" "GAT" | Should be 2
42
+ Get-HammingDifference "TAG" "GAT" | Should be 2
43
43
  }
44
44
 
45
45
  It "tests large distance" {
46
- Compute "GATACA" "GCATAA" | Should be 4
46
+ Get-HammingDifference "GATACA" "GCATAA" | Should be 4
47
47
  }
48
48
 
49
49
  It "tests large distance in off by one strand" {
50
- Compute "GGACGGATTCTG" "AGGACGGATTCT" | Should be 9
50
+ Get-HammingDifference "GGACGGATTCTG" "AGGACGGATTCT" | Should be 9
51
51
  }
52
52
 
53
53
  It "tests empty strands" {
54
- Compute "" "" | Should be 0
54
+ Get-HammingDifference "" "" | Should be 0
55
55
  }
56
56
 
57
57
  It "tests disallow first strand longer" {
58
- { Compute "AATG" "AAA" } | Should Throw "Mismatching string lengths"
58
+ { Get-HammingDifference "AATG" "AAA" } | Should Throw "Mismatching string lengths"
59
59
  }
60
60
 
61
61
  It "tests disallow second strand longer" {
62
- { Compute "ATA" "AGTG" } | Should Throw "Mismatching string lengths"
62
+ { Get-HammingDifference "ATA" "AGTG" } | Should Throw "Mismatching string lengths"
63
63
  }
64
64
  }
@@ -0,0 +1,4 @@
1
+ function Get-HelloWorld {
2
+ param( [string]$person = "World")
3
+ return "Hello, $person!"
4
+ }
@@ -4,14 +4,14 @@ $sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.'
4
4
 
5
5
  Describe "HelloWorldTest" {
6
6
  It "outputs 'Hello World!'" {
7
- HelloWorld | Should be 'Hello World!'
7
+ Get-HelloWorld | Should be 'Hello, World!'
8
8
  }
9
9
 
10
10
  It "outputs Hello Alice!" {
11
- HelloWorld('Alice') | Should be 'Hello Alice!'
11
+ Get-HelloWorld('Alice') | Should be 'Hello, Alice!'
12
12
  }
13
13
 
14
14
  It "outpus Hello Bob!" {
15
- HelloWorld('Bob') | Should be 'Hello Bob!'
15
+ Get-HelloWorld('Bob') | Should be 'Hello, Bob!'
16
16
  }
17
- }
17
+ }
@@ -1,3 +1,5 @@
1
+ # Leap
2
+
1
3
  Given a year, report if it is a leap year.
2
4
 
3
5
  The tricky thing here is that a leap year in the Gregorian calendar occurs:
@@ -23,3 +25,9 @@ For a delightful, four minute explanation of the whole leap year
23
25
  phenomenon, go watch [this youtube video][video].
24
26
 
25
27
  [video]: http://www.youtube.com/watch?v=xX96xng7sAE
28
+ ## Source
29
+
30
+ JavaRanch Cattle Drive, exercise 3 [http://www.javaranch.com/leap.jsp](http://www.javaranch.com/leap.jsp)
31
+
32
+ ## Submitting Incomplete Solutions
33
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -1,14 +1,14 @@
1
- function Leap {
2
- param( [int]$year)
1
+ function Test-LeapYear {
2
+ param( [int]$year )
3
3
  # This could be solved using the native system.datetime object
4
4
  # but that isn't in the spirit of exercism.
5
5
  #[system.datetime]::isleapyear($year)
6
6
 
7
7
  # Instead solve using math
8
8
  if ( $year % 4 -eq 0 -and $year % 100 -ne 0 -or $year % 400 -eq 0) {
9
- return "True"
9
+ return $True
10
10
  }
11
11
  else {
12
- return "False"
12
+ return $False
13
13
  }
14
14
  }
@@ -4,30 +4,30 @@ $sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.tests\.', '.'
4
4
 
5
5
  Describe "LeapYear Tests" {
6
6
  It "tests leap year" {
7
- Leap(1996) | Should be True
7
+ Test-LeapYear(1996) | Should be $True
8
8
  }
9
9
 
10
10
  It "tests standard and odd year" {
11
- Leap(1997) | Should be False
11
+ Test-LeapYear(1997) | Should be $False
12
12
  }
13
13
 
14
14
  It "tests standard even year" {
15
- Leap(1998) | Should be False
15
+ Test-LeapYear(1998) | Should be $False
16
16
  }
17
17
 
18
18
  It "tests standard ninteenth century" {
19
- Leap(1900) | Should be False
19
+ Test-LeapYear(1900) | Should be $False
20
20
  }
21
21
 
22
22
  It "tests standard eighteenth year" {
23
- Leap(1800) | Should be False
23
+ Test-LeapYear(1800) | Should be $False
24
24
  }
25
25
 
26
26
  It "tests leap twenty fourth century" {
27
- Leap(2400) | Should be True
27
+ Test-LeapYear(2400) | Should be $True
28
28
  }
29
29
 
30
30
  It "tests leap year 2000" {
31
- Leap(2000) | Should be True
31
+ Test-LeapYear(2000) | Should be $True
32
32
  }
33
33
  }
@@ -0,0 +1,20 @@
1
+ # Two Fer
2
+
3
+ `Two-fer` or `2-fer` is short for two for one. One for you and one for me.
4
+
5
+ ```text
6
+ "One for X, one for me."
7
+ ```
8
+
9
+ When X is a name or "you".
10
+
11
+ If the given name is "Alice", the result should be "One for Alice, one for me."
12
+ If no name is given, the result should be "One for you, one for me."
13
+
14
+ ## Source
15
+
16
+ [https://en.wikipedia.org/wiki/Two-fer](https://en.wikipedia.org/wiki/Two-fer)
17
+
18
+ ## Submitting Incomplete Solutions
19
+
20
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,15 @@
1
+ Function Get-TwoFer(){
2
+ [CmdletBinding()]
3
+ Param(
4
+ [Parameter(Mandatory=$false, Position=0)]
5
+ [string]$Name
6
+ )
7
+
8
+ # Replace null or empty string with "you"
9
+ If ([string]::IsNullOrEmpty($Name))
10
+ {
11
+ $Name = "you"
12
+ }
13
+
14
+ "One for $Name, one for me"
15
+ }
@@ -0,0 +1,9 @@
1
+ Function Get-TwoFer(){
2
+ [CmdletBinding()]
3
+ Param(
4
+ [Parameter(Mandatory=$true, Position=0)]
5
+ [string]$Name
6
+ )
7
+
8
+ Throw "Exercise not implemented"
9
+ }
@@ -0,0 +1,36 @@
1
+ $ExercisePath = Split-Path -Parent $MyInvocation.MyCommand.Path
2
+ $ScriptFile = (Split-Path -Leaf $MyInvocation.MyCommand.Path).Replace(".Tests.", ".")
3
+
4
+ $CommandName = "Get-TwoFer"
5
+
6
+ # Remove the function if its already found
7
+ If (Get-Command $CommandName -ErrorAction SilentlyContinue){
8
+ Write-Verbose "Removing the existing $CommandName function as it exists"
9
+ Remove-Item -Path "Function:\$CommandName"
10
+ }
11
+
12
+ # Load the script file
13
+ If (Test-Path "$ExercisePath\$ScriptFile"){
14
+ Write-Output ("Loading: {0}" -f "$ExercisePath\$ScriptFile")
15
+ . ("$ExercisePath\$ScriptFile")
16
+ }
17
+ Else {
18
+ # Display an error and stop the tests
19
+ Write-Error "The file $ScriptFile was not found. You need to create your answer in a file named $ScriptFile" -ErrorAction Stop
20
+ }
21
+
22
+
23
+ Describe "Get-TwoFer" {
24
+
25
+ It "Given <Name> expects <Expected>" -TestCases @(
26
+ @{ Name = $null; Expected = "One for you, one for me" },
27
+ @{ Name = ""; Expected = "One for you, one for me" },
28
+ @{ Name = "Alice"; Expected = "One for Alice, one for me" }
29
+ ) {
30
+ Param(
31
+ $Name, $Expected
32
+ )
33
+
34
+ Get-TwoFer -Name $Name | Should -Be $Expected
35
+ }
36
+ }
@@ -29,28 +29,24 @@ def parse_markdown(markdown):
29
29
  curr = m1.group(1) + '<em>' + m1.group(2) + \
30
30
  '</em>' + m1.group(3)
31
31
  is_italic = True
32
- if is_italic or is_bold:
33
- i = '<ul><li>' + curr + '</li>'
34
- else:
35
- i = '<ul><li><p>' + curr + '</p></li>'
32
+ i = '<ul><li>' + curr + '</li>'
36
33
  else:
37
34
  is_bold = False
38
35
  is_italic = False
39
36
  curr = m.group(1)
40
37
  m1 = re.match('(.*)__(.*)__(.*)', curr)
41
38
  if m1:
42
- curr = m1.group(1) + '<strong>' + \
43
- m1.group(2) + '</strong>' + m1.group(3)
44
39
  is_bold = True
45
40
  m1 = re.match('(.*)_(.*)_(.*)', curr)
46
41
  if m1:
42
+ is_italic = True
43
+ if is_bold:
44
+ curr = m1.group(1) + '<strong>' + \
45
+ m1.group(2) + '</strong>' + m1.group(3)
46
+ if is_italic:
47
47
  curr = m1.group(1) + '<em>' + m1.group(2) + \
48
48
  '</em>' + m1.group(3)
49
- is_italic = True
50
- if is_italic or is_bold:
51
- i = '<li>' + curr + '</li>'
52
- else:
53
- i = '<li><p>' + curr + '</p></li>'
49
+ i = '<li>' + curr + '</li>'
54
50
  else:
55
51
  if in_list:
56
52
  i = '</ul>+i'
@@ -767,6 +767,29 @@
767
767
  "difficulty": 4,
768
768
  "topics": []
769
769
  },
770
+ {
771
+ "uuid": "c6878b91-70dd-49a0-b7c1-06364fa3d80b",
772
+ "slug": "diamond",
773
+ "core": false,
774
+ "unlocked_by": null,
775
+ "difficulty": 4,
776
+ "topics": [
777
+ "String",
778
+ "str",
779
+ "parsing"
780
+ ]
781
+ },
782
+ {
783
+ "uuid": "8dea3473-36f4-4228-b24b-bee8d9389167",
784
+ "slug": "spiral-matrix",
785
+ "core": false,
786
+ "unlocked_by": null,
787
+ "difficulty": 4,
788
+ "topics": [
789
+ "matrix",
790
+ "nested structures"
791
+ ]
792
+ },
770
793
  {
771
794
  "uuid": "8cdc3424-51da-4cae-a065-9982859d5b55",
772
795
  "slug": "palindrome-products",
@@ -0,0 +1,6 @@
1
+ [package]
2
+ name = "diamond"
3
+ version = "1.1.0"
4
+ authors = ["Kirill Meng <kimeng@htwg-konstanz.de>"]
5
+
6
+ [dependencies]
@@ -0,0 +1,92 @@
1
+ # Diamond
2
+
3
+ The diamond kata takes as its input a letter, and outputs it in a diamond
4
+ shape. Given a letter, it prints a diamond starting with 'A', with the
5
+ supplied letter at the widest point.
6
+
7
+ ## Requirements
8
+
9
+ * The first row contains one 'A'.
10
+ * The last row contains one 'A'.
11
+ * All rows, except the first and last, have exactly two identical letters.
12
+ * All rows have as many trailing spaces as leading spaces. (This might be 0).
13
+ * The diamond is horizontally symmetric.
14
+ * The diamond is vertically symmetric.
15
+ * The diamond has a square shape (width equals height).
16
+ * The letters form a diamond shape.
17
+ * The top half has the letters in ascending order.
18
+ * The bottom half has the letters in descending order.
19
+ * The four corners (containing the spaces) are triangles.
20
+
21
+ ## Examples
22
+
23
+ In the following examples, spaces are indicated by `·` characters.
24
+
25
+ Diamond for letter 'A':
26
+
27
+ ```text
28
+ A
29
+ ```
30
+
31
+ Diamond for letter 'C':
32
+
33
+ ```text
34
+ ··A··
35
+ ·B·B·
36
+ C···C
37
+ ·B·B·
38
+ ··A··
39
+ ```
40
+
41
+ Diamond for letter 'E':
42
+
43
+ ```text
44
+ ····A····
45
+ ···B·B···
46
+ ··C···C··
47
+ ·D·····D·
48
+ E·······E
49
+ ·D·····D·
50
+ ··C···C··
51
+ ···B·B···
52
+ ····A····
53
+ ```
54
+
55
+ ## Rust Installation
56
+
57
+ Refer to the [exercism help page][help-page] for Rust installation and learning
58
+ resources.
59
+
60
+ ## Writing the Code
61
+
62
+ Execute the tests with:
63
+
64
+ ```bash
65
+ $ cargo test
66
+ ```
67
+
68
+ All but the first test have been ignored. After you get the first test to
69
+ pass, remove the ignore flag (`#[ignore]`) from the next test and get the tests
70
+ to pass again. The test file is located in the `tests` directory. You can
71
+ also remove the ignore flag from all the tests to get them to run all at once
72
+ if you wish.
73
+
74
+ Make sure to read the [Modules](https://doc.rust-lang.org/book/second-edition/ch07-00-modules.html) chapter if you
75
+ haven't already, it will help you with organizing your files.
76
+
77
+ ## Feedback, Issues, Pull Requests
78
+
79
+ The [exercism/rust](https://github.com/exercism/rust) repository on GitHub is the home for all of the Rust exercises. If you have feedback about an exercise, or want to help implement new exercises, head over there and create an issue. Members of the rust track team are happy to help!
80
+
81
+ If you want to know more about Exercism, take a look at the [contribution guide](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md).
82
+
83
+ [help-page]: http://exercism.io/languages/rust
84
+ [modules]: https://doc.rust-lang.org/book/second-edition/ch07-00-modules.html
85
+ [cargo]: https://doc.rust-lang.org/book/second-edition/ch14-00-more-about-cargo.html
86
+
87
+ ## Source
88
+
89
+ Seb Rose [http://claysnow.co.uk/recycling-tests-in-tdd/](http://claysnow.co.uk/recycling-tests-in-tdd/)
90
+
91
+ ## Submitting Incomplete Solutions
92
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,68 @@
1
+ static ABC: &'static str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
2
+ use std::ascii::AsciiExt;
3
+
4
+ pub fn get_diamond(diamond_char: char) -> Vec<String> {
5
+ let mut result: Vec<String> = Vec::new();
6
+ let diamond_char = AsciiExt::to_ascii_uppercase(&diamond_char);
7
+ if ABC.find(diamond_char).is_none() {
8
+ return result;
9
+ }
10
+ if diamond_char == 'A' {
11
+ return vec![String::from("A")];
12
+ }
13
+
14
+ //build first half
15
+ for char_in_abc in ABC.chars() {
16
+ result.push(get_line(char_in_abc, diamond_char).clone());
17
+ if char_in_abc == diamond_char {
18
+ break;
19
+ }
20
+ }
21
+
22
+ //build second half
23
+ let mut rev = result.clone();
24
+ rev.pop(); //remove middle pice to avoid duplicates
25
+ for line in rev.drain(..).rev() {
26
+ result.push(line);
27
+
28
+ }
29
+
30
+ result
31
+ }
32
+
33
+ fn get_line(char_in_abc: char, diamond_char: char) -> String {
34
+ let mut r = String::new();
35
+ let letter_e = get_letter_line(char_in_abc);
36
+ let letter_c = get_letter_line(diamond_char);
37
+ let ws = letter_c.len() - letter_e.len(); //number of whitespaces
38
+
39
+ //left
40
+ for _ in 0..ws / 2 {
41
+ r.push(' ');
42
+ }
43
+ //letter line
44
+ for i in letter_e.chars() {
45
+ r.push(i)
46
+ }
47
+ //right
48
+ for _ in 0..ws / 2 {
49
+ r.push(' ');
50
+ }
51
+ r
52
+ }
53
+
54
+ fn get_letter_line(char_in_abc: char) -> String {
55
+ let mut r = String::new();
56
+ let odd = (0..)
57
+ .filter(|x| x % 2 != 0)
58
+ .nth(ABC.find(char_in_abc).unwrap())
59
+ .unwrap();
60
+ for i in 0..odd {
61
+ if i == 0 || i == odd - 1 {
62
+ r.push(char_in_abc);
63
+ } else {
64
+ r.push(' ');
65
+ }
66
+ }
67
+ r
68
+ }
@@ -0,0 +1,6 @@
1
+ pub fn get_diamond(c: char) -> Vec<String> {
2
+ unimplemented!(
3
+ "Return the vector of strings which represent the diamond with particular char {}",
4
+ c
5
+ );
6
+ }
@@ -0,0 +1,100 @@
1
+ extern crate diamond;
2
+ use diamond::*;
3
+
4
+ #[test]
5
+ fn test_a() {
6
+ assert_eq!(get_diamond('A'), vec!["A"]);
7
+ }
8
+
9
+ #[test]
10
+ #[ignore]
11
+ fn test_b() {
12
+ assert_eq!(get_diamond('B'), vec![" A ", "B B", " A "]);
13
+ }
14
+
15
+ #[test]
16
+ #[ignore]
17
+ fn test_c() {
18
+ assert_eq!(
19
+ get_diamond('C'),
20
+ vec![" A ", " B B ", "C C", " B B ", " A "]
21
+ );
22
+ }
23
+
24
+ #[test]
25
+ #[ignore]
26
+ fn test_d() {
27
+ assert_eq!(
28
+ get_diamond('D'),
29
+ vec![
30
+ " A ",
31
+ " B B ",
32
+ " C C ",
33
+ "D D",
34
+ " C C ",
35
+ " B B ",
36
+ " A ",
37
+ ]
38
+ );
39
+ }
40
+
41
+ #[test]
42
+ #[ignore]
43
+ fn test_e() {
44
+ assert_eq!(
45
+ get_diamond('Z'),
46
+ vec![
47
+ " A ",
48
+ " B B ",
49
+ " C C ",
50
+ " D D ",
51
+ " E E ",
52
+ " F F ",
53
+ " G G ",
54
+ " H H ",
55
+ " I I ",
56
+ " J J ",
57
+ " K K ",
58
+ " L L ",
59
+ " M M ",
60
+ " N N ",
61
+ " O O ",
62
+ " P P ",
63
+ " Q Q ",
64
+ " R R ",
65
+ " S S ",
66
+ " T T ",
67
+ " U U ",
68
+ " V V ",
69
+ " W W ",
70
+ " X X ",
71
+ " Y Y ",
72
+ "Z Z",
73
+ " Y Y ",
74
+ " X X ",
75
+ " W W ",
76
+ " V V ",
77
+ " U U ",
78
+ " T T ",
79
+ " S S ",
80
+ " R R ",
81
+ " Q Q ",
82
+ " P P ",
83
+ " O O ",
84
+ " N N ",
85
+ " M M ",
86
+ " L L ",
87
+ " K K ",
88
+ " J J ",
89
+ " I I ",
90
+ " H H ",
91
+ " G G ",
92
+ " F F ",
93
+ " E E ",
94
+ " D D ",
95
+ " C C ",
96
+ " B B ",
97
+ " A ",
98
+ ]
99
+ );
100
+ }
@@ -0,0 +1,4 @@
1
+ [package]
2
+ name = "spiral-matrix"
3
+ version = "1.1.0"
4
+
@@ -0,0 +1,63 @@
1
+ # Spiral Matrix
2
+
3
+ Given the size, return a square matrix of numbers in spiral order.
4
+
5
+ The matrix should be filled with natural numbers, starting from 1
6
+ in the top-left corner, increasing in an inward, clockwise spiral order,
7
+ like these examples:
8
+
9
+ ###### Spiral matrix of size 3
10
+
11
+ ```text
12
+ 1 2 3
13
+ 8 9 4
14
+ 7 6 5
15
+ ```
16
+
17
+ ###### Spiral matrix of size 4
18
+
19
+ ```text
20
+ 1 2 3 4
21
+ 12 13 14 5
22
+ 11 16 15 6
23
+ 10 9 8 7
24
+ ```
25
+
26
+ ## Rust Installation
27
+
28
+ Refer to the [exercism help page][help-page] for Rust installation and learning
29
+ resources.
30
+
31
+ ## Writing the Code
32
+
33
+ Execute the tests with:
34
+
35
+ ```bash
36
+ $ cargo test
37
+ ```
38
+
39
+ All but the first test have been ignored. After you get the first test to
40
+ pass, remove the ignore flag (`#[ignore]`) from the next test and get the tests
41
+ to pass again. The test file is located in the `tests` directory. You can
42
+ also remove the ignore flag from all the tests to get them to run all at once
43
+ if you wish.
44
+
45
+ Make sure to read the [Modules](https://doc.rust-lang.org/book/second-edition/ch07-00-modules.html) chapter if you
46
+ haven't already, it will help you with organizing your files.
47
+
48
+ ## Feedback, Issues, Pull Requests
49
+
50
+ The [exercism/rust](https://github.com/exercism/rust) repository on GitHub is the home for all of the Rust exercises. If you have feedback about an exercise, or want to help implement new exercises, head over there and create an issue. Members of the rust track team are happy to help!
51
+
52
+ If you want to know more about Exercism, take a look at the [contribution guide](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md).
53
+
54
+ [help-page]: http://exercism.io/languages/rust
55
+ [modules]: https://doc.rust-lang.org/book/second-edition/ch07-00-modules.html
56
+ [cargo]: https://doc.rust-lang.org/book/second-edition/ch14-00-more-about-cargo.html
57
+
58
+ ## Source
59
+
60
+ Reddit r/dailyprogrammer challenge #320 [Easy] Spiral Ascension. [https://www.reddit.com/r/dailyprogrammer/comments/6i60lr/20170619_challenge_320_easy_spiral_ascension/](https://www.reddit.com/r/dailyprogrammer/comments/6i60lr/20170619_challenge_320_easy_spiral_ascension/)
61
+
62
+ ## Submitting Incomplete Solutions
63
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,35 @@
1
+ pub fn spiral_matrix(size: usize) -> Vec<Vec<usize>> {
2
+ let mut matrix: Vec<Vec<usize>> = vec![vec![0; size]; size];
3
+ let num_concentric_squares: usize = (size as f64 / 2.0).ceil() as usize;
4
+ let mut counter: usize = 1;
5
+ let mut sidelen = size;
6
+ for i in 0..num_concentric_squares {
7
+
8
+ for j in 0..sidelen {
9
+ matrix[i][i + j] = counter;
10
+ counter += 1;
11
+ }
12
+
13
+ for j in 1..sidelen {
14
+ matrix[i + j][size - 1 - i] = counter;
15
+ counter += 1;
16
+ }
17
+
18
+ for j in (0..sidelen - 1).rev() {
19
+ matrix[size - 1 - i][i + j] = counter;
20
+ counter += 1;
21
+ }
22
+
23
+ for j in (1..sidelen - 1).rev() {
24
+ matrix[i + j][i] = counter;
25
+
26
+ counter += 1;
27
+ }
28
+ if sidelen >= 2 {
29
+ sidelen -= 2;
30
+ } else {
31
+ sidelen -= 1;
32
+ }
33
+ }
34
+ matrix
35
+ }
@@ -0,0 +1,6 @@
1
+ pub fn spiral_matrix(size: usize) -> Vec<Vec<usize>> {
2
+ unimplemented!(
3
+ "Function that returns the spiral matrix of square size {}",
4
+ size
5
+ );
6
+ }
@@ -0,0 +1,55 @@
1
+ extern crate spiral_matrix;
2
+ use spiral_matrix::*;
3
+
4
+ #[test]
5
+ fn empty_spiral() {
6
+ let expected: Vec<Vec<usize>> = Vec::new();
7
+ assert_eq!(spiral_matrix(0), expected);
8
+ }
9
+
10
+ #[test]
11
+ #[ignore]
12
+ fn size_one_spiral() {
13
+ let mut expected: Vec<Vec<usize>> = Vec::new();
14
+ expected.push(vec![1]);
15
+ assert_eq!(spiral_matrix(1), expected);
16
+ }
17
+ #[test]
18
+ #[ignore]
19
+ fn size_two_spiral() {
20
+ let mut expected: Vec<Vec<usize>> = Vec::new();
21
+ expected.push(vec![1, 2]);
22
+ expected.push(vec![4, 3]);
23
+ assert_eq!(spiral_matrix(2), expected);
24
+ }
25
+
26
+ #[test]
27
+ #[ignore]
28
+ fn size_three_spiral() {
29
+ let mut expected: Vec<Vec<usize>> = Vec::new();
30
+ expected.push(vec![1, 2, 3]);
31
+ expected.push(vec![8, 9, 4]);
32
+ expected.push(vec![7, 6, 5]);
33
+ assert_eq!(spiral_matrix(3), expected);
34
+ }
35
+ #[test]
36
+ #[ignore]
37
+ fn size_four_spiral() {
38
+ let mut expected: Vec<Vec<usize>> = Vec::new();
39
+ expected.push(vec![1, 2, 3, 4]);
40
+ expected.push(vec![12, 13, 14, 5]);
41
+ expected.push(vec![11, 16, 15, 6]);
42
+ expected.push(vec![10, 9, 8, 7]);
43
+ assert_eq!(spiral_matrix(4), expected);
44
+ }
45
+ #[test]
46
+ #[ignore]
47
+ fn size_five_spiral() {
48
+ let mut expected: Vec<Vec<usize>> = Vec::new();
49
+ expected.push(vec![1, 2, 3, 4, 5]);
50
+ expected.push(vec![16, 17, 18, 19, 6]);
51
+ expected.push(vec![15, 24, 25, 20, 7]);
52
+ expected.push(vec![14, 23, 22, 21, 8]);
53
+ expected.push(vec![13, 12, 11, 10, 9]);
54
+ assert_eq!(spiral_matrix(5), expected);
55
+ }
@@ -2,6 +2,10 @@ import XCTest
2
2
  @testable import IsbnVerifier
3
3
 
4
4
  class IsbnVerifierTests: XCTestCase {
5
+
6
+ func testEmptyString() {
7
+ XCTAssertFalse(IsbnVerifier.isValid(""))
8
+ }
5
9
 
6
10
  func testValidIsbnNumber() {
7
11
  XCTAssertTrue(IsbnVerifier.isValid("3-598-21508-8"))
@@ -57,6 +61,7 @@ class IsbnVerifierTests: XCTestCase {
57
61
 
58
62
  static var allTests: [(String, (IsbnVerifierTests) -> () throws -> Void)] {
59
63
  return [
64
+ ("testEmptyString", testEmptyString),
60
65
  ("testValidIsbnNumber", testValidIsbnNumber),
61
66
  ("testInvalidIsbnCheckDigit", testInvalidIsbnCheckDigit),
62
67
  ("testValidIsbnNumberWithACheckDigitOf10", testValidIsbnNumberWithACheckDigitOf10),
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trackler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1.143
4
+ version: 2.2.1.144
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katrina Owen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-07 00:00:00.000000000 Z
11
+ date: 2018-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -11351,8 +11351,13 @@ files:
11351
11351
  - tracks/powershell/config.json
11352
11352
  - tracks/powershell/config/exercise_readme.go.tmpl
11353
11353
  - tracks/powershell/config/maintainers.json
11354
- - tracks/powershell/docs/INSTRUCTIONS.md
11354
+ - tracks/powershell/docs/ABOUT.md
11355
+ - tracks/powershell/docs/INSTALLATION.md
11356
+ - tracks/powershell/docs/LEARNING.md
11357
+ - tracks/powershell/docs/RESOURCES.md
11355
11358
  - tracks/powershell/docs/SNIPPET.txt
11359
+ - tracks/powershell/docs/TESTS.md
11360
+ - tracks/powershell/docs/img
11356
11361
  - tracks/powershell/exercises/hamming/.version
11357
11362
  - tracks/powershell/exercises/hamming/README.md
11358
11363
  - tracks/powershell/exercises/hamming/hamming-example.ps1
@@ -11360,13 +11365,18 @@ files:
11360
11365
  - tracks/powershell/exercises/hello-world/.version
11361
11366
  - tracks/powershell/exercises/hello-world/GETTING_STARTED.md
11362
11367
  - tracks/powershell/exercises/hello-world/README.md
11368
+ - tracks/powershell/exercises/hello-world/hello-world-example.ps1
11363
11369
  - tracks/powershell/exercises/hello-world/hello-world.tests.ps1
11364
- - tracks/powershell/exercises/hello-world/hello-world_example.ps1
11365
11370
  - tracks/powershell/exercises/leap/.gitignore
11366
11371
  - tracks/powershell/exercises/leap/.version
11367
11372
  - tracks/powershell/exercises/leap/README.md
11368
11373
  - tracks/powershell/exercises/leap/leap-example.ps1
11369
11374
  - tracks/powershell/exercises/leap/leap.tests.ps1
11375
+ - tracks/powershell/exercises/two-fer/.version
11376
+ - tracks/powershell/exercises/two-fer/README.md
11377
+ - tracks/powershell/exercises/two-fer/TwoFer.example.ps1
11378
+ - tracks/powershell/exercises/two-fer/TwoFer.ps1
11379
+ - tracks/powershell/exercises/two-fer/TwoFer.tests.ps1
11370
11380
  - tracks/powershell/img/icon.png
11371
11381
  - tracks/prolog/.git
11372
11382
  - tracks/prolog/.github/stale.yml
@@ -13015,6 +13025,11 @@ files:
13015
13025
  - tracks/rust/exercises/decimal/example.rs
13016
13026
  - tracks/rust/exercises/decimal/src/lib.rs
13017
13027
  - tracks/rust/exercises/decimal/tests/decimal.rs
13028
+ - tracks/rust/exercises/diamond/Cargo.toml
13029
+ - tracks/rust/exercises/diamond/README.md
13030
+ - tracks/rust/exercises/diamond/example.rs
13031
+ - tracks/rust/exercises/diamond/src/lib.rs
13032
+ - tracks/rust/exercises/diamond/tests/diamond.rs
13018
13033
  - tracks/rust/exercises/difference-of-squares/.gitignore
13019
13034
  - tracks/rust/exercises/difference-of-squares/Cargo.toml
13020
13035
  - tracks/rust/exercises/difference-of-squares/README.md
@@ -13361,6 +13376,11 @@ files:
13361
13376
  - tracks/rust/exercises/space-age/example.rs
13362
13377
  - tracks/rust/exercises/space-age/src/lib.rs
13363
13378
  - tracks/rust/exercises/space-age/tests/space-age.rs
13379
+ - tracks/rust/exercises/spiral-matrix/Cargo.toml
13380
+ - tracks/rust/exercises/spiral-matrix/README.md
13381
+ - tracks/rust/exercises/spiral-matrix/example.rs
13382
+ - tracks/rust/exercises/spiral-matrix/src/lib.rs
13383
+ - tracks/rust/exercises/spiral-matrix/tests/spiral-matrix.rs
13364
13384
  - tracks/rust/exercises/sublist/.gitignore
13365
13385
  - tracks/rust/exercises/sublist/Cargo.toml
13366
13386
  - tracks/rust/exercises/sublist/README.md
@@ -1,14 +0,0 @@
1
- ### Installing Windows PowerShell
2
-
3
- PowerShell comes pre-installed on all Windows operating systems from Windows 7 SP1 onward.
4
-
5
- You can find the latest version of PowerShell and installation instructions for all platforms [here](https://github.com/PowerShell/PowerShell/blob/master/README.md#get-powershell).
6
-
7
- ### Using an IDE
8
-
9
- If you want a more full-featured editing experience, you probably want to use an IDE. These are the most popular IDE's that support building PowerShell projects:
10
-
11
- ##### All platforms
12
- * [Visual Studio Code](https://code.visualstudio.com/download) with the [PowerShell extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell)
13
- * [Atom](https://atom.io/) with the [PowerShell package](https://atom.io/packages/language-powershell)
14
- * [Sublime Text 3](https://www.sublimetext.com/3) with the [PowerShell package](https://packagecontrol.io/packages/PowerShell)
@@ -1,4 +0,0 @@
1
- function HelloWorld {
2
- param( [string]$person = "World")
3
- return "Hello $person!"
4
- }