trackler 2.0.6.7 → 2.0.6.8

Sign up to get free protection for your applications and to get access to all the features.
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