trackler 2.2.1.41 → 2.2.1.42
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitmodules +0 -3
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/change/metadata.yml +0 -3
- data/tracks/c/exercises/allergies/src/allergies.h +12 -12
- data/tracks/c/exercises/allergies/src/example.c +4 -4
- data/tracks/c/exercises/allergies/src/example.h +14 -14
- data/tracks/c/exercises/allergies/test/test_allergies.c +45 -45
- data/tracks/cfml/config.json +139 -193
- data/tracks/cfml/config/maintainers.json +11 -11
- data/tracks/csharp/exercises/etl/Etl.cs +1 -1
- data/tracks/csharp/exercises/etl/EtlTest.cs +102 -0
- data/tracks/csharp/exercises/etl/Example.cs +1 -1
- data/tracks/csharp/exercises/pascals-triangle/Example.cs +10 -1
- data/tracks/csharp/exercises/pascals-triangle/PascalsTriangle.cs +1 -0
- data/tracks/csharp/exercises/pascals-triangle/PascalsTriangleTest.cs +17 -50
- data/tracks/csharp/exercises/saddle-points/SaddlePointsTest.cs +75 -0
- data/tracks/csharp/generators/Exercises/Etl.cs +61 -0
- data/tracks/csharp/generators/Exercises/PascalsTriangle.cs +28 -0
- data/tracks/csharp/generators/Exercises/SaddlePoints.cs +50 -0
- data/tracks/csharp/generators/Output/ValueFormatter.cs +29 -0
- data/tracks/java/config.json +40 -5
- data/tracks/java/exercises/triangle/.meta/src/reference/java/Triangle.java +11 -10
- data/tracks/java/exercises/triangle/src/main/java/Triangle.java +9 -1
- data/tracks/java/exercises/triangle/src/test/java/TriangleTest.java +12 -12
- data/tracks/python/exercises/phone-number/phone_number.py +1 -1
- data/tracks/python/exercises/rna-transcription/rna_transcription.py +1 -1
- data/tracks/python/exercises/run-length-encoding/run_length_encoding.py +2 -2
- data/tracks/python/exercises/saddle-points/saddle_points.py +1 -1
- data/tracks/rust/exercises/etl/README.md +1 -1
- data/tracks/rust/exercises/ocr-numbers/README.md +1 -1
- data/tracks/rust/exercises/pascals-triangle/README.md +1 -1
- data/tracks/rust/exercises/rna-transcription/README.md +1 -1
- data/tracks/scala/exercises/meetup/src/test/scala/MeetupTest.scala +118 -93
- data/tracks/scala/testgen/src/main/scala/MeetupTestGenerator.scala +48 -0
- data/tracks/scala/testgen/src/main/scala/testgen/CanonicalDataParser.scala +1 -1
- data/tracks/typescript/config.json +13 -0
- data/tracks/typescript/exercises/bob/bob.ts +7 -0
- data/tracks/typescript/exercises/hello-world/hello-world.ts +7 -0
- data/tracks/typescript/exercises/leap/leap.ts +5 -0
- data/tracks/typescript/exercises/pangram/pangram.ts +11 -0
- data/tracks/typescript/exercises/prime-factors/README.md +73 -0
- data/tracks/typescript/exercises/prime-factors/package.json +36 -0
- data/tracks/typescript/exercises/prime-factors/prime-factors.example.ts +14 -0
- data/tracks/typescript/exercises/prime-factors/prime-factors.test.ts +25 -0
- data/tracks/{coldfusion/exercises/acronym/.meta/HINTS.md → typescript/exercises/prime-factors/prime-factors.ts} +0 -0
- data/tracks/typescript/exercises/prime-factors/tsconfig.json +22 -0
- data/tracks/typescript/exercises/prime-factors/tslint.json +127 -0
- data/tracks/typescript/exercises/prime-factors/yarn.lock +2305 -0
- data/tracks/typescript/exercises/rna-transcription/rna-transcription.ts +7 -0
- metadata +16 -242
- data/tracks/coldfusion/.gitignore +0 -5
- data/tracks/coldfusion/.travis.yml +0 -18
- data/tracks/coldfusion/CONTRIBUTING.md +0 -10
- data/tracks/coldfusion/LICENSE +0 -21
- data/tracks/coldfusion/README.md +0 -92
- data/tracks/coldfusion/bin/fetch-configlet +0 -32
- data/tracks/coldfusion/config.json +0 -223
- data/tracks/coldfusion/config/exercise_readme.go.tmpl +0 -16
- data/tracks/coldfusion/config/maintainers.json +0 -13
- data/tracks/coldfusion/docs/ABOUT.md +0 -10
- data/tracks/coldfusion/docs/EXERCISE_README_INSERT.md +0 -15
- data/tracks/coldfusion/docs/INSTALLATION.md +0 -35
- data/tracks/coldfusion/docs/LEARNING.md +0 -37
- data/tracks/coldfusion/docs/RESOURCES.md +0 -29
- data/tracks/coldfusion/docs/SNIPPET.txt +0 -8
- data/tracks/coldfusion/docs/TESTS.md +0 -13
- data/tracks/coldfusion/exercises/acronym/Acronym.cfc +0 -13
- data/tracks/coldfusion/exercises/acronym/AcronymTest.cfc +0 -43
- data/tracks/coldfusion/exercises/acronym/Solution.cfc +0 -22
- data/tracks/coldfusion/exercises/acronym/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/acronym/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/acronym/box.json +0 -8
- data/tracks/coldfusion/exercises/acronym/index.cfm +0 -37
- data/tracks/coldfusion/exercises/atbash-cipher/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/atbash-cipher/AtbashCipher.cfc +0 -14
- data/tracks/coldfusion/exercises/atbash-cipher/AtbashCipherTest.cfc +0 -71
- data/tracks/coldfusion/exercises/atbash-cipher/Solution.cfc +0 -56
- data/tracks/coldfusion/exercises/atbash-cipher/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/atbash-cipher/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/atbash-cipher/box.json +0 -8
- data/tracks/coldfusion/exercises/atbash-cipher/index.cfm +0 -37
- data/tracks/coldfusion/exercises/bob/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/bob/Bob.cfc +0 -13
- data/tracks/coldfusion/exercises/bob/BobTest.cfc +0 -115
- data/tracks/coldfusion/exercises/bob/Solution.cfc +0 -27
- data/tracks/coldfusion/exercises/bob/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/bob/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/bob/box.json +0 -8
- data/tracks/coldfusion/exercises/bob/index.cfm +0 -37
- data/tracks/coldfusion/exercises/diamond/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/diamond/Diamond.cfc +0 -13
- data/tracks/coldfusion/exercises/diamond/DiamondTest.cfc +0 -35
- data/tracks/coldfusion/exercises/diamond/Solution.cfc +0 -35
- data/tracks/coldfusion/exercises/diamond/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/diamond/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/diamond/box.json +0 -8
- data/tracks/coldfusion/exercises/diamond/index.cfm +0 -37
- data/tracks/coldfusion/exercises/difference-of-squares/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/difference-of-squares/DifferenceOfSquares.cfc +0 -18
- data/tracks/coldfusion/exercises/difference-of-squares/DifferenceOfSquaresTest.cfc +0 -63
- data/tracks/coldfusion/exercises/difference-of-squares/Solution.cfc +0 -28
- data/tracks/coldfusion/exercises/difference-of-squares/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/difference-of-squares/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/difference-of-squares/box.json +0 -8
- data/tracks/coldfusion/exercises/difference-of-squares/index.cfm +0 -37
- data/tracks/coldfusion/exercises/flatten-array/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/flatten-array/FlattenArray.cfc +0 -13
- data/tracks/coldfusion/exercises/flatten-array/FlattenArrayTest.cfc +0 -42
- data/tracks/coldfusion/exercises/flatten-array/Solution.cfc +0 -26
- data/tracks/coldfusion/exercises/flatten-array/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/flatten-array/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/flatten-array/box.json +0 -8
- data/tracks/coldfusion/exercises/flatten-array/index.cfm +0 -37
- data/tracks/coldfusion/exercises/gigasecond/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/gigasecond/Gigasecond.cfc +0 -13
- data/tracks/coldfusion/exercises/gigasecond/GigasecondTest.cfc +0 -39
- data/tracks/coldfusion/exercises/gigasecond/Solution.cfc +0 -16
- data/tracks/coldfusion/exercises/gigasecond/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/gigasecond/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/gigasecond/box.json +0 -8
- data/tracks/coldfusion/exercises/gigasecond/index.cfm +0 -37
- data/tracks/coldfusion/exercises/grains/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/grains/Grains.cfc +0 -14
- data/tracks/coldfusion/exercises/grains/GrainsTest.cfc +0 -63
- data/tracks/coldfusion/exercises/grains/Solution.cfc +0 -22
- data/tracks/coldfusion/exercises/grains/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/grains/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/grains/box.json +0 -8
- data/tracks/coldfusion/exercises/grains/index.cfm +0 -37
- data/tracks/coldfusion/exercises/hamming/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/hamming/Hamming.cfc +0 -13
- data/tracks/coldfusion/exercises/hamming/HammingTest.cfc +0 -75
- data/tracks/coldfusion/exercises/hamming/Solution.cfc +0 -25
- data/tracks/coldfusion/exercises/hamming/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/hamming/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/hamming/box.json +0 -8
- data/tracks/coldfusion/exercises/hamming/index.cfm +0 -37
- data/tracks/coldfusion/exercises/hello-world/HelloWorld.cfc +0 -13
- data/tracks/coldfusion/exercises/hello-world/HelloWorldTest.cfc +0 -18
- data/tracks/coldfusion/exercises/hello-world/Solution.cfc +0 -13
- data/tracks/coldfusion/exercises/hello-world/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/hello-world/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/hello-world/box.json +0 -8
- data/tracks/coldfusion/exercises/hello-world/index.cfm +0 -37
- data/tracks/coldfusion/exercises/isogram/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/isogram/Isogram.cfc +0 -13
- data/tracks/coldfusion/exercises/isogram/IsogramTest.cfc +0 -55
- data/tracks/coldfusion/exercises/isogram/Solution.cfc +0 -23
- data/tracks/coldfusion/exercises/isogram/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/isogram/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/isogram/box.json +0 -8
- data/tracks/coldfusion/exercises/isogram/index.cfm +0 -37
- data/tracks/coldfusion/exercises/largest-series-product/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/largest-series-product/LargestSeriesProduct.cfc +0 -13
- data/tracks/coldfusion/exercises/largest-series-product/LargestSeriesProductTest.cfc +0 -75
- data/tracks/coldfusion/exercises/largest-series-product/Solution.cfc +0 -41
- data/tracks/coldfusion/exercises/largest-series-product/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/largest-series-product/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/largest-series-product/box.json +0 -8
- data/tracks/coldfusion/exercises/largest-series-product/index.cfm +0 -37
- data/tracks/coldfusion/exercises/leap/Leap.cfc +0 -15
- data/tracks/coldfusion/exercises/leap/LeapTest.cfc +0 -39
- data/tracks/coldfusion/exercises/leap/README.md +0 -33
- data/tracks/coldfusion/exercises/leap/Solution.cfc +0 -19
- data/tracks/coldfusion/exercises/leap/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/leap/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/leap/box.json +0 -8
- data/tracks/coldfusion/exercises/leap/index.cfm +0 -37
- data/tracks/coldfusion/exercises/luhn/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/luhn/Luhn.cfc +0 -13
- data/tracks/coldfusion/exercises/luhn/LuhnTest.cfc +0 -67
- data/tracks/coldfusion/exercises/luhn/Solution.cfc +0 -38
- data/tracks/coldfusion/exercises/luhn/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/luhn/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/luhn/box.json +0 -8
- data/tracks/coldfusion/exercises/luhn/index.cfm +0 -37
- data/tracks/coldfusion/exercises/nth-prime/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/nth-prime/NthPrime.cfc +0 -13
- data/tracks/coldfusion/exercises/nth-prime/NthPrimeTest.cfc +0 -35
- data/tracks/coldfusion/exercises/nth-prime/Solution.cfc +0 -33
- data/tracks/coldfusion/exercises/nth-prime/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/nth-prime/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/nth-prime/box.json +0 -8
- data/tracks/coldfusion/exercises/nth-prime/index.cfm +0 -37
- data/tracks/coldfusion/exercises/pangram/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/pangram/Pangram.cfc +0 -13
- data/tracks/coldfusion/exercises/pangram/PangramTest.cfc +0 -55
- data/tracks/coldfusion/exercises/pangram/Solution.cfc +0 -21
- data/tracks/coldfusion/exercises/pangram/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/pangram/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/pangram/box.json +0 -8
- data/tracks/coldfusion/exercises/pangram/index.cfm +0 -37
- data/tracks/coldfusion/exercises/pig-latin/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/pig-latin/PigLatin.cfc +0 -13
- data/tracks/coldfusion/exercises/pig-latin/PigLatinTest.cfc +0 -115
- data/tracks/coldfusion/exercises/pig-latin/Solution.cfc +0 -30
- data/tracks/coldfusion/exercises/pig-latin/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/pig-latin/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/pig-latin/box.json +0 -8
- data/tracks/coldfusion/exercises/pig-latin/index.cfm +0 -37
- data/tracks/coldfusion/exercises/raindrops/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/raindrops/Raindrops.cfc +0 -13
- data/tracks/coldfusion/exercises/raindrops/RaindropsTest.cfc +0 -87
- data/tracks/coldfusion/exercises/raindrops/Solution.cfc +0 -33
- data/tracks/coldfusion/exercises/raindrops/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/raindrops/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/raindrops/box.json +0 -8
- data/tracks/coldfusion/exercises/raindrops/index.cfm +0 -37
- data/tracks/coldfusion/exercises/rna-transcription/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/rna-transcription/RnaTranscription.cfc +0 -13
- data/tracks/coldfusion/exercises/rna-transcription/RnaTranscriptionTest.cfc +0 -47
- data/tracks/coldfusion/exercises/rna-transcription/Solution.cfc +0 -35
- data/tracks/coldfusion/exercises/rna-transcription/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/rna-transcription/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/rna-transcription/box.json +0 -8
- data/tracks/coldfusion/exercises/rna-transcription/index.cfm +0 -37
- data/tracks/coldfusion/exercises/saddle-points/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/saddle-points/SaddlePoints.cfc +0 -13
- data/tracks/coldfusion/exercises/saddle-points/SaddlePointsTest.cfc +0 -35
- data/tracks/coldfusion/exercises/saddle-points/Solution.cfc +0 -59
- data/tracks/coldfusion/exercises/saddle-points/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/saddle-points/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/saddle-points/box.json +0 -8
- data/tracks/coldfusion/exercises/saddle-points/index.cfm +0 -37
- data/tracks/coldfusion/exercises/scrabble-score/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/scrabble-score/ScrabbleScore.cfc +0 -13
- data/tracks/coldfusion/exercises/scrabble-score/ScrabbleScoreTest.cfc +0 -59
- data/tracks/coldfusion/exercises/scrabble-score/Solution.cfc +0 -50
- data/tracks/coldfusion/exercises/scrabble-score/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/scrabble-score/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/scrabble-score/box.json +0 -8
- data/tracks/coldfusion/exercises/scrabble-score/index.cfm +0 -37
- data/tracks/coldfusion/exercises/secret-handshake/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/secret-handshake/SecretHandshake.cfc +0 -13
- data/tracks/coldfusion/exercises/secret-handshake/SecretHandshakeTest.cfc +0 -63
- data/tracks/coldfusion/exercises/secret-handshake/Solution.cfc +0 -31
- data/tracks/coldfusion/exercises/secret-handshake/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/secret-handshake/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/secret-handshake/box.json +0 -8
- data/tracks/coldfusion/exercises/secret-handshake/index.cfm +0 -37
- data/tracks/coldfusion/exercises/space-age/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/space-age/Solution.cfc +0 -28
- data/tracks/coldfusion/exercises/space-age/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/space-age/SpaceAge.cfc +0 -13
- data/tracks/coldfusion/exercises/space-age/SpaceAgeTest.cfc +0 -47
- data/tracks/coldfusion/exercises/space-age/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/space-age/box.json +0 -8
- data/tracks/coldfusion/exercises/space-age/index.cfm +0 -37
- data/tracks/coldfusion/exercises/sum-of-multiples/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/sum-of-multiples/Solution.cfc +0 -27
- data/tracks/coldfusion/exercises/sum-of-multiples/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/sum-of-multiples/SumOfMultiples.cfc +0 -13
- data/tracks/coldfusion/exercises/sum-of-multiples/SumOfMultiplesTest.cfc +0 -63
- data/tracks/coldfusion/exercises/sum-of-multiples/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/sum-of-multiples/box.json +0 -8
- data/tracks/coldfusion/exercises/sum-of-multiples/index.cfm +0 -37
- data/tracks/coldfusion/exercises/triangle/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/triangle/Solution.cfc +0 -53
- data/tracks/coldfusion/exercises/triangle/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/triangle/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/triangle/Triangle.cfc +0 -18
- data/tracks/coldfusion/exercises/triangle/TriangleTest.cfc +0 -95
- data/tracks/coldfusion/exercises/triangle/box.json +0 -8
- data/tracks/coldfusion/exercises/triangle/index.cfm +0 -37
- data/tracks/coldfusion/exercises/word-count/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/exercises/word-count/Solution.cfc +0 -22
- data/tracks/coldfusion/exercises/word-count/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/exercises/word-count/TestRunner.cfc +0 -103
- data/tracks/coldfusion/exercises/word-count/WordCount.cfc +0 -13
- data/tracks/coldfusion/exercises/word-count/WordCountTest.cfc +0 -55
- data/tracks/coldfusion/exercises/word-count/box.json +0 -8
- data/tracks/coldfusion/exercises/word-count/index.cfm +0 -37
- data/tracks/coldfusion/img/icon.png +0 -0
- data/tracks/coldfusion/tasks/GenerateTests.cfc +0 -179
- data/tracks/coldfusion/tasks/ScaffoldExercise.cfc +0 -85
- data/tracks/coldfusion/tasks/TestAllSolutions.cfc +0 -24
- data/tracks/coldfusion/tasks/exercise_template/.meta/HINTS.md +0 -0
- data/tracks/coldfusion/tasks/exercise_template/@@name@@.cfc +0 -13
- data/tracks/coldfusion/tasks/exercise_template/@@name@@Test.cfc +0 -15
- data/tracks/coldfusion/tasks/exercise_template/Solution.cfc +0 -6
- data/tracks/coldfusion/tasks/exercise_template/SolutionTest.cfc +0 -7
- data/tracks/coldfusion/tasks/exercise_template/TestRunner.cfc +0 -103
- data/tracks/coldfusion/tasks/exercise_template/box.json +0 -8
- data/tracks/coldfusion/tasks/exercise_template/index.cfm +0 -37
- data/tracks/csharp/exercises/etl/ETLTest.cs +0 -51
- data/tracks/csharp/exercises/saddle-points/SaddlePointTest.cs +0 -68
- data/tracks/java/exercises/triangle/.meta/src/reference/java/TriangleKind.java +0 -5
- data/tracks/java/exercises/triangle/src/main/java/TriangleKind.java +0 -5
@@ -0,0 +1,50 @@
|
|
1
|
+
using System;
|
2
|
+
using System.Collections.Generic;
|
3
|
+
using Generators.Input;
|
4
|
+
using Newtonsoft.Json.Linq;
|
5
|
+
|
6
|
+
namespace Generators.Exercises
|
7
|
+
{
|
8
|
+
public class SaddlePoints : Exercise
|
9
|
+
{
|
10
|
+
protected override void UpdateCanonicalData(CanonicalData canonicalData)
|
11
|
+
{
|
12
|
+
foreach (var canonicalDataCase in canonicalData.Cases)
|
13
|
+
{
|
14
|
+
canonicalDataCase.TestedMethodType = TestedMethodType.Instance;
|
15
|
+
canonicalDataCase.Property = "Calculate";
|
16
|
+
canonicalDataCase.SetConstructorInputParameters("input");
|
17
|
+
canonicalDataCase.UseVariablesForConstructorParameters = true;
|
18
|
+
canonicalDataCase.UseVariablesForInput = true;
|
19
|
+
canonicalDataCase.UseVariableForTested = true;
|
20
|
+
canonicalDataCase.UseVariableForExpected = true;
|
21
|
+
|
22
|
+
canonicalDataCase.Properties["input"] = (canonicalDataCase.Properties["input"] as JArray).ToObject<int[,]>();
|
23
|
+
|
24
|
+
var array = canonicalDataCase.Expected as Array;
|
25
|
+
|
26
|
+
if (array != null)
|
27
|
+
{
|
28
|
+
canonicalDataCase.Expected = ToTupleCollection(array);
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
protected override HashSet<string> AddAdditionalNamespaces()
|
34
|
+
{
|
35
|
+
return new HashSet<string>
|
36
|
+
{
|
37
|
+
typeof(System.String).Namespace
|
38
|
+
};
|
39
|
+
}
|
40
|
+
|
41
|
+
private IEnumerable<Tuple<string, object>> ToTupleCollection(Array array)
|
42
|
+
{
|
43
|
+
for (int x = 0; x < array.GetLength(0); x++)
|
44
|
+
{
|
45
|
+
var current = ((Array)array).GetValue(x) as Dictionary<string, object>;
|
46
|
+
yield return new Tuple<string, object>(current["row"].ToString(), current["column"].ToString());
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
@@ -22,6 +22,14 @@ public static object Format(object val)
|
|
22
22
|
return $"{enumeration.GetType().Name}.{enumeration}";
|
23
23
|
case JArray jArray:
|
24
24
|
return $"new[] {{ {string.Join(", ", jArray.Select(Format))} }}";
|
25
|
+
case int[,] multidimensionalArray:
|
26
|
+
return multidimensionalArray.GetLength(0) > 1
|
27
|
+
? $"new[,]\r\n{{\r\n {string.Join(",\r\n ", Enumerable.Range(0, multidimensionalArray.GetUpperBound(0) + 1).Select(x => multidimensionalArray.SliceRow(x).ToNestedArray()))}\r\n}}"
|
28
|
+
: "new int[,] { }";
|
29
|
+
case IEnumerable<Tuple<string, object>> tuples:
|
30
|
+
return $"new[] {{ {string.Join(", ", tuples.Select(Format))} }}";
|
31
|
+
case Tuple<string, object> tuple:
|
32
|
+
return $"Tuple.Create({tuple.Item1}, {tuple.Item2})";
|
25
33
|
case string str:
|
26
34
|
return str.FormatString();
|
27
35
|
case IEnumerable<int> ints:
|
@@ -89,5 +97,26 @@ private static IEnumerable<string> AddTrailingSemicolon(this IEnumerable<string>
|
|
89
97
|
array[array.Length - 1] += ";";
|
90
98
|
return array;
|
91
99
|
}
|
100
|
+
|
101
|
+
private static IEnumerable<T> SliceRow<T>(this T[,] array, int row)
|
102
|
+
{
|
103
|
+
for (var i = array.GetLowerBound(1); i <= array.GetUpperBound(1); i++)
|
104
|
+
{
|
105
|
+
yield return array[row, i];
|
106
|
+
}
|
107
|
+
}
|
108
|
+
|
109
|
+
private static IEnumerable<T> SliceColumn<T>(this T[,] array, int column)
|
110
|
+
{
|
111
|
+
for (var i = array.GetLowerBound(0); i <= array.GetUpperBound(0); i++)
|
112
|
+
{
|
113
|
+
yield return array[i, column];
|
114
|
+
}
|
115
|
+
}
|
116
|
+
|
117
|
+
private static string ToNestedArray<T>(this IEnumerable<T> enumerable)
|
118
|
+
{
|
119
|
+
return enumerable.Any() ? $"{{ {string.Join(", ", enumerable)} }}" : string.Empty;
|
120
|
+
}
|
92
121
|
}
|
93
122
|
}
|
data/tracks/java/config.json
CHANGED
@@ -100,7 +100,13 @@
|
|
100
100
|
"core": true,
|
101
101
|
"difficulty": 3,
|
102
102
|
"slug": "scrabble-score",
|
103
|
-
"topics":
|
103
|
+
"topics": [
|
104
|
+
"games",
|
105
|
+
"loops",
|
106
|
+
"pattern_matching",
|
107
|
+
"strings",
|
108
|
+
"transforming"
|
109
|
+
],
|
104
110
|
"unlocked_by": null,
|
105
111
|
"uuid": "afae9f2d-8baf-4bd7-8d7c-d486337f7c97"
|
106
112
|
},
|
@@ -133,7 +139,16 @@
|
|
133
139
|
"core": true,
|
134
140
|
"difficulty": 3,
|
135
141
|
"slug": "secret-handshake",
|
136
|
-
"topics":
|
142
|
+
"topics": [
|
143
|
+
"loops",
|
144
|
+
"conditionals",
|
145
|
+
"integers",
|
146
|
+
"mathematics",
|
147
|
+
"transforming",
|
148
|
+
"cryptography",
|
149
|
+
"enumerations",
|
150
|
+
"bitwise_operations"
|
151
|
+
],
|
137
152
|
"unlocked_by": null,
|
138
153
|
"uuid": "71c7c174-7e2c-43c2-bdd6-7515fcb12a91"
|
139
154
|
},
|
@@ -149,7 +164,13 @@
|
|
149
164
|
"core": false,
|
150
165
|
"difficulty": 4,
|
151
166
|
"slug": "sum-of-multiples",
|
152
|
-
"topics":
|
167
|
+
"topics": [
|
168
|
+
"loops",
|
169
|
+
"integers",
|
170
|
+
"arrays",
|
171
|
+
"conditionals",
|
172
|
+
"mathematics"
|
173
|
+
],
|
153
174
|
"unlocked_by": "difference-of-squares",
|
154
175
|
"uuid": "2f244afc-3e7b-4f89-92af-e2b427f4ef35"
|
155
176
|
},
|
@@ -399,7 +420,14 @@
|
|
399
420
|
"core": false,
|
400
421
|
"difficulty": 5,
|
401
422
|
"slug": "pascals-triangle",
|
402
|
-
"topics":
|
423
|
+
"topics": [
|
424
|
+
"arrays",
|
425
|
+
"matrices",
|
426
|
+
"algorithms",
|
427
|
+
"mathematics",
|
428
|
+
"exception_handling",
|
429
|
+
"integers"
|
430
|
+
],
|
403
431
|
"unlocked_by": "matrix",
|
404
432
|
"uuid": "d2a76905-1c8c-4b03-b4f7-4fbff19329f3"
|
405
433
|
},
|
@@ -460,7 +488,14 @@
|
|
460
488
|
"core": false,
|
461
489
|
"difficulty": 6,
|
462
490
|
"slug": "transpose",
|
463
|
-
"topics":
|
491
|
+
"topics": [
|
492
|
+
"loops",
|
493
|
+
"arrays",
|
494
|
+
"lists",
|
495
|
+
"matrices",
|
496
|
+
"strings",
|
497
|
+
"text_formatting"
|
498
|
+
],
|
464
499
|
"unlocked_by": "matrix",
|
465
500
|
"uuid": "57b76837-4610-466f-9373-d5c2697625f1"
|
466
501
|
},
|
@@ -6,6 +6,7 @@ class Triangle {
|
|
6
6
|
private double side1;
|
7
7
|
private double side2;
|
8
8
|
private double side3;
|
9
|
+
private int uniqueSides;
|
9
10
|
|
10
11
|
Triangle(double side1, double side2, double side3) throws TriangleException {
|
11
12
|
this.side1 = side1;
|
@@ -15,20 +16,20 @@ class Triangle {
|
|
15
16
|
if (allSidesAreZero() || hasImpossibleSides() || violatesTriangleInequality()) {
|
16
17
|
throw new TriangleException();
|
17
18
|
}
|
18
|
-
}
|
19
19
|
|
20
|
-
|
21
|
-
|
20
|
+
this.uniqueSides = getNumberOfUniqueSides();
|
21
|
+
}
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
boolean isEquilateral() {
|
24
|
+
return uniqueSides == 1;
|
25
|
+
}
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
27
|
+
boolean isIsosceles() {
|
28
|
+
return uniqueSides == 2;
|
29
|
+
}
|
30
30
|
|
31
|
-
|
31
|
+
boolean isScalene() {
|
32
|
+
return uniqueSides == 3;
|
32
33
|
}
|
33
34
|
|
34
35
|
private boolean allSidesAreZero() {
|
@@ -4,7 +4,15 @@ class Triangle {
|
|
4
4
|
throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
|
5
5
|
}
|
6
6
|
|
7
|
-
|
7
|
+
boolean isEquilateral() {
|
8
|
+
throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
|
9
|
+
}
|
10
|
+
|
11
|
+
boolean isIsosceles() {
|
12
|
+
throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
|
13
|
+
}
|
14
|
+
|
15
|
+
boolean isScalene() {
|
8
16
|
throw new UnsupportedOperationException("Delete this statement and write your own implementation.");
|
9
17
|
}
|
10
18
|
|
@@ -3,7 +3,7 @@ import org.junit.Ignore;
|
|
3
3
|
import org.junit.Rule;
|
4
4
|
import org.junit.rules.ExpectedException;
|
5
5
|
|
6
|
-
import static org.junit.Assert.
|
6
|
+
import static org.junit.Assert.assertTrue;
|
7
7
|
|
8
8
|
public class TriangleTest {
|
9
9
|
|
@@ -14,7 +14,7 @@ public class TriangleTest {
|
|
14
14
|
public void equilateralTrianglesHaveEqualSides() throws TriangleException {
|
15
15
|
Triangle triangle = new Triangle(2, 2, 2);
|
16
16
|
|
17
|
-
|
17
|
+
assertTrue(triangle.isEquilateral());
|
18
18
|
}
|
19
19
|
|
20
20
|
@Ignore("Remove to run test")
|
@@ -22,7 +22,7 @@ public class TriangleTest {
|
|
22
22
|
public void largerEquilateralTrianglesAlsoHaveEqualSides() throws TriangleException {
|
23
23
|
Triangle triangle = new Triangle(10, 10, 10);
|
24
24
|
|
25
|
-
|
25
|
+
assertTrue(triangle.isEquilateral());
|
26
26
|
}
|
27
27
|
|
28
28
|
@Ignore("Remove to run test")
|
@@ -30,7 +30,7 @@ public class TriangleTest {
|
|
30
30
|
public void isoscelesTrianglesHaveLastTwoSidesEqual() throws TriangleException {
|
31
31
|
Triangle triangle = new Triangle(3, 4, 4);
|
32
32
|
|
33
|
-
|
33
|
+
assertTrue(triangle.isIsosceles());
|
34
34
|
}
|
35
35
|
|
36
36
|
@Ignore("Remove to run test")
|
@@ -38,7 +38,7 @@ public class TriangleTest {
|
|
38
38
|
public void isoscelesTrianglesHaveFirstAndLastSidesEqual() throws TriangleException {
|
39
39
|
Triangle triangle = new Triangle(4, 3, 4);
|
40
40
|
|
41
|
-
|
41
|
+
assertTrue(triangle.isIsosceles());
|
42
42
|
}
|
43
43
|
|
44
44
|
@Ignore("Remove to run test")
|
@@ -46,7 +46,7 @@ public class TriangleTest {
|
|
46
46
|
public void isoscelesTrianglesHaveTwoFirstSidesEqual() throws TriangleException {
|
47
47
|
Triangle triangle = new Triangle(4, 4, 3);
|
48
48
|
|
49
|
-
|
49
|
+
assertTrue(triangle.isIsosceles());
|
50
50
|
}
|
51
51
|
|
52
52
|
@Ignore("Remove to run test")
|
@@ -54,7 +54,7 @@ public class TriangleTest {
|
|
54
54
|
public void isoscelesTrianglesHaveInFactExactlyTwoSidesEqual() throws TriangleException {
|
55
55
|
Triangle triangle = new Triangle(10, 10, 2);
|
56
56
|
|
57
|
-
|
57
|
+
assertTrue(triangle.isIsosceles());
|
58
58
|
}
|
59
59
|
|
60
60
|
@Ignore("Remove to run test")
|
@@ -62,7 +62,7 @@ public class TriangleTest {
|
|
62
62
|
public void scaleneTrianglesHaveNoEqualSides() throws TriangleException {
|
63
63
|
Triangle triangle = new Triangle(3, 4, 5);
|
64
64
|
|
65
|
-
|
65
|
+
assertTrue(triangle.isScalene());
|
66
66
|
}
|
67
67
|
|
68
68
|
@Ignore("Remove to run test")
|
@@ -70,7 +70,7 @@ public class TriangleTest {
|
|
70
70
|
public void scaleneTrianglesHaveNoEqualSidesAtLargerScaleEither() throws TriangleException {
|
71
71
|
Triangle triangle = new Triangle(10, 11, 12);
|
72
72
|
|
73
|
-
|
73
|
+
assertTrue(triangle.isScalene());
|
74
74
|
}
|
75
75
|
|
76
76
|
@Ignore("Remove to run test")
|
@@ -78,7 +78,7 @@ public class TriangleTest {
|
|
78
78
|
public void scaleneTrianglesHaveNoEqualSidesInDescendingOrderEither() throws TriangleException {
|
79
79
|
Triangle triangle = new Triangle(5, 4, 2);
|
80
80
|
|
81
|
-
|
81
|
+
assertTrue(triangle.isScalene());
|
82
82
|
}
|
83
83
|
|
84
84
|
@Ignore("Remove to run test")
|
@@ -86,7 +86,7 @@ public class TriangleTest {
|
|
86
86
|
public void verySmallTrianglesAreLegal() throws TriangleException {
|
87
87
|
Triangle triangle = new Triangle(0.4, 0.6, 0.3);
|
88
88
|
|
89
|
-
|
89
|
+
assertTrue(triangle.isScalene());
|
90
90
|
}
|
91
91
|
|
92
92
|
@Ignore("Remove to run test")
|
@@ -114,7 +114,7 @@ public class TriangleTest {
|
|
114
114
|
@Test
|
115
115
|
public void trianglesViolatingTriangleInequalityAreIllegal2() throws TriangleException {
|
116
116
|
expectedException.expect(TriangleException.class);
|
117
|
-
new Triangle(2,
|
117
|
+
new Triangle(2, 5, 2);
|
118
118
|
}
|
119
119
|
|
120
120
|
@Ignore("Remove to run test")
|
@@ -1,2 +1,2 @@
|
|
1
|
-
def to_rna():
|
1
|
+
def to_rna(dna_strand):
|
2
2
|
pass
|
@@ -1,2 +1,2 @@
|
|
1
|
-
def saddle_points():
|
1
|
+
def saddle_points(matrix):
|
2
2
|
pass
|
@@ -1,550 +1,575 @@
|
|
1
1
|
import java.time.LocalDate
|
2
|
-
import org.scalatest.
|
2
|
+
import org.scalatest.{Matchers, FunSuite}
|
3
3
|
|
4
|
+
/** @version 1.0.0 */
|
4
5
|
class MeetupTest extends FunSuite with Matchers {
|
5
|
-
|
6
|
-
test("monteenth of
|
6
|
+
|
7
|
+
test("monteenth of May 2013") {
|
7
8
|
Meetup(5, 2013).day(Meetup.Mon, Schedule.Teenth) should be(
|
8
9
|
LocalDate.of(2013, 5, 13))
|
9
10
|
}
|
10
11
|
|
11
|
-
test("monteenth of
|
12
|
+
test("monteenth of August 2013") {
|
12
13
|
pending
|
13
14
|
Meetup(8, 2013).day(Meetup.Mon, Schedule.Teenth) should be(
|
14
15
|
LocalDate.of(2013, 8, 19))
|
15
16
|
}
|
16
17
|
|
17
|
-
test("monteenth of
|
18
|
+
test("monteenth of September 2013") {
|
18
19
|
pending
|
19
20
|
Meetup(9, 2013).day(Meetup.Mon, Schedule.Teenth) should be(
|
20
21
|
LocalDate.of(2013, 9, 16))
|
21
22
|
}
|
22
23
|
|
23
|
-
test("tuesteenth of
|
24
|
+
test("tuesteenth of March 2013") {
|
24
25
|
pending
|
25
26
|
Meetup(3, 2013).day(Meetup.Tue, Schedule.Teenth) should be(
|
26
27
|
LocalDate.of(2013, 3, 19))
|
27
28
|
}
|
28
29
|
|
29
|
-
test("tuesteenth of
|
30
|
+
test("tuesteenth of April 2013") {
|
30
31
|
pending
|
31
32
|
Meetup(4, 2013).day(Meetup.Tue, Schedule.Teenth) should be(
|
32
33
|
LocalDate.of(2013, 4, 16))
|
33
34
|
}
|
34
35
|
|
35
|
-
test("tuesteenth of
|
36
|
+
test("tuesteenth of August 2013") {
|
36
37
|
pending
|
37
38
|
Meetup(8, 2013).day(Meetup.Tue, Schedule.Teenth) should be(
|
38
39
|
LocalDate.of(2013, 8, 13))
|
39
40
|
}
|
40
41
|
|
41
|
-
test("wednesteenth of
|
42
|
+
test("wednesteenth of January 2013") {
|
42
43
|
pending
|
43
44
|
Meetup(1, 2013).day(Meetup.Wed, Schedule.Teenth) should be(
|
44
45
|
LocalDate.of(2013, 1, 16))
|
45
46
|
}
|
46
47
|
|
47
|
-
test("wednesteenth of
|
48
|
+
test("wednesteenth of February 2013") {
|
48
49
|
pending
|
49
50
|
Meetup(2, 2013).day(Meetup.Wed, Schedule.Teenth) should be(
|
50
51
|
LocalDate.of(2013, 2, 13))
|
51
52
|
}
|
52
53
|
|
53
|
-
test("wednesteenth of
|
54
|
+
test("wednesteenth of June 2013") {
|
54
55
|
pending
|
55
56
|
Meetup(6, 2013).day(Meetup.Wed, Schedule.Teenth) should be(
|
56
57
|
LocalDate.of(2013, 6, 19))
|
57
58
|
}
|
58
59
|
|
59
|
-
test("thursteenth of
|
60
|
+
test("thursteenth of May 2013") {
|
60
61
|
pending
|
61
62
|
Meetup(5, 2013).day(Meetup.Thu, Schedule.Teenth) should be(
|
62
63
|
LocalDate.of(2013, 5, 16))
|
63
64
|
}
|
64
65
|
|
65
|
-
test("thursteenth of
|
66
|
+
test("thursteenth of June 2013") {
|
66
67
|
pending
|
67
68
|
Meetup(6, 2013).day(Meetup.Thu, Schedule.Teenth) should be(
|
68
69
|
LocalDate.of(2013, 6, 13))
|
69
70
|
}
|
70
71
|
|
71
|
-
test("thursteenth of
|
72
|
+
test("thursteenth of September 2013") {
|
72
73
|
pending
|
73
74
|
Meetup(9, 2013).day(Meetup.Thu, Schedule.Teenth) should be(
|
74
75
|
LocalDate.of(2013, 9, 19))
|
75
76
|
}
|
76
77
|
|
77
|
-
test("friteenth of
|
78
|
+
test("friteenth of April 2013") {
|
78
79
|
pending
|
79
80
|
Meetup(4, 2013).day(Meetup.Fri, Schedule.Teenth) should be(
|
80
81
|
LocalDate.of(2013, 4, 19))
|
81
82
|
}
|
82
83
|
|
83
|
-
test("friteenth of
|
84
|
+
test("friteenth of August 2013") {
|
84
85
|
pending
|
85
86
|
Meetup(8, 2013).day(Meetup.Fri, Schedule.Teenth) should be(
|
86
87
|
LocalDate.of(2013, 8, 16))
|
87
88
|
}
|
88
89
|
|
89
|
-
test("friteenth of
|
90
|
+
test("friteenth of September 2013") {
|
90
91
|
pending
|
91
92
|
Meetup(9, 2013).day(Meetup.Fri, Schedule.Teenth) should be(
|
92
93
|
LocalDate.of(2013, 9, 13))
|
93
94
|
}
|
94
95
|
|
95
|
-
test("saturteenth of
|
96
|
+
test("saturteenth of February 2013") {
|
96
97
|
pending
|
97
98
|
Meetup(2, 2013).day(Meetup.Sat, Schedule.Teenth) should be(
|
98
99
|
LocalDate.of(2013, 2, 16))
|
99
100
|
}
|
100
101
|
|
101
|
-
test("saturteenth of
|
102
|
+
test("saturteenth of April 2013") {
|
102
103
|
pending
|
103
104
|
Meetup(4, 2013).day(Meetup.Sat, Schedule.Teenth) should be(
|
104
105
|
LocalDate.of(2013, 4, 13))
|
105
106
|
}
|
106
107
|
|
107
|
-
test("saturteenth of
|
108
|
+
test("saturteenth of October 2013") {
|
108
109
|
pending
|
109
110
|
Meetup(10, 2013).day(Meetup.Sat, Schedule.Teenth) should be(
|
110
111
|
LocalDate.of(2013, 10, 19))
|
111
112
|
}
|
112
113
|
|
113
|
-
test("sunteenth of
|
114
|
+
test("sunteenth of May 2013") {
|
114
115
|
pending
|
115
116
|
Meetup(5, 2013).day(Meetup.Sun, Schedule.Teenth) should be(
|
116
117
|
LocalDate.of(2013, 5, 19))
|
117
118
|
}
|
118
119
|
|
119
|
-
test("sunteenth of
|
120
|
+
test("sunteenth of June 2013") {
|
120
121
|
pending
|
121
122
|
Meetup(6, 2013).day(Meetup.Sun, Schedule.Teenth) should be(
|
122
123
|
LocalDate.of(2013, 6, 16))
|
123
124
|
}
|
124
125
|
|
125
|
-
test("sunteenth of
|
126
|
+
test("sunteenth of October 2013") {
|
126
127
|
pending
|
127
128
|
Meetup(10, 2013).day(Meetup.Sun, Schedule.Teenth) should be(
|
128
129
|
LocalDate.of(2013, 10, 13))
|
129
130
|
}
|
130
131
|
|
131
|
-
test("first
|
132
|
+
test("first Monday of March 2013") {
|
132
133
|
pending
|
133
134
|
Meetup(3, 2013).day(Meetup.Mon, Schedule.First) should be(
|
134
135
|
LocalDate.of(2013, 3, 4))
|
135
136
|
}
|
136
137
|
|
137
|
-
test("first
|
138
|
+
test("first Monday of April 2013") {
|
138
139
|
pending
|
139
140
|
Meetup(4, 2013).day(Meetup.Mon, Schedule.First) should be(
|
140
141
|
LocalDate.of(2013, 4, 1))
|
141
142
|
}
|
142
143
|
|
143
|
-
test("first
|
144
|
+
test("first Tuesday of May 2013") {
|
144
145
|
pending
|
145
146
|
Meetup(5, 2013).day(Meetup.Tue, Schedule.First) should be(
|
146
147
|
LocalDate.of(2013, 5, 7))
|
147
148
|
}
|
148
149
|
|
149
|
-
test("first
|
150
|
+
test("first Tuesday of June 2013") {
|
150
151
|
pending
|
151
152
|
Meetup(6, 2013).day(Meetup.Tue, Schedule.First) should be(
|
152
153
|
LocalDate.of(2013, 6, 4))
|
153
154
|
}
|
154
155
|
|
155
|
-
test("first
|
156
|
+
test("first Wednesday of July 2013") {
|
156
157
|
pending
|
157
158
|
Meetup(7, 2013).day(Meetup.Wed, Schedule.First) should be(
|
158
159
|
LocalDate.of(2013, 7, 3))
|
159
160
|
}
|
160
161
|
|
161
|
-
test("first
|
162
|
+
test("first Wednesday of August 2013") {
|
162
163
|
pending
|
163
164
|
Meetup(8, 2013).day(Meetup.Wed, Schedule.First) should be(
|
164
165
|
LocalDate.of(2013, 8, 7))
|
165
166
|
}
|
166
167
|
|
167
|
-
test("first
|
168
|
+
test("first Thursday of September 2013") {
|
168
169
|
pending
|
169
170
|
Meetup(9, 2013).day(Meetup.Thu, Schedule.First) should be(
|
170
171
|
LocalDate.of(2013, 9, 5))
|
171
172
|
}
|
172
173
|
|
173
|
-
test("first
|
174
|
+
test("first Thursday of October 2013") {
|
174
175
|
pending
|
175
176
|
Meetup(10, 2013).day(Meetup.Thu, Schedule.First) should be(
|
176
177
|
LocalDate.of(2013, 10, 3))
|
177
178
|
}
|
178
179
|
|
179
|
-
test("first
|
180
|
+
test("first Friday of November 2013") {
|
180
181
|
pending
|
181
182
|
Meetup(11, 2013).day(Meetup.Fri, Schedule.First) should be(
|
182
183
|
LocalDate.of(2013, 11, 1))
|
183
184
|
}
|
184
185
|
|
185
|
-
test("first
|
186
|
+
test("first Friday of December 2013") {
|
186
187
|
pending
|
187
188
|
Meetup(12, 2013).day(Meetup.Fri, Schedule.First) should be(
|
188
189
|
LocalDate.of(2013, 12, 6))
|
189
190
|
}
|
190
191
|
|
191
|
-
test("first
|
192
|
+
test("first Saturday of January 2013") {
|
192
193
|
pending
|
193
194
|
Meetup(1, 2013).day(Meetup.Sat, Schedule.First) should be(
|
194
195
|
LocalDate.of(2013, 1, 5))
|
195
196
|
}
|
196
197
|
|
197
|
-
test("first
|
198
|
+
test("first Saturday of February 2013") {
|
198
199
|
pending
|
199
200
|
Meetup(2, 2013).day(Meetup.Sat, Schedule.First) should be(
|
200
201
|
LocalDate.of(2013, 2, 2))
|
201
202
|
}
|
202
203
|
|
203
|
-
test("first
|
204
|
+
test("first Sunday of March 2013") {
|
204
205
|
pending
|
205
206
|
Meetup(3, 2013).day(Meetup.Sun, Schedule.First) should be(
|
206
207
|
LocalDate.of(2013, 3, 3))
|
207
208
|
}
|
208
209
|
|
209
|
-
test("first
|
210
|
+
test("first Sunday of April 2013") {
|
210
211
|
pending
|
211
212
|
Meetup(4, 2013).day(Meetup.Sun, Schedule.First) should be(
|
212
213
|
LocalDate.of(2013, 4, 7))
|
213
214
|
}
|
214
215
|
|
215
|
-
test("second
|
216
|
+
test("second Monday of March 2013") {
|
216
217
|
pending
|
217
218
|
Meetup(3, 2013).day(Meetup.Mon, Schedule.Second) should be(
|
218
219
|
LocalDate.of(2013, 3, 11))
|
219
220
|
}
|
220
221
|
|
221
|
-
test("second
|
222
|
+
test("second Monday of April 2013") {
|
222
223
|
pending
|
223
224
|
Meetup(4, 2013).day(Meetup.Mon, Schedule.Second) should be(
|
224
225
|
LocalDate.of(2013, 4, 8))
|
225
226
|
}
|
226
227
|
|
227
|
-
test("second
|
228
|
+
test("second Tuesday of May 2013") {
|
228
229
|
pending
|
229
230
|
Meetup(5, 2013).day(Meetup.Tue, Schedule.Second) should be(
|
230
231
|
LocalDate.of(2013, 5, 14))
|
231
232
|
}
|
232
233
|
|
233
|
-
test("second
|
234
|
+
test("second Tuesday of June 2013") {
|
234
235
|
pending
|
235
236
|
Meetup(6, 2013).day(Meetup.Tue, Schedule.Second) should be(
|
236
237
|
LocalDate.of(2013, 6, 11))
|
237
238
|
}
|
238
239
|
|
239
|
-
test("second
|
240
|
+
test("second Wednesday of July 2013") {
|
240
241
|
pending
|
241
242
|
Meetup(7, 2013).day(Meetup.Wed, Schedule.Second) should be(
|
242
243
|
LocalDate.of(2013, 7, 10))
|
243
244
|
}
|
244
245
|
|
245
|
-
test("second
|
246
|
+
test("second Wednesday of August 2013") {
|
246
247
|
pending
|
247
248
|
Meetup(8, 2013).day(Meetup.Wed, Schedule.Second) should be(
|
248
249
|
LocalDate.of(2013, 8, 14))
|
249
250
|
}
|
250
251
|
|
251
|
-
test("second
|
252
|
+
test("second Thursday of September 2013") {
|
252
253
|
pending
|
253
254
|
Meetup(9, 2013).day(Meetup.Thu, Schedule.Second) should be(
|
254
255
|
LocalDate.of(2013, 9, 12))
|
255
256
|
}
|
256
257
|
|
257
|
-
test("second
|
258
|
+
test("second Thursday of October 2013") {
|
258
259
|
pending
|
259
260
|
Meetup(10, 2013).day(Meetup.Thu, Schedule.Second) should be(
|
260
261
|
LocalDate.of(2013, 10, 10))
|
261
262
|
}
|
262
263
|
|
263
|
-
test("second
|
264
|
+
test("second Friday of November 2013") {
|
264
265
|
pending
|
265
266
|
Meetup(11, 2013).day(Meetup.Fri, Schedule.Second) should be(
|
266
267
|
LocalDate.of(2013, 11, 8))
|
267
268
|
}
|
268
269
|
|
269
|
-
test("second
|
270
|
+
test("second Friday of December 2013") {
|
270
271
|
pending
|
271
272
|
Meetup(12, 2013).day(Meetup.Fri, Schedule.Second) should be(
|
272
273
|
LocalDate.of(2013, 12, 13))
|
273
274
|
}
|
274
275
|
|
275
|
-
test("second
|
276
|
+
test("second Saturday of January 2013") {
|
276
277
|
pending
|
277
278
|
Meetup(1, 2013).day(Meetup.Sat, Schedule.Second) should be(
|
278
279
|
LocalDate.of(2013, 1, 12))
|
279
280
|
}
|
280
281
|
|
281
|
-
test("second
|
282
|
+
test("second Saturday of February 2013") {
|
282
283
|
pending
|
283
284
|
Meetup(2, 2013).day(Meetup.Sat, Schedule.Second) should be(
|
284
285
|
LocalDate.of(2013, 2, 9))
|
285
286
|
}
|
286
287
|
|
287
|
-
test("second
|
288
|
+
test("second Sunday of March 2013") {
|
288
289
|
pending
|
289
290
|
Meetup(3, 2013).day(Meetup.Sun, Schedule.Second) should be(
|
290
291
|
LocalDate.of(2013, 3, 10))
|
291
292
|
}
|
292
293
|
|
293
|
-
test("second
|
294
|
+
test("second Sunday of April 2013") {
|
294
295
|
pending
|
295
296
|
Meetup(4, 2013).day(Meetup.Sun, Schedule.Second) should be(
|
296
297
|
LocalDate.of(2013, 4, 14))
|
297
298
|
}
|
298
299
|
|
299
|
-
test("third
|
300
|
+
test("third Monday of March 2013") {
|
300
301
|
pending
|
301
302
|
Meetup(3, 2013).day(Meetup.Mon, Schedule.Third) should be(
|
302
303
|
LocalDate.of(2013, 3, 18))
|
303
304
|
}
|
304
305
|
|
305
|
-
test("third
|
306
|
+
test("third Monday of April 2013") {
|
306
307
|
pending
|
307
308
|
Meetup(4, 2013).day(Meetup.Mon, Schedule.Third) should be(
|
308
309
|
LocalDate.of(2013, 4, 15))
|
309
310
|
}
|
310
311
|
|
311
|
-
test("third
|
312
|
+
test("third Tuesday of May 2013") {
|
312
313
|
pending
|
313
314
|
Meetup(5, 2013).day(Meetup.Tue, Schedule.Third) should be(
|
314
315
|
LocalDate.of(2013, 5, 21))
|
315
316
|
}
|
316
317
|
|
317
|
-
test("third
|
318
|
+
test("third Tuesday of June 2013") {
|
318
319
|
pending
|
319
320
|
Meetup(6, 2013).day(Meetup.Tue, Schedule.Third) should be(
|
320
321
|
LocalDate.of(2013, 6, 18))
|
321
322
|
}
|
322
323
|
|
323
|
-
test("third
|
324
|
+
test("third Wednesday of July 2013") {
|
324
325
|
pending
|
325
326
|
Meetup(7, 2013).day(Meetup.Wed, Schedule.Third) should be(
|
326
327
|
LocalDate.of(2013, 7, 17))
|
327
328
|
}
|
328
329
|
|
329
|
-
test("third
|
330
|
+
test("third Wednesday of August 2013") {
|
330
331
|
pending
|
331
332
|
Meetup(8, 2013).day(Meetup.Wed, Schedule.Third) should be(
|
332
333
|
LocalDate.of(2013, 8, 21))
|
333
334
|
}
|
334
335
|
|
335
|
-
test("third
|
336
|
+
test("third Thursday of September 2013") {
|
336
337
|
pending
|
337
338
|
Meetup(9, 2013).day(Meetup.Thu, Schedule.Third) should be(
|
338
339
|
LocalDate.of(2013, 9, 19))
|
339
340
|
}
|
340
341
|
|
341
|
-
test("third
|
342
|
+
test("third Thursday of October 2013") {
|
342
343
|
pending
|
343
344
|
Meetup(10, 2013).day(Meetup.Thu, Schedule.Third) should be(
|
344
345
|
LocalDate.of(2013, 10, 17))
|
345
346
|
}
|
346
347
|
|
347
|
-
test("third
|
348
|
+
test("third Friday of November 2013") {
|
348
349
|
pending
|
349
350
|
Meetup(11, 2013).day(Meetup.Fri, Schedule.Third) should be(
|
350
351
|
LocalDate.of(2013, 11, 15))
|
351
352
|
}
|
352
353
|
|
353
|
-
test("third
|
354
|
+
test("third Friday of December 2013") {
|
354
355
|
pending
|
355
356
|
Meetup(12, 2013).day(Meetup.Fri, Schedule.Third) should be(
|
356
357
|
LocalDate.of(2013, 12, 20))
|
357
358
|
}
|
358
359
|
|
359
|
-
test("third
|
360
|
+
test("third Saturday of January 2013") {
|
360
361
|
pending
|
361
362
|
Meetup(1, 2013).day(Meetup.Sat, Schedule.Third) should be(
|
362
363
|
LocalDate.of(2013, 1, 19))
|
363
364
|
}
|
364
365
|
|
365
|
-
test("third
|
366
|
+
test("third Saturday of February 2013") {
|
366
367
|
pending
|
367
368
|
Meetup(2, 2013).day(Meetup.Sat, Schedule.Third) should be(
|
368
369
|
LocalDate.of(2013, 2, 16))
|
369
370
|
}
|
370
371
|
|
371
|
-
test("third
|
372
|
+
test("third Sunday of March 2013") {
|
372
373
|
pending
|
373
374
|
Meetup(3, 2013).day(Meetup.Sun, Schedule.Third) should be(
|
374
375
|
LocalDate.of(2013, 3, 17))
|
375
376
|
}
|
376
377
|
|
377
|
-
test("third
|
378
|
+
test("third Sunday of April 2013") {
|
378
379
|
pending
|
379
380
|
Meetup(4, 2013).day(Meetup.Sun, Schedule.Third) should be(
|
380
381
|
LocalDate.of(2013, 4, 21))
|
381
382
|
}
|
382
383
|
|
383
|
-
test("fourth
|
384
|
+
test("fourth Monday of March 2013") {
|
384
385
|
pending
|
385
386
|
Meetup(3, 2013).day(Meetup.Mon, Schedule.Fourth) should be(
|
386
387
|
LocalDate.of(2013, 3, 25))
|
387
388
|
}
|
388
389
|
|
389
|
-
test("fourth
|
390
|
+
test("fourth Monday of April 2013") {
|
390
391
|
pending
|
391
392
|
Meetup(4, 2013).day(Meetup.Mon, Schedule.Fourth) should be(
|
392
393
|
LocalDate.of(2013, 4, 22))
|
393
394
|
}
|
394
395
|
|
395
|
-
test("fourth
|
396
|
+
test("fourth Tuesday of May 2013") {
|
396
397
|
pending
|
397
398
|
Meetup(5, 2013).day(Meetup.Tue, Schedule.Fourth) should be(
|
398
399
|
LocalDate.of(2013, 5, 28))
|
399
400
|
}
|
400
401
|
|
401
|
-
test("fourth
|
402
|
+
test("fourth Tuesday of June 2013") {
|
402
403
|
pending
|
403
404
|
Meetup(6, 2013).day(Meetup.Tue, Schedule.Fourth) should be(
|
404
405
|
LocalDate.of(2013, 6, 25))
|
405
406
|
}
|
406
407
|
|
407
|
-
test("fourth
|
408
|
+
test("fourth Wednesday of July 2013") {
|
408
409
|
pending
|
409
410
|
Meetup(7, 2013).day(Meetup.Wed, Schedule.Fourth) should be(
|
410
411
|
LocalDate.of(2013, 7, 24))
|
411
412
|
}
|
412
413
|
|
413
|
-
test("fourth
|
414
|
+
test("fourth Wednesday of August 2013") {
|
414
415
|
pending
|
415
416
|
Meetup(8, 2013).day(Meetup.Wed, Schedule.Fourth) should be(
|
416
417
|
LocalDate.of(2013, 8, 28))
|
417
418
|
}
|
418
419
|
|
419
|
-
test("fourth
|
420
|
+
test("fourth Thursday of September 2013") {
|
420
421
|
pending
|
421
422
|
Meetup(9, 2013).day(Meetup.Thu, Schedule.Fourth) should be(
|
422
423
|
LocalDate.of(2013, 9, 26))
|
423
424
|
}
|
424
425
|
|
425
|
-
test("fourth
|
426
|
+
test("fourth Thursday of October 2013") {
|
426
427
|
pending
|
427
428
|
Meetup(10, 2013).day(Meetup.Thu, Schedule.Fourth) should be(
|
428
429
|
LocalDate.of(2013, 10, 24))
|
429
430
|
}
|
430
431
|
|
431
|
-
test("fourth
|
432
|
+
test("fourth Friday of November 2013") {
|
432
433
|
pending
|
433
434
|
Meetup(11, 2013).day(Meetup.Fri, Schedule.Fourth) should be(
|
434
435
|
LocalDate.of(2013, 11, 22))
|
435
436
|
}
|
436
437
|
|
437
|
-
test("fourth
|
438
|
+
test("fourth Friday of December 2013") {
|
438
439
|
pending
|
439
440
|
Meetup(12, 2013).day(Meetup.Fri, Schedule.Fourth) should be(
|
440
441
|
LocalDate.of(2013, 12, 27))
|
441
442
|
}
|
442
443
|
|
443
|
-
test("fourth
|
444
|
+
test("fourth Saturday of January 2013") {
|
444
445
|
pending
|
445
446
|
Meetup(1, 2013).day(Meetup.Sat, Schedule.Fourth) should be(
|
446
447
|
LocalDate.of(2013, 1, 26))
|
447
448
|
}
|
448
449
|
|
449
|
-
test("fourth
|
450
|
+
test("fourth Saturday of February 2013") {
|
450
451
|
pending
|
451
452
|
Meetup(2, 2013).day(Meetup.Sat, Schedule.Fourth) should be(
|
452
453
|
LocalDate.of(2013, 2, 23))
|
453
454
|
}
|
454
455
|
|
455
|
-
test("fourth
|
456
|
+
test("fourth Sunday of March 2013") {
|
456
457
|
pending
|
457
458
|
Meetup(3, 2013).day(Meetup.Sun, Schedule.Fourth) should be(
|
458
459
|
LocalDate.of(2013, 3, 24))
|
459
460
|
}
|
460
461
|
|
461
|
-
test("fourth
|
462
|
+
test("fourth Sunday of April 2013") {
|
462
463
|
pending
|
463
464
|
Meetup(4, 2013).day(Meetup.Sun, Schedule.Fourth) should be(
|
464
465
|
LocalDate.of(2013, 4, 28))
|
465
466
|
}
|
466
467
|
|
467
|
-
test("last
|
468
|
+
test("last Monday of March 2013") {
|
468
469
|
pending
|
469
470
|
Meetup(3, 2013).day(Meetup.Mon, Schedule.Last) should be(
|
470
471
|
LocalDate.of(2013, 3, 25))
|
471
472
|
}
|
472
473
|
|
473
|
-
test("last
|
474
|
+
test("last Monday of April 2013") {
|
474
475
|
pending
|
475
476
|
Meetup(4, 2013).day(Meetup.Mon, Schedule.Last) should be(
|
476
477
|
LocalDate.of(2013, 4, 29))
|
477
478
|
}
|
478
479
|
|
479
|
-
test("last
|
480
|
+
test("last Tuesday of May 2013") {
|
480
481
|
pending
|
481
482
|
Meetup(5, 2013).day(Meetup.Tue, Schedule.Last) should be(
|
482
483
|
LocalDate.of(2013, 5, 28))
|
483
484
|
}
|
484
485
|
|
485
|
-
test("last
|
486
|
+
test("last Tuesday of June 2013") {
|
486
487
|
pending
|
487
488
|
Meetup(6, 2013).day(Meetup.Tue, Schedule.Last) should be(
|
488
489
|
LocalDate.of(2013, 6, 25))
|
489
490
|
}
|
490
491
|
|
491
|
-
test("last
|
492
|
+
test("last Wednesday of July 2013") {
|
492
493
|
pending
|
493
494
|
Meetup(7, 2013).day(Meetup.Wed, Schedule.Last) should be(
|
494
495
|
LocalDate.of(2013, 7, 31))
|
495
496
|
}
|
496
497
|
|
497
|
-
test("last
|
498
|
+
test("last Wednesday of August 2013") {
|
498
499
|
pending
|
499
500
|
Meetup(8, 2013).day(Meetup.Wed, Schedule.Last) should be(
|
500
501
|
LocalDate.of(2013, 8, 28))
|
501
502
|
}
|
502
503
|
|
503
|
-
test("last
|
504
|
+
test("last Thursday of September 2013") {
|
504
505
|
pending
|
505
506
|
Meetup(9, 2013).day(Meetup.Thu, Schedule.Last) should be(
|
506
507
|
LocalDate.of(2013, 9, 26))
|
507
508
|
}
|
508
509
|
|
509
|
-
test("last
|
510
|
+
test("last Thursday of October 2013") {
|
510
511
|
pending
|
511
512
|
Meetup(10, 2013).day(Meetup.Thu, Schedule.Last) should be(
|
512
513
|
LocalDate.of(2013, 10, 31))
|
513
514
|
}
|
514
515
|
|
515
|
-
test("last
|
516
|
+
test("last Friday of November 2013") {
|
516
517
|
pending
|
517
518
|
Meetup(11, 2013).day(Meetup.Fri, Schedule.Last) should be(
|
518
519
|
LocalDate.of(2013, 11, 29))
|
519
520
|
}
|
520
521
|
|
521
|
-
test("last
|
522
|
+
test("last Friday of December 2013") {
|
522
523
|
pending
|
523
524
|
Meetup(12, 2013).day(Meetup.Fri, Schedule.Last) should be(
|
524
525
|
LocalDate.of(2013, 12, 27))
|
525
526
|
}
|
526
527
|
|
527
|
-
test("last
|
528
|
+
test("last Saturday of January 2013") {
|
528
529
|
pending
|
529
530
|
Meetup(1, 2013).day(Meetup.Sat, Schedule.Last) should be(
|
530
531
|
LocalDate.of(2013, 1, 26))
|
531
532
|
}
|
532
533
|
|
533
|
-
test("last
|
534
|
+
test("last Saturday of February 2013") {
|
534
535
|
pending
|
535
536
|
Meetup(2, 2013).day(Meetup.Sat, Schedule.Last) should be(
|
536
537
|
LocalDate.of(2013, 2, 23))
|
537
538
|
}
|
538
539
|
|
539
|
-
test("last
|
540
|
+
test("last Sunday of March 2013") {
|
540
541
|
pending
|
541
542
|
Meetup(3, 2013).day(Meetup.Sun, Schedule.Last) should be(
|
542
543
|
LocalDate.of(2013, 3, 31))
|
543
544
|
}
|
544
545
|
|
545
|
-
test("last
|
546
|
+
test("last Sunday of April 2013") {
|
546
547
|
pending
|
547
548
|
Meetup(4, 2013).day(Meetup.Sun, Schedule.Last) should be(
|
548
549
|
LocalDate.of(2013, 4, 28))
|
549
550
|
}
|
551
|
+
|
552
|
+
test("last Wednesday of February 2012") {
|
553
|
+
pending
|
554
|
+
Meetup(2, 2012).day(Meetup.Wed, Schedule.Last) should be(
|
555
|
+
LocalDate.of(2012, 2, 29))
|
556
|
+
}
|
557
|
+
|
558
|
+
test("last Wednesday of December 2014") {
|
559
|
+
pending
|
560
|
+
Meetup(12, 2014).day(Meetup.Wed, Schedule.Last) should be(
|
561
|
+
LocalDate.of(2014, 12, 31))
|
562
|
+
}
|
563
|
+
|
564
|
+
test("last Sunday of February 2015") {
|
565
|
+
pending
|
566
|
+
Meetup(2, 2015).day(Meetup.Sun, Schedule.Last) should be(
|
567
|
+
LocalDate.of(2015, 2, 22))
|
568
|
+
}
|
569
|
+
|
570
|
+
test("first Friday of December 2012") {
|
571
|
+
pending
|
572
|
+
Meetup(12, 2012).day(Meetup.Fri, Schedule.First) should be(
|
573
|
+
LocalDate.of(2012, 12, 7))
|
574
|
+
}
|
550
575
|
}
|