trackler 2.0.6.7 → 2.0.6.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6cc0a77186d7fa2d5ea7277f76bbd16c0e610a52
4
- data.tar.gz: bd56a7bb8a6d1a0d68cf50e13e3a0b8c555f2159
3
+ metadata.gz: 06eb068eafe08df34df6d6694c3addea1a148d25
4
+ data.tar.gz: 40fc285269f963be93d20e6aa3b6e88502f83713
5
5
  SHA512:
6
- metadata.gz: b6ceea973ff044d16bb0976de1ce9ba06c91c6deec0abb8a09f2878e1f88e811f86bed65a4eeb36626b4146432220c451b3126b3bf8f05867ef62669ef9cda1e
7
- data.tar.gz: 92c97e22e97b13a145ebaa8e4a61aa690907bb017bcfe7c2317199fd1eced5be3a45b1fcb5fc9b9cac1d31b7a60f1d620a36bce790555181fb30ac8a01a99a7c
6
+ metadata.gz: bdc0498d9f33dea2d191d3b728f8f33fc0808f4cfc17413674440ef0a6352a7a6e50389df6c434a2e243b1a25e9e97f3eb5ed7ee74383079c55b9b5692cd7206
7
+ data.tar.gz: 720ef4ddced6739a38e22c33ff657e8ca0b14b019d4d7940a587b18b0ed7d22572d7010b83c7c72b43ca1a8b003ab0081a7ae88aa64059a892e2b60e143a5e77
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.0.6.7"
2
+ VERSION = "2.0.6.8"
3
3
  end
@@ -75,8 +75,8 @@ public class DifferenceOfSquaresTests
75
75
 
76
76
  [Ignore("Remove to run test")]
77
77
  [Test]
78
- public void Test_negative_numbers_throw_argument_exception()
78
+ public void Test_negative_numbers_throw_argument_out_of_range_exception()
79
79
  {
80
- Assert.That(() => new Squares(-5), Throws.TypeOf<ArgumentException>());
80
+ Assert.That(() => new Squares(-5), Throws.TypeOf<ArgumentOutOfRangeException>());
81
81
  }
82
82
  }
@@ -9,7 +9,7 @@ public class Squares
9
9
  {
10
10
  if (max < 0)
11
11
  {
12
- throw new ArgumentException("Max must be positive", "max");
12
+ throw new ArgumentOutOfRangeException("Max must be positive", "max");
13
13
  }
14
14
 
15
15
  this.max = max;
@@ -10,7 +10,7 @@
10
10
  # That way no maintainer will mistakenly commit the deleted files,
11
11
  # which could otherwise happen after running tests locally.
12
12
 
13
- for dir in exercises/*; do
13
+ for dir in exercises/*/; do
14
14
  stub=$(echo $(basename $dir) | tr - _)
15
15
  file="$dir/$stub.go"
16
16
  if [ -f $file ]; then
@@ -39,7 +39,7 @@ cleanup () {
39
39
  trap cleanup EXIT INT TERM
40
40
 
41
41
  if [ "$1" = "fmt" ]; then
42
- for dir in exercises/*; do
42
+ for dir in exercises/*/; do
43
43
  cd $dir
44
44
  if [ -n "$(go fmt)" ]; then
45
45
  echo "please run 'go fmt' on $dir" >&2
@@ -51,7 +51,7 @@ if [ "$1" = "fmt" ]; then
51
51
  fi
52
52
 
53
53
  if [ "$1" = "vet" ]; then
54
- for dir in exercises/*; do
54
+ for dir in exercises/*/; do
55
55
  cd $dir
56
56
  if ! go vet; then
57
57
  echo "please follow the 'go vet' suggestions in $dir" >&2
@@ -38,7 +38,12 @@
38
38
  {
39
39
  "difficulty": 1,
40
40
  "slug": "leap",
41
- "topics": []
41
+ "topics": [
42
+ "Control-flow (conditionals)",
43
+ "Booleans",
44
+ "Integers",
45
+ "Logic"
46
+ ]
42
47
  },
43
48
  {
44
49
  "difficulty": 1,
File without changes
@@ -24,7 +24,7 @@ public class EtlTest {
24
24
  };
25
25
  expected = Collections.unmodifiableMap(expected);
26
26
 
27
- assertEquals(etl.transform(old), expected);
27
+ assertEquals(expected, etl.transform(old));
28
28
  }
29
29
 
30
30
  @Test
@@ -47,7 +47,7 @@ public class EtlTest {
47
47
  };
48
48
  expected = Collections.unmodifiableMap(expected);
49
49
 
50
- assertEquals(etl.transform(old), expected);
50
+ assertEquals(expected, etl.transform(old));
51
51
  }
52
52
 
53
53
  @Test
@@ -70,7 +70,7 @@ public class EtlTest {
70
70
  };
71
71
  expected = Collections.unmodifiableMap(expected);
72
72
 
73
- assertEquals(etl.transform(old), expected);
73
+ assertEquals(expected, etl.transform(old));
74
74
  }
75
75
 
76
76
  @Test
@@ -120,6 +120,6 @@ public class EtlTest {
120
120
  };
121
121
  expected = Collections.unmodifiableMap(expected);
122
122
 
123
- assertEquals(etl.transform(old), expected);
123
+ assertEquals(expected, etl.transform(old));
124
124
  }
125
125
  }
@@ -126,6 +126,15 @@
126
126
  "Queues",
127
127
  "Classes"
128
128
  ]
129
+ },
130
+ {
131
+ "slug": "saddle-points",
132
+ "difficulty": 4,
133
+ "topics": [
134
+ "Matrices",
135
+ "Arrays",
136
+ "Tuples"
137
+ ]
129
138
  }
130
139
  ],
131
140
  "ignored": [
@@ -0,0 +1,60 @@
1
+ program TestSaddlePoints;
2
+
3
+ {$IFNDEF TESTINSIGHT}
4
+ {$APPTYPE CONSOLE}
5
+ {$ENDIF}{$STRONGLINKTYPES ON}
6
+ uses
7
+ System.SysUtils,
8
+ {$IFDEF TESTINSIGHT}
9
+ TestInsight.DUnitX,
10
+ {$ENDIF }
11
+ DUnitX.Loggers.Console,
12
+ DUnitX.Loggers.Xml.NUnit,
13
+ DUnitX.TestFramework,
14
+ uSaddlePointsTests in 'uSaddlePointsTests.pas',
15
+ uSaddlePoints in 'uSaddlePoints.pas';
16
+
17
+ var
18
+ runner : ITestRunner;
19
+ results : IRunResults;
20
+ logger : ITestLogger;
21
+ nunitLogger : ITestLogger;
22
+ begin
23
+ {$IFDEF TESTINSIGHT}
24
+ TestInsight.DUnitX.RunRegisteredTests;
25
+ exit;
26
+ {$ENDIF}
27
+ try
28
+ //Check command line options, will exit if invalid
29
+ TDUnitX.CheckCommandLine;
30
+ //Create the test runner
31
+ runner := TDUnitX.CreateRunner;
32
+ //Tell the runner to use RTTI to find Fixtures
33
+ runner.UseRTTI := True;
34
+ //tell the runner how we will log things
35
+ //Log to the console window
36
+ logger := TDUnitXConsoleLogger.Create(true);
37
+ runner.AddLogger(logger);
38
+ //Generate an NUnit compatible XML File
39
+ nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
40
+ runner.AddLogger(nunitLogger);
41
+ runner.FailsOnNoAsserts := False; //When true, Assertions must be made during tests;
42
+
43
+ //Run tests
44
+ results := runner.Execute;
45
+ if not results.AllPassed then
46
+ System.ExitCode := EXIT_ERRORS;
47
+
48
+ {$IFNDEF CI}
49
+ //We don't want this happening when running under CI.
50
+ if TDUnitX.Options.ExitBehavior = TDUnitXExitBehavior.Pause then
51
+ begin
52
+ System.Write('Done.. press <Enter> key to quit.');
53
+ System.Readln;
54
+ end;
55
+ {$ENDIF}
56
+ except
57
+ on E: Exception do
58
+ System.Writeln(E.ClassName, ': ', E.Message);
59
+ end;
60
+ end.
@@ -0,0 +1,131 @@
1
+ unit uSaddlePoints;
2
+
3
+ interface
4
+ uses uSaddlePointsTests;
5
+
6
+ type
7
+ ISaddlePoints = interface(IInvokable)
8
+ ['{8C41B1A2-335D-4C6D-AF55-9F307F358227}']
9
+ function Calculate: TArray<TTuple<integer, integer>>;
10
+ function getStatus: string;
11
+ property ToString: string read getStatus;
12
+ end;
13
+
14
+ function newSaddlePoints(aValues: TArray<TArray<integer>>): ISaddlePoints;
15
+
16
+ implementation
17
+ uses SysUtils, Spring.Collections;
18
+
19
+ type
20
+ TSaddlePoints = class(TInterfacedObject, ISaddlePoints)
21
+ private
22
+ fValues: TArray<TArray<integer>>;
23
+ fmaxRows: TArray<integer>;
24
+ fminCols: TArray<integer>;
25
+ fStatus: string;
26
+ function getMaxRows: TArray<integer>;
27
+ function getMinColumns: TArray<integer>;
28
+ function Coordinates: IList<TTuple<integer, integer>>;
29
+ function ColumnCount: integer;
30
+ function RowCount: integer;
31
+ function IsSaddlePoint(const coordinate: TTuple<integer, integer>): boolean;
32
+ function getStatus: string;
33
+ public
34
+ constructor create(aValues: TArray<TArray<integer>>);
35
+ function Calculate: TArray<TTuple<integer, integer>>;
36
+ property ToString: string read getStatus;
37
+ end;
38
+
39
+ function newSaddlePoints(aValues: TArray<TArray<integer>>): ISaddlePoints;
40
+ begin
41
+ result := TSaddlePoints.create(aValues);
42
+ end;
43
+
44
+ constructor TSaddlePoints.create(aValues: TArray<TArray<Integer>>);
45
+ var I: integer;
46
+ J: integer;
47
+ begin
48
+ fValues := copy(aValues);
49
+ fmaxRows := getMaxRows;
50
+ fminCols := getMinColumns;
51
+ fStatus := 'Calculation not performed';
52
+ end;
53
+
54
+ function TSaddlePoints.getStatus: string;
55
+ begin
56
+ result := fStatus;
57
+ end;
58
+
59
+ function TSaddlePoints.getMaxRows: TArray<integer>;
60
+ var I: integer;
61
+ J: integer;
62
+ lRow: IList<integer>;
63
+ begin
64
+ lRow := TCollections.CreateList<integer>;
65
+ SetLength(result, RowCount);
66
+ for I := 0 to RowCount - 1 do
67
+ begin
68
+ for J := 0 to ColumnCount - 1 do
69
+ lRow.Add(fValues[I,J]);
70
+ result[I] := lRow.Max;
71
+ lRow.Clear;
72
+ end;
73
+ end;
74
+
75
+ function TSaddlePoints.getMinColumns: TArray<integer>;
76
+ var I: integer;
77
+ J: integer;
78
+ lColumn: IList<integer>;
79
+ begin
80
+ lColumn := TCollections.CreateList<integer>;
81
+ SetLength(result, ColumnCount);
82
+ for I := 0 to ColumnCount - 1 do
83
+ begin
84
+ for J := 0 to RowCount - 1 do
85
+ lColumn.Add(fValues[J,I]);
86
+ result[I] := lColumn.Min;
87
+ lColumn.Clear;
88
+ end;
89
+ end;
90
+
91
+ function TSaddlePoints.Coordinates: IList<TTuple<integer, integer>>;
92
+ var I, J: integer;
93
+ begin
94
+ result := TCollections.CreateList<TTuple<integer, integer>>;
95
+ for I := 0 to RowCount - 1 do
96
+ for J := 0 to ColumnCount - 1 do
97
+ result.Add(TTuple<integer, integer>.Create(I,J));
98
+ end;
99
+
100
+ function TSaddlePoints.Calculate: TArray<TTuple<integer, integer>>;
101
+ var lTuple: TTuple<integer, integer>;
102
+ begin
103
+ result := Coordinates.Where(IsSaddlePoint).ToArray;
104
+ if length(result) = 0 then
105
+ fStatus := 'No saddle points'
106
+ else
107
+ begin
108
+ fStatus := '';
109
+ for lTuple in result do
110
+ fStatus := fStatus + format('(%d,%d),',[lTuple.Value1, lTuple.Value2]);
111
+ fStatus := fStatus.Remove(fStatus.Length - 1);
112
+ end;
113
+ end;
114
+
115
+ function TSaddlePoints.ColumnCount: integer;
116
+ begin
117
+ result := length(fValues[1]);
118
+ end;
119
+
120
+ function TSaddlePoints.RowCount: integer;
121
+ begin
122
+ result := length(fValues);
123
+ end;
124
+
125
+ function TSaddlePoints.IsSaddlePoint(const coordinate: TTuple<integer, integer>): boolean;
126
+ begin
127
+ result := (fmaxRows[coordinate.Value1] = fValues[coordinate.Value1, coordinate.Value2]) and
128
+ (fminCols[coordinate.Value2] = fValues[coordinate.Value1, coordinate.Value2]);
129
+ end;
130
+
131
+ end.
@@ -0,0 +1,161 @@
1
+ unit uSaddlePointsTests;
2
+
3
+ interface
4
+ uses
5
+ DUnitX.TestFramework;
6
+
7
+ type
8
+
9
+ [TestFixture]
10
+ TSaddlePointTests = class(TObject)
11
+ public
12
+ [Test]
13
+ procedure Readme_example;
14
+
15
+ [Test]
16
+ [Ignore('Comment this line to run test')]
17
+ procedure No_saddle_point;
18
+
19
+ [Test]
20
+ [Ignore('Comment this line to run test')]
21
+ procedure Saddle_point;
22
+
23
+ [Test]
24
+ [Ignore('Comment this line to run test')]
25
+ procedure Another_saddle_point;
26
+
27
+ [Test]
28
+ [Ignore('Comment this line to run test')]
29
+ procedure Multiple_saddle_points;
30
+
31
+ [Test]
32
+ [Ignore('Comment this line to run test')]
33
+ procedure Five_by_five_matrix;
34
+ end;
35
+
36
+ TTuple<T1, T2> = record
37
+ private
38
+ fValue1: T1;
39
+ fValue2: T2;
40
+ public
41
+ constructor Create(Value1: T1; Value2: T2);
42
+ property Value1 : T1 read fValue1;
43
+ property Value2 : T2 read fValue2;
44
+ end;
45
+
46
+ implementation
47
+ uses uSaddlePoints;
48
+
49
+ constructor TTuple<T1, T2>.Create(Value1: T1; Value2: T2);
50
+ begin
51
+ fValue1 := Value1;
52
+ fValue2 := Value2;
53
+ end;
54
+
55
+
56
+ procedure TSaddlePointTests.Readme_example;
57
+ var SaddlePoints: ISaddlePoints;
58
+ values: TArray<TArray<integer>>;
59
+ expected: TArray<TTuple<integer,integer>>;
60
+ begin
61
+ SetLength(values, 3, 3);
62
+ values[0,0] := 9; values[0,1] := 8; values[0,2] := 7;
63
+ values[1,0] := 5; values[1,1] := 3; values[1,2] := 2;
64
+ values[2,0] := 6; values[2,1] := 6; values[2,2] := 7;
65
+
66
+ SaddlePoints := newSaddlePoints(values);
67
+
68
+ SetLength(expected, 1);
69
+ expected[0] := TTuple<integer,integer>.Create(1,0);
70
+ Assert.AreEqual(expected,SaddlePoints.Calculate);
71
+ end;
72
+
73
+ procedure TSaddlePointTests.No_saddle_point;
74
+ var SaddlePoints: ISaddlePoints;
75
+ values: TArray<TArray<integer>>;
76
+ expected: TArray<TTuple<integer,integer>>;
77
+ begin
78
+ SetLength(values, 2, 2);
79
+ values[0,0] := 2; values[0,1] := 1;
80
+ values[1,0] := 1; values[1,1] := 2;
81
+
82
+ SaddlePoints := newSaddlePoints(values);
83
+
84
+ SetLength(expected, 0);
85
+ Assert.AreEqual(expected,SaddlePoints.Calculate);
86
+ end;
87
+
88
+ procedure TSaddlePointTests.Saddle_point;
89
+ var SaddlePoints: ISaddlePoints;
90
+ values: TArray<TArray<integer>>;
91
+ expected: TArray<TTuple<integer,integer>>;
92
+ begin
93
+ SetLength(values, 2, 2);
94
+ values[0,0] := 1; values[0,1] := 2;
95
+ values[1,0] := 3; values[1,1] := 4;
96
+
97
+ SaddlePoints := newSaddlePoints(values);
98
+
99
+ SetLength(expected, 1);
100
+ expected[0] := TTuple<integer,integer>.Create(0,1);
101
+ Assert.AreEqual(expected,SaddlePoints.Calculate);
102
+ end;
103
+
104
+ procedure TSaddlePointTests.Another_saddle_point;
105
+ var SaddlePoints: ISaddlePoints;
106
+ values: TArray<TArray<integer>>;
107
+ expected: TArray<TTuple<integer,integer>>;
108
+ begin
109
+ SetLength(values, 3, 5);
110
+ values[0,0] := 18; values[0,1] := 3; values[0,2] := 39; values[0,3] := 19; values[0,4] := 91;
111
+ values[1,0] := 38; values[1,1] := 10; values[1,2] := 8; values[1,3] := 77; values[1,4] := 320;
112
+ values[2,0] := 3; values[2,1] := 4; values[2,2] := 8; values[2,3] := 6; values[2,4] := 7;
113
+
114
+ SaddlePoints := newSaddlePoints(values);
115
+
116
+ SetLength(expected, 1);
117
+ expected[0] := TTuple<integer,integer>.Create(2,2);
118
+ Assert.AreEqual(expected,SaddlePoints.Calculate);
119
+ end;
120
+
121
+ procedure TSaddlePointTests.Multiple_saddle_points;
122
+ var SaddlePoints: ISaddlePoints;
123
+ values: TArray<TArray<integer>>;
124
+ expected: TArray<TTuple<integer,integer>>;
125
+ begin
126
+ SetLength(values, 3, 3);
127
+ values[0,0] := 4; values[0,1] := 5; values[0,2] := 4;
128
+ values[1,0] := 3; values[1,1] := 5; values[1,2] := 5;
129
+ values[2,0] := 1; values[2,1] := 5; values[2,2] := 4;
130
+
131
+ SaddlePoints := newSaddlePoints(values);
132
+
133
+ SetLength(expected, 3);
134
+ expected[0] := TTuple<integer,integer>.Create(0,1);
135
+ expected[1] := TTuple<integer,integer>.Create(1,1);
136
+ expected[2] := TTuple<integer,integer>.Create(2,1);
137
+ Assert.AreEqual(expected,SaddlePoints.Calculate);
138
+ end;
139
+
140
+ procedure TSaddlePointTests.Five_by_five_matrix;
141
+ var SaddlePoints: ISaddlePoints;
142
+ values: TArray<TArray<integer>>;
143
+ expected: TArray<TTuple<integer,integer>>;
144
+ begin
145
+ SetLength(values, 5, 5);
146
+ values[0,0] := 34; values[0,1] := 21; values[0,2] := 61; values[0,3] := 41; values[0,4] := 25;
147
+ values[1,0] := 14; values[1,1] := 42; values[1,2] := 60; values[1,3] := 14; values[1,4] := 31;
148
+ values[2,0] := 54; values[2,1] := 45; values[2,2] := 55; values[2,3] := 42; values[2,4] := 23;
149
+ values[3,0] := 33; values[3,1] := 15; values[3,2] := 61; values[3,3] := 31; values[3,4] := 35;
150
+ values[4,0] := 21; values[4,1] := 52; values[4,2] := 63; values[4,3] := 13; values[4,4] := 23;
151
+
152
+ SaddlePoints := newSaddlePoints(values);
153
+
154
+ SetLength(expected, 1);
155
+ expected[0] := TTuple<integer,integer>.Create(2,2);
156
+ Assert.AreEqual(expected, SaddlePoints.Calculate);
157
+ end;
158
+
159
+ initialization
160
+ TDUnitX.RegisterTestFixture(TSaddlePointTests);
161
+ end.
Binary file
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.6.7
4
+ version: 2.0.6.8
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-01-09 00:00:00.000000000 Z
11
+ date: 2017-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -2654,7 +2654,6 @@ files:
2654
2654
  - tracks/go/.travis.yml
2655
2655
  - tracks/go/LICENSE
2656
2656
  - tracks/go/README.md
2657
- - tracks/go/SETUP.md
2658
2657
  - tracks/go/bin/fetch-configlet
2659
2658
  - tracks/go/bin/test-without-stubs
2660
2659
  - tracks/go/config.json
@@ -2663,6 +2662,7 @@ files:
2663
2662
  - tracks/go/docs/LEARNING.md
2664
2663
  - tracks/go/docs/RESOURCES.md
2665
2664
  - tracks/go/docs/TESTS.md
2665
+ - tracks/go/exercises/TRACK_HINTS.md
2666
2666
  - tracks/go/exercises/accumulate/accumulate_test.go
2667
2667
  - tracks/go/exercises/accumulate/example.go
2668
2668
  - tracks/go/exercises/acronym/acronym_test.go
@@ -5138,7 +5138,11 @@ files:
5138
5138
  - tracks/pascal/exercises/phone-number/PhoneNumberTests.dpr
5139
5139
  - tracks/pascal/exercises/phone-number/uPhoneNumberExample.pas
5140
5140
  - tracks/pascal/exercises/phone-number/uPhoneNumberTests.pas
5141
+ - tracks/pascal/exercises/saddle-points/TestSaddlePoints.dpr
5142
+ - tracks/pascal/exercises/saddle-points/uSaddlePointsExample.pas
5143
+ - tracks/pascal/exercises/saddle-points/uSaddlePointsTests.pas
5141
5144
  - tracks/pascal/img/.keep
5145
+ - tracks/pascal/img/Delphi-icon.png.keep
5142
5146
  - tracks/pascal/img/icon.png
5143
5147
  - tracks/perl5/.git
5144
5148
  - tracks/perl5/.gitignore