trackler 2.0.8.19 → 2.0.8.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/common/exercises/phone-number/canonical-data.json +2 -2
  3. data/lib/trackler/version.rb +1 -1
  4. data/tracks/c/config.json +7 -0
  5. data/tracks/c/exercises/react/makefile +16 -0
  6. data/tracks/c/exercises/react/src/example.c +185 -0
  7. data/tracks/c/exercises/react/src/react.h +29 -0
  8. data/tracks/c/exercises/react/test/test_react.c +324 -0
  9. data/tracks/c/exercises/react/test/vendor/unity.c +1300 -0
  10. data/tracks/c/exercises/react/test/vendor/unity.h +274 -0
  11. data/tracks/c/exercises/react/test/vendor/unity_internals.h +701 -0
  12. data/tracks/csharp/.travis.yml +2 -9
  13. data/tracks/csharp/appveyor.yml +3 -3
  14. data/tracks/csharp/build.cake +13 -4
  15. data/tracks/csharp/build.ps1 +56 -164
  16. data/tracks/csharp/build.sh +33 -78
  17. data/tracks/csharp/circle.yml +2 -4
  18. data/tracks/csharp/config.json +2 -1
  19. data/tracks/csharp/exercises/leap/LeapTest.cs +8 -8
  20. data/tracks/csharp/generators/CanonicalData.cs +19 -0
  21. data/tracks/csharp/generators/CanonicalDataCase.cs +24 -0
  22. data/tracks/csharp/generators/CanonicalDataCaseJsonConverter.cs +32 -0
  23. data/tracks/csharp/generators/CanonicalDataCasesJsonConverter.cs +30 -0
  24. data/tracks/csharp/generators/CanonicalDataParser.cs +28 -0
  25. data/tracks/csharp/generators/ExerciseCollection.cs +23 -0
  26. data/tracks/csharp/generators/Exercises/Exercise.cs +14 -0
  27. data/tracks/csharp/generators/Exercises/LeapExercise.cs +35 -0
  28. data/tracks/csharp/generators/Generators.csproj +12 -0
  29. data/tracks/csharp/generators/Generators.csproj.user +6 -0
  30. data/tracks/csharp/generators/Generators.sln +22 -0
  31. data/tracks/csharp/generators/Program.cs +59 -0
  32. data/tracks/csharp/generators/TestClass.cs +13 -0
  33. data/tracks/csharp/generators/TestClassRenderer.cs +36 -0
  34. data/tracks/csharp/generators/TestMethod.cs +9 -0
  35. data/tracks/csharp/generators/TestMethodNameTransformer.cs +11 -0
  36. data/tracks/csharp/generators/TestMethodRenderer.cs +18 -0
  37. data/tracks/csharp/generators/To.cs +7 -0
  38. data/tracks/csharp/generators/generate.ps1 +2 -0
  39. data/tracks/csharp/generators/generate.sh +4 -0
  40. data/tracks/delphi/config.json +8 -0
  41. data/tracks/delphi/exercises/phone-number/uPhoneNumberExample.pas +6 -6
  42. data/tracks/delphi/exercises/phone-number/uPhoneNumberTests.pas +28 -17
  43. data/tracks/delphi/exercises/roman-numerals/RomanNumerals.dpr +60 -0
  44. data/tracks/delphi/exercises/roman-numerals/uRomanNumeralsExample.pas +49 -0
  45. data/tracks/delphi/exercises/roman-numerals/uRomanNumeralsTest.pas +216 -0
  46. data/tracks/elixir/config.json +22 -0
  47. data/tracks/elixir/exercises/poker/example.exs +136 -0
  48. data/tracks/elixir/exercises/poker/poker.exs +34 -0
  49. data/tracks/elixir/exercises/poker/poker_test.exs +217 -0
  50. data/tracks/elixir/exercises/protein-translation/example.exs +62 -0
  51. data/tracks/elixir/exercises/protein-translation/protein_translation.exs +34 -0
  52. data/tracks/elixir/exercises/protein-translation/protein_translation_test.exs +87 -0
  53. data/tracks/elixir/exercises/say/example.exs +139 -0
  54. data/tracks/elixir/exercises/say/say.exs +8 -0
  55. data/tracks/elixir/exercises/say/say_test.exs +85 -0
  56. data/tracks/go/exercises/robot-name/example.go +2 -0
  57. data/tracks/go/exercises/robot-name/robot_name_test.go +9 -1
  58. data/tracks/go/exercises/roman-numerals/roman_numerals_test.go +4 -1
  59. data/tracks/go/exercises/saddle-points/saddle_points_test.go +6 -6
  60. data/tracks/php/config.json +7 -0
  61. data/tracks/php/exercises/grade-school/example.php +35 -0
  62. data/tracks/php/exercises/grade-school/grade-school_test.php +84 -0
  63. metadata +43 -2
@@ -0,0 +1,35 @@
1
+ <?php
2
+
3
+ class School
4
+ {
5
+ private $database = array() ;
6
+
7
+ public function numberOfStudents()
8
+ {
9
+ return (count($this->database, COUNT_RECURSIVE) - count($this->database)) ;
10
+ }
11
+
12
+ public function add($student, $grade)
13
+ {
14
+ $this->database[$grade][] = $student ;
15
+ }
16
+
17
+ public function grade($grade)
18
+ {
19
+ return (array_key_exists($grade, $this->database) ? $this->database[$grade] : array()) ;
20
+ }
21
+
22
+ public function studentsByGradeAlphabetical()
23
+ {
24
+ $tmp = $this->database ;
25
+ ksort($tmp) ;
26
+
27
+ foreach ($tmp as $grade => $students) {
28
+ asort($students) ;
29
+ foreach ($students as $student) {
30
+ $res [ $grade ][] = $student ;
31
+ }
32
+ }
33
+ return $res ;
34
+ }
35
+ }
@@ -0,0 +1,84 @@
1
+ <?php
2
+
3
+ require "grade-school.php";
4
+ use PHPUnit\Framework\TestCase;
5
+
6
+ class GradeSchoolTest extends TestCase
7
+ {
8
+ protected $school ;
9
+
10
+ protected function setUp()
11
+ {
12
+ $this->school = new School() ;
13
+ }
14
+
15
+ public function testNoStudent()
16
+ {
17
+ $this->assertEquals(0, $this->school->numberOfStudents());
18
+ }
19
+
20
+ public function testAddStudent()
21
+ {
22
+ $this->markTestSkipped();
23
+
24
+ $this->school->add("Claire", 2);
25
+ $this->assertContains('Claire', $this->school->grade(2));
26
+ }
27
+
28
+ public function testAddStudentsinSameGrade()
29
+ {
30
+ $this->markTestSkipped();
31
+
32
+ $this->school->add("Marc", 2);
33
+ $this->school->add("Virginie", 2);
34
+ $this->school->add("Claire", 2);
35
+
36
+ $students = $this->school->grade(2) ;
37
+ $this->assertCount(3, $students);
38
+ $this->assertEquals(
39
+ ['Claire', 'Marc', 'Virginie'],
40
+ $students,
41
+ $message = '',
42
+ $delta = 0.0,
43
+ $maxDepth = 10,
44
+ $canonicalize = true
45
+ );
46
+ }
47
+
48
+ public function testAddStudentInDifferentGrades()
49
+ {
50
+ $this->markTestSkipped();
51
+
52
+ $this->school->add("Marc", 3);
53
+ $this->school->add("Claire", 6);
54
+
55
+ $this->assertContains('Marc', $this->school->grade(3));
56
+ $this->assertContains('Claire', $this->school->grade(6));
57
+ $this->assertNotContains('Marc', $this->school->grade(6));
58
+ $this->assertNotContains('Claire', $this->school->grade(3));
59
+ }
60
+
61
+ public function testEmptyGrade()
62
+ {
63
+ $this->markTestSkipped();
64
+
65
+ $this->assertEmpty($this->school->grade(1));
66
+ }
67
+
68
+ public function testSortSchool()
69
+ {
70
+ $this->markTestSkipped();
71
+
72
+ $this->school->add("Marc", 5);
73
+ $this->school->add("Virginie", 5);
74
+ $this->school->add("Claire", 5);
75
+ $this->school->add("Mehdi", 4);
76
+
77
+ $sortedStudents = [
78
+ 4 => ['Mehdi'],
79
+ 5 => ['Claire', 'Marc', 'Virginie']
80
+ ];
81
+ $schoolStudents = $this->school->studentsByGradeAlphabetical() ;
82
+ $this->assertEquals($sortedStudents, $schoolStudents) ;
83
+ }
84
+ }
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.0.8.19
4
+ version: 2.0.8.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katrina Owen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-13 00:00:00.000000000 Z
11
+ date: 2017-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -712,6 +712,13 @@ files:
712
712
  - tracks/c/exercises/raindrops/test/vendor/unity.c
713
713
  - tracks/c/exercises/raindrops/test/vendor/unity.h
714
714
  - tracks/c/exercises/raindrops/test/vendor/unity_internals.h
715
+ - tracks/c/exercises/react/makefile
716
+ - tracks/c/exercises/react/src/example.c
717
+ - tracks/c/exercises/react/src/react.h
718
+ - tracks/c/exercises/react/test/test_react.c
719
+ - tracks/c/exercises/react/test/vendor/unity.c
720
+ - tracks/c/exercises/react/test/vendor/unity.h
721
+ - tracks/c/exercises/react/test/vendor/unity_internals.h
715
722
  - tracks/c/exercises/rna-transcription/makefile
716
723
  - tracks/c/exercises/rna-transcription/src/example.c
717
724
  - tracks/c/exercises/rna-transcription/src/example.h
@@ -1787,6 +1794,26 @@ files:
1787
1794
  - tracks/csharp/exercises/zipper/Zipper.cs
1788
1795
  - tracks/csharp/exercises/zipper/Zipper.csproj
1789
1796
  - tracks/csharp/exercises/zipper/ZipperTest.cs
1797
+ - tracks/csharp/generators/CanonicalData.cs
1798
+ - tracks/csharp/generators/CanonicalDataCase.cs
1799
+ - tracks/csharp/generators/CanonicalDataCaseJsonConverter.cs
1800
+ - tracks/csharp/generators/CanonicalDataCasesJsonConverter.cs
1801
+ - tracks/csharp/generators/CanonicalDataParser.cs
1802
+ - tracks/csharp/generators/ExerciseCollection.cs
1803
+ - tracks/csharp/generators/Exercises/Exercise.cs
1804
+ - tracks/csharp/generators/Exercises/LeapExercise.cs
1805
+ - tracks/csharp/generators/Generators.csproj
1806
+ - tracks/csharp/generators/Generators.csproj.user
1807
+ - tracks/csharp/generators/Generators.sln
1808
+ - tracks/csharp/generators/Program.cs
1809
+ - tracks/csharp/generators/TestClass.cs
1810
+ - tracks/csharp/generators/TestClassRenderer.cs
1811
+ - tracks/csharp/generators/TestMethod.cs
1812
+ - tracks/csharp/generators/TestMethodNameTransformer.cs
1813
+ - tracks/csharp/generators/TestMethodRenderer.cs
1814
+ - tracks/csharp/generators/To.cs
1815
+ - tracks/csharp/generators/generate.ps1
1816
+ - tracks/csharp/generators/generate.sh
1790
1817
  - tracks/csharp/img/icon.png
1791
1818
  - tracks/delphi/.git
1792
1819
  - tracks/delphi/.gitignore
@@ -1880,6 +1907,9 @@ files:
1880
1907
  - tracks/delphi/exercises/rna-transcription/RnaTranscription.dpr
1881
1908
  - tracks/delphi/exercises/rna-transcription/uRnaTranscriptionExample.pas
1882
1909
  - tracks/delphi/exercises/rna-transcription/uTestRnaTranscription.pas
1910
+ - tracks/delphi/exercises/roman-numerals/RomanNumerals.dpr
1911
+ - tracks/delphi/exercises/roman-numerals/uRomanNumeralsExample.pas
1912
+ - tracks/delphi/exercises/roman-numerals/uRomanNumeralsTest.pas
1883
1913
  - tracks/delphi/exercises/saddle-points/SaddlePoints.dpr
1884
1914
  - tracks/delphi/exercises/saddle-points/uSaddlePointsExample.pas
1885
1915
  - tracks/delphi/exercises/saddle-points/uSaddlePointsTests.pas
@@ -2441,9 +2471,15 @@ files:
2441
2471
  - tracks/elixir/exercises/phone-number/example.exs
2442
2472
  - tracks/elixir/exercises/phone-number/phone_number.exs
2443
2473
  - tracks/elixir/exercises/phone-number/phone_number_test.exs
2474
+ - tracks/elixir/exercises/poker/example.exs
2475
+ - tracks/elixir/exercises/poker/poker.exs
2476
+ - tracks/elixir/exercises/poker/poker_test.exs
2444
2477
  - tracks/elixir/exercises/prime-factors/example.exs
2445
2478
  - tracks/elixir/exercises/prime-factors/prime_factors.exs
2446
2479
  - tracks/elixir/exercises/prime-factors/prime_factors_test.exs
2480
+ - tracks/elixir/exercises/protein-translation/example.exs
2481
+ - tracks/elixir/exercises/protein-translation/protein_translation.exs
2482
+ - tracks/elixir/exercises/protein-translation/protein_translation_test.exs
2447
2483
  - tracks/elixir/exercises/pythagorean-triplet/example.exs
2448
2484
  - tracks/elixir/exercises/pythagorean-triplet/pythagorean_triplet.exs
2449
2485
  - tracks/elixir/exercises/pythagorean-triplet/pythagorean_triplet_test.exs
@@ -2474,6 +2510,9 @@ files:
2474
2510
  - tracks/elixir/exercises/saddle-points/example.exs
2475
2511
  - tracks/elixir/exercises/saddle-points/saddle_points.exs
2476
2512
  - tracks/elixir/exercises/saddle-points/saddle_points_test.exs
2513
+ - tracks/elixir/exercises/say/example.exs
2514
+ - tracks/elixir/exercises/say/say.exs
2515
+ - tracks/elixir/exercises/say/say_test.exs
2477
2516
  - tracks/elixir/exercises/scrabble-score/example.exs
2478
2517
  - tracks/elixir/exercises/scrabble-score/scrabble.exs
2479
2518
  - tracks/elixir/exercises/scrabble-score/scrabble_score_test.exs
@@ -6098,6 +6137,8 @@ files:
6098
6137
  - tracks/php/exercises/etl/example.php
6099
6138
  - tracks/php/exercises/gigasecond/example.php
6100
6139
  - tracks/php/exercises/gigasecond/gigasecond_test.php
6140
+ - tracks/php/exercises/grade-school/example.php
6141
+ - tracks/php/exercises/grade-school/grade-school_test.php
6101
6142
  - tracks/php/exercises/grains/example.php
6102
6143
  - tracks/php/exercises/grains/grains_test.php
6103
6144
  - tracks/php/exercises/hamming/example.php