trackler 2.0.5.13 → 2.0.5.14

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 (85) hide show
  1. checksums.yaml +4 -4
  2. data/common/.travis.yml +1 -0
  3. data/common/bin/check_required_files_present +55 -0
  4. data/lib/trackler/version.rb +1 -1
  5. data/tracks/pascal/exercises/Hello-World/TestHelloWorld.dpr +60 -0
  6. data/tracks/pascal/exercises/Hello-World/TestHelloWorld.dproj +176 -0
  7. data/tracks/pascal/exercises/Hello-World/uHelloWorldExample.pas +24 -0
  8. data/tracks/pascal/exercises/Hello-World/uTestHelloWorld.pas +65 -0
  9. data/tracks/pascal/exercises/allergies/AllergyTests.dpr +60 -0
  10. data/tracks/pascal/exercises/allergies/AllergyTests.dproj +176 -0
  11. data/tracks/pascal/exercises/allergies/uAllergiesExample.pas +67 -0
  12. data/tracks/pascal/exercises/allergies/uAllergyTests.pas +177 -0
  13. data/tracks/pascal/exercises/bank-account/BankAccountTests.dpr +60 -0
  14. data/tracks/pascal/exercises/bank-account/BankAccountTests.dproj +176 -0
  15. data/tracks/pascal/exercises/bank-account/uBankAccountExample.pas +96 -0
  16. data/tracks/pascal/exercises/bank-account/uBankAccountTests.pas +140 -0
  17. data/tracks/pascal/exercises/beer-song/BeerSongTests.dpr +60 -0
  18. data/tracks/pascal/exercises/beer-song/BeerSongTests.dproj +176 -0
  19. data/tracks/pascal/exercises/beer-song/uBeerSongExample.pas +45 -0
  20. data/tracks/pascal/exercises/beer-song/uBeerSongTests.pas +84 -0
  21. data/tracks/pascal/exercises/binary-search/BinarySearchTest.dpr +60 -0
  22. data/tracks/pascal/exercises/binary-search/BinarySearchTest.dproj +176 -0
  23. data/tracks/pascal/exercises/binary-search/uBinarySearchExample.pas +40 -0
  24. data/tracks/pascal/exercises/binary-search/uBinarySearchTest.pas +132 -0
  25. data/tracks/pascal/exercises/bob/BobTests.dpr +60 -0
  26. data/tracks/pascal/exercises/bob/BobTests.dproj +176 -0
  27. data/tracks/pascal/exercises/bob/uBobExample.pas +47 -0
  28. data/tracks/pascal/exercises/bob/uBobTests.pas +180 -0
  29. data/tracks/pascal/exercises/book-store/BookStoreTests.dpr +60 -0
  30. data/tracks/pascal/exercises/book-store/BookStoreTests.dproj +176 -0
  31. data/tracks/pascal/exercises/book-store/uBookStoreExample.pas +144 -0
  32. data/tracks/pascal/exercises/book-store/uBookStoreTests.pas +56 -0
  33. data/tracks/pascal/exercises/bowling/BowlingTests.dpr +60 -0
  34. data/tracks/pascal/exercises/bowling/BowlingTests.dproj +176 -0
  35. data/tracks/pascal/exercises/bowling/uBowlingExample.pas +105 -0
  36. data/tracks/pascal/exercises/bowling/uBowlingTests.pas +101 -0
  37. data/tracks/pascal/exercises/circular-buffer/CircularBufferTests.dpr +60 -0
  38. data/tracks/pascal/exercises/circular-buffer/CircularBufferTests.dproj +176 -0
  39. data/tracks/pascal/exercises/circular-buffer/uCircularBufferExample.pas +72 -0
  40. data/tracks/pascal/exercises/circular-buffer/uCircularBufferTests.pas +249 -0
  41. data/tracks/pascal/exercises/clock/ClockTest.dpr +60 -0
  42. data/tracks/pascal/exercises/clock/ClockTest.dproj +176 -0
  43. data/tracks/pascal/exercises/clock/uClockExample.pas +54 -0
  44. data/tracks/pascal/exercises/clock/uClockTest.pas +157 -0
  45. data/tracks/pascal/exercises/etl/ETLtests.dpr +60 -0
  46. data/tracks/pascal/exercises/etl/ETLtests.dproj +176 -0
  47. data/tracks/pascal/exercises/etl/uETLexample.pas +25 -0
  48. data/tracks/pascal/exercises/etl/uETLtests.pas +191 -0
  49. data/tracks/pascal/exercises/hamming/Hamming.dpr +60 -0
  50. data/tracks/pascal/exercises/hamming/Hamming.dproj +176 -0
  51. data/tracks/pascal/exercises/hamming/uHammingExample.pas +24 -0
  52. data/tracks/pascal/exercises/hamming/uHammingTests.pas +165 -0
  53. data/tracks/pascal/exercises/leap/LeapTest.dpr +60 -0
  54. data/tracks/pascal/exercises/leap/LeapTest.dproj +176 -0
  55. data/tracks/pascal/exercises/leap/uLeapExample.pas +17 -0
  56. data/tracks/pascal/exercises/leap/uLeapTests.pas +81 -0
  57. data/tracks/pascal/exercises/nucleotide-count/NucleotideCountTest.dpr +60 -0
  58. data/tracks/pascal/exercises/nucleotide-count/NucleotideCountTest.dproj +176 -0
  59. data/tracks/pascal/exercises/nucleotide-count/uNucleotideCountExample.pas +72 -0
  60. data/tracks/pascal/exercises/nucleotide-count/uNucleotideCountTest.pas +190 -0
  61. data/tracks/pascal/exercises/perfect-numbers/PerfectNumbersTest.dpr +60 -0
  62. data/tracks/pascal/exercises/perfect-numbers/PerfectNumbersTest.dproj +176 -0
  63. data/tracks/pascal/exercises/perfect-numbers/uPerfectNumbersExample.pas +34 -0
  64. data/tracks/pascal/exercises/perfect-numbers/uPerfectNumbersTest.pas +48 -0
  65. data/tracks/pascal/exercises/phone-number/PhoneNumberTests.dpr +60 -0
  66. data/tracks/pascal/exercises/phone-number/PhoneNumberTests.dproj +176 -0
  67. data/tracks/pascal/exercises/phone-number/uPhoneNumberExample.pas +102 -0
  68. data/tracks/pascal/exercises/phone-number/uPhoneNumberTests.pas +138 -0
  69. data/tracks/php/exercises/variable-length-quantity/variable-length-quantity_test.php +1 -1
  70. data/tracks/ruby/Gemfile +0 -1
  71. data/tracks/ruby/Makefile +2 -1
  72. data/tracks/ruby/Rakefile +3 -0
  73. data/tracks/ruby/exercises/simple-linked-list/.meta/.version +1 -0
  74. data/tracks/ruby/exercises/simple-linked-list/example.rb +39 -48
  75. data/tracks/ruby/exercises/simple-linked-list/simple_linked_list_test.rb +99 -125
  76. data/tracks/ruby/exercises/wordy/.meta/.version +1 -0
  77. data/tracks/ruby/exercises/wordy/example.rb +4 -0
  78. data/tracks/ruby/exercises/wordy/example.tt +17 -0
  79. data/tracks/ruby/exercises/wordy/wordy_test.rb +66 -35
  80. data/tracks/ruby/lib/wordy_cases.rb +67 -0
  81. data/tracks/ruby/test/wordy_cases_test.rb +102 -0
  82. data/tracks/scala/config.json +7 -1
  83. data/tracks/scala/exercises/connect/{README.md → HINTS.md} +1 -12
  84. data/tracks/scala/exercises/connect/build.sbt +2 -2
  85. metadata +73 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c3fb3f595ae75435478d8fbbef0c23e2162172ed
4
- data.tar.gz: 80fd34ca47be249684cb10419cc188010031190d
3
+ metadata.gz: ec7742a72a8b9cb40403f1fa21b731c45a0e949c
4
+ data.tar.gz: 659146e560273f0e3fc0e1c1830d46d63e4c6c53
5
5
  SHA512:
6
- metadata.gz: 7f4ad43839ccb8751ab5d572c1711a66d8bbfdcd9549494e88b03fb67bdb5305052cb81abcf4060f229b845995096153714e0ffa13d77d19410f0fd5cd90cd6c
7
- data.tar.gz: 35db17c7480a108dfc9599364d9092ab8da5ba8dac0d1c010d9ee4f5dcb2fa7b576431b0890912fed0567d24a49bd904b83a0261f66fcfe8ed9c76abad5b92bc
6
+ metadata.gz: 8209ff1442ff1dd4a05810ca4d608e3bcc16e121e628d7dfde8611b6baf0239da3e031062c4ecdd263d4a142a993686e42161f650db166b7a8497c1a3ceeb442
7
+ data.tar.gz: 20053304e9f4973b491bc7cc7ee2dcb1a671699dedbab5dbcd232c7ba83f2efcc3e1269fa3de6cd7b7c3617b37cbb8d73338ebebd70ed64e199ccfd5ab58d811
@@ -9,3 +9,4 @@ addons:
9
9
 
10
10
  script:
11
11
  - bin/jsonlint
12
+ - bin/check_required_files_present
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env bash
2
+ MISSING_FILES=0
3
+ SHOW_PROGRESS='false'
4
+
5
+ if [ ! -d exercises ] ; then
6
+ echo "\"exercises\" directory not found, make sure you're running from the repository root" >&2
7
+ exit 1
8
+ fi
9
+
10
+ function show_progress {
11
+ if [ $SHOW_PROGRESS == 'true' ]; then
12
+ echo -n '.'
13
+ fi
14
+ }
15
+
16
+ function require_file {
17
+ filename=$1
18
+ if [ ! -f $filename ]; then
19
+ echo "required file missing: $filename" >&2
20
+ let "MISSING_FILES+=1"
21
+ fi
22
+ }
23
+
24
+ function check_directory {
25
+ directory=$1
26
+ for exercise_directory in $directory/* ; do
27
+ show_progress
28
+ require_file "$exercise_directory/description.md"
29
+ require_file "$exercise_directory/metadata.yml"
30
+ done
31
+
32
+ }
33
+
34
+ while :
35
+ do
36
+ case "$1" in
37
+ -p | --progress)
38
+ SHOW_PROGRESS="true"
39
+ shift 1
40
+ ;;
41
+ *)
42
+ check_directory 'exercises'
43
+ if [ $SHOW_PROGRESS == 'true' ]; then
44
+ echo
45
+ echo Done: $MISSING_FILES files missing.
46
+ fi
47
+ if (( $MISSING_FILES > 0 )); then
48
+ exit 1
49
+ else
50
+ exit 0
51
+ fi
52
+ ;;
53
+ esac
54
+ done
55
+
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.0.5.13"
2
+ VERSION = "2.0.5.14"
3
3
  end
@@ -0,0 +1,60 @@
1
+ program TestHelloWorld;
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
+ uTestHelloWorld in 'uTestHelloWorld.pas',
15
+ uHelloWorld in 'uHelloWorld.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,176 @@
1
+ <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2
+ <PropertyGroup>
3
+ <ProjectGuid>{1ED07C8D-2746-43A7-B0C3-02DA65C986A6}</ProjectGuid>
4
+ <ProjectVersion>15.3</ProjectVersion>
5
+ <FrameworkType>None</FrameworkType>
6
+ <MainSource>TestHelloWorld.dpr</MainSource>
7
+ <Base>True</Base>
8
+ <Config Condition="'$(Config)'==''">Debug</Config>
9
+ <Platform Condition="'$(Platform)'==''">Win32</Platform>
10
+ <TargetedPlatforms>1</TargetedPlatforms>
11
+ <AppType>Console</AppType>
12
+ </PropertyGroup>
13
+ <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
14
+ <Base>true</Base>
15
+ </PropertyGroup>
16
+ <PropertyGroup Condition="('$(Platform)'=='OSX32' and '$(Base)'=='true') or '$(Base_OSX32)'!=''">
17
+ <Base_OSX32>true</Base_OSX32>
18
+ <CfgParent>Base</CfgParent>
19
+ <Base>true</Base>
20
+ </PropertyGroup>
21
+ <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
22
+ <Base_Win32>true</Base_Win32>
23
+ <CfgParent>Base</CfgParent>
24
+ <Base>true</Base>
25
+ </PropertyGroup>
26
+ <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
27
+ <Base_Win64>true</Base_Win64>
28
+ <CfgParent>Base</CfgParent>
29
+ <Base>true</Base>
30
+ </PropertyGroup>
31
+ <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
32
+ <Cfg_1>true</Cfg_1>
33
+ <CfgParent>Base</CfgParent>
34
+ <Base>true</Base>
35
+ </PropertyGroup>
36
+ <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
37
+ <Cfg_1_Win32>true</Cfg_1_Win32>
38
+ <CfgParent>Cfg_1</CfgParent>
39
+ <Cfg_1>true</Cfg_1>
40
+ <Base>true</Base>
41
+ </PropertyGroup>
42
+ <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
43
+ <Cfg_2>true</Cfg_2>
44
+ <CfgParent>Base</CfgParent>
45
+ <Base>true</Base>
46
+ </PropertyGroup>
47
+ <PropertyGroup Condition="'$(Base)'!=''">
48
+ <DCC_UnitSearchPath>$(DUnitX);$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
49
+ <Icns_MainIcns>$(BDS)\bin\delphi_PROJECTICNS.icns</Icns_MainIcns>
50
+ <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
51
+ <DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
52
+ <DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
53
+ <DCC_E>false</DCC_E>
54
+ <DCC_N>false</DCC_N>
55
+ <DCC_S>false</DCC_S>
56
+ <DCC_F>false</DCC_F>
57
+ <DCC_K>false</DCC_K>
58
+ </PropertyGroup>
59
+ <PropertyGroup Condition="'$(Base_OSX32)'!=''">
60
+ <DCC_UsePackage>FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;FireDACPgDriver;FireDACODBCDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;DBXInterBaseDriver;DataSnapCommon;xmlrtl;ibxpress;DbxCommonDriver;IndyProtocols;dbxcds;DBXMySQLDriver;FireDACCommonDriver;soaprtl;bindengine;bindcompdbx;FMXTee;fmxFireDAC;FireDACADSDriver;CustomIPTransport;FireDAC;dsnap;IndyIPServer;fmxase;IndyCore;IndyIPCommon;CloudService;FireDACIBDriver;FmxTeeUI;inet;fmxobj;FireDACMySQLDriver;inetdbxpress;fmxdae;RESTComponents;FireDACMSAccDriver;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
61
+ </PropertyGroup>
62
+ <PropertyGroup Condition="'$(Base_Win32)'!=''">
63
+ <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
64
+ <DCC_UsePackage>frxDB19;L208_r140;FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;AbbreviaVCL;vcldbx;FireDACPgDriver;FireDACODBCDriver;S404_r;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;TeeDB;frx19;vclib;inetdbbde;DBXInterBaseDriver;Tee;DataSnapCommon;vclFireDAC;Rave110VCL;xmlrtl;svnui;ibxpress;DbxCommonDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;FireDACCommonDriver;MetropolisUILiveTile;O408_r;soaprtl;bindengine;vclactnband;vcldb;bindcompdbx;vcldsnap;bindcompvcl;FMXTee;TeeUI;AsyncPro;vclie;XMLPartner_PR;fmxFireDAC;FireDACADSDriver;vcltouch;CustomIPTransport;G114_R140;vclribbon;VclSmp;FireDAC;dsnap;IndyIPServer;Intraweb;fmxase;vcl;IndyCore;VCLRESTComponents;OmniThreadLibraryRuntimeXE5;IndyIPCommon;CloudService;CodeSiteExpressPkg;dsnapcon;FireDACIBDriver;FmxTeeUI;inet;fmxobj;E111_R120;FireDACMySQLDriver;vclx;inetdbxpress;svn;fmxdae;frxe19;RESTComponents;bdertl;FireDACMSAccDriver;adortl;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
65
+ <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
66
+ <VerInfo_Locale>1033</VerInfo_Locale>
67
+ </PropertyGroup>
68
+ <PropertyGroup Condition="'$(Base_Win64)'!=''">
69
+ <DCC_UsePackage>FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;AbbreviaVCL;FireDACPgDriver;FireDACODBCDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;TeeDB;vclib;DBXInterBaseDriver;Tee;DataSnapCommon;vclFireDAC;xmlrtl;ibxpress;DbxCommonDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;FireDACCommonDriver;MetropolisUILiveTile;O408_r;soaprtl;bindengine;vclactnband;vcldb;bindcompdbx;vcldsnap;bindcompvcl;FMXTee;TeeUI;vclie;fmxFireDAC;FireDACADSDriver;vcltouch;CustomIPTransport;vclribbon;VclSmp;FireDAC;dsnap;IndyIPServer;Intraweb;fmxase;vcl;IndyCore;VCLRESTComponents;IndyIPCommon;CloudService;dsnapcon;FireDACIBDriver;FmxTeeUI;inet;fmxobj;FireDACMySQLDriver;vclx;inetdbxpress;fmxdae;RESTComponents;FireDACMSAccDriver;adortl;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
70
+ </PropertyGroup>
71
+ <PropertyGroup Condition="'$(Cfg_1)'!=''">
72
+ <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
73
+ <DCC_DebugDCUs>true</DCC_DebugDCUs>
74
+ <DCC_Optimize>false</DCC_Optimize>
75
+ <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
76
+ <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
77
+ <DCC_RemoteDebug>true</DCC_RemoteDebug>
78
+ </PropertyGroup>
79
+ <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
80
+ <DCC_RemoteDebug>false</DCC_RemoteDebug>
81
+ </PropertyGroup>
82
+ <PropertyGroup Condition="'$(Cfg_2)'!=''">
83
+ <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
84
+ <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
85
+ <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
86
+ <DCC_DebugInformation>0</DCC_DebugInformation>
87
+ </PropertyGroup>
88
+ <ItemGroup>
89
+ <DelphiCompile Include="$(MainSource)">
90
+ <MainSource>MainSource</MainSource>
91
+ </DelphiCompile>
92
+ <DCCReference Include="uTestHelloWorld.pas"/>
93
+ <DCCReference Include="uHelloWorld.pas"/>
94
+ <BuildConfiguration Include="Release">
95
+ <Key>Cfg_2</Key>
96
+ <CfgParent>Base</CfgParent>
97
+ </BuildConfiguration>
98
+ <BuildConfiguration Include="Base">
99
+ <Key>Base</Key>
100
+ </BuildConfiguration>
101
+ <BuildConfiguration Include="Debug">
102
+ <Key>Cfg_1</Key>
103
+ <CfgParent>Base</CfgParent>
104
+ </BuildConfiguration>
105
+ </ItemGroup>
106
+ <ProjectExtensions>
107
+ <Borland.Personality>Delphi.Personality.12</Borland.Personality>
108
+ <Borland.ProjectType/>
109
+ <BorlandProject>
110
+ <Delphi.Personality>
111
+ <VersionInfo>
112
+ <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
113
+ <VersionInfo Name="AutoIncBuild">False</VersionInfo>
114
+ <VersionInfo Name="MajorVer">1</VersionInfo>
115
+ <VersionInfo Name="MinorVer">0</VersionInfo>
116
+ <VersionInfo Name="Release">0</VersionInfo>
117
+ <VersionInfo Name="Build">0</VersionInfo>
118
+ <VersionInfo Name="Debug">False</VersionInfo>
119
+ <VersionInfo Name="PreRelease">False</VersionInfo>
120
+ <VersionInfo Name="Special">False</VersionInfo>
121
+ <VersionInfo Name="Private">False</VersionInfo>
122
+ <VersionInfo Name="DLL">False</VersionInfo>
123
+ <VersionInfo Name="Locale">1033</VersionInfo>
124
+ <VersionInfo Name="CodePage">1252</VersionInfo>
125
+ </VersionInfo>
126
+ <VersionInfoKeys>
127
+ <VersionInfoKeys Name="CompanyName"/>
128
+ <VersionInfoKeys Name="FileDescription"/>
129
+ <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
130
+ <VersionInfoKeys Name="InternalName"/>
131
+ <VersionInfoKeys Name="LegalCopyright"/>
132
+ <VersionInfoKeys Name="LegalTrademarks"/>
133
+ <VersionInfoKeys Name="OriginalFilename"/>
134
+ <VersionInfoKeys Name="ProductName"/>
135
+ <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
136
+ <VersionInfoKeys Name="Comments"/>
137
+ <VersionInfoKeys Name="CFBundleName"/>
138
+ <VersionInfoKeys Name="CFBundleDisplayName"/>
139
+ <VersionInfoKeys Name="UIDeviceFamily"/>
140
+ <VersionInfoKeys Name="CFBundleIdentifier"/>
141
+ <VersionInfoKeys Name="CFBundleVersion"/>
142
+ <VersionInfoKeys Name="CFBundlePackageType"/>
143
+ <VersionInfoKeys Name="CFBundleSignature"/>
144
+ <VersionInfoKeys Name="CFBundleAllowMixedLocalizations"/>
145
+ <VersionInfoKeys Name="UISupportedInterfaceOrientations"/>
146
+ <VersionInfoKeys Name="CFBundleExecutable"/>
147
+ <VersionInfoKeys Name="CFBundleResourceSpecification"/>
148
+ <VersionInfoKeys Name="LSRequiresIPhoneOS"/>
149
+ <VersionInfoKeys Name="CFBundleInfoDictionaryVersion"/>
150
+ <VersionInfoKeys Name="CFBundleDevelopmentRegion"/>
151
+ <VersionInfoKeys Name="package"/>
152
+ <VersionInfoKeys Name="label"/>
153
+ <VersionInfoKeys Name="versionCode"/>
154
+ <VersionInfoKeys Name="versionName"/>
155
+ <VersionInfoKeys Name="persistent"/>
156
+ <VersionInfoKeys Name="restoreAnyVersion"/>
157
+ <VersionInfoKeys Name="installLocation"/>
158
+ <VersionInfoKeys Name="largeHeap"/>
159
+ <VersionInfoKeys Name="theme"/>
160
+ </VersionInfoKeys>
161
+ <Source>
162
+ <Source Name="MainSource">TestHelloWorld.dpr</Source>
163
+ </Source>
164
+ </Delphi.Personality>
165
+ <Deployment/>
166
+ <Platforms>
167
+ <Platform value="OSX32">False</Platform>
168
+ <Platform value="Win32">True</Platform>
169
+ <Platform value="Win64">False</Platform>
170
+ </Platforms>
171
+ </BorlandProject>
172
+ <ProjectFileVersion>12</ProjectFileVersion>
173
+ </ProjectExtensions>
174
+ <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
175
+ <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
176
+ </Project>
@@ -0,0 +1,24 @@
1
+ //========================================================
2
+ // Example solution to exercise.
3
+ //
4
+ // A simple hello function would suffice, however this
5
+ // solution is mimicking the Ruby hello-world exercise
6
+ //========================================================
7
+ unit uHelloWorld;
8
+
9
+ interface
10
+
11
+ type
12
+ THelloWorld = class
13
+ public
14
+ class function hello(name: string='World'): string; static;
15
+ end;
16
+
17
+ implementation
18
+
19
+ class function THelloWorld.hello(name: string='World'): string;
20
+ begin
21
+ result := 'Hello, ' + name + '!';
22
+ end;
23
+
24
+ end.
@@ -0,0 +1,65 @@
1
+ unit uTestHelloWorld;
2
+
3
+ interface
4
+ uses
5
+ DUnitX.TestFramework;
6
+
7
+ type
8
+ [TestFixture]
9
+ HelloWorldTest = class(TObject)
10
+ public
11
+ [Test]
12
+ // [Ignore]
13
+ procedure test_no_name;
14
+ [Test]
15
+ // [Ignore]
16
+ procedure test_sample_name;
17
+ [Test]
18
+ // [Ignore]
19
+ procedure test_other_sample_name;
20
+ end;
21
+
22
+ implementation
23
+ uses uHelloWorld;
24
+
25
+ procedure HelloWorldTest.test_no_name;
26
+ begin
27
+ assert.AreEqual('Hello, World!', THelloWorld.hello);
28
+ end;
29
+
30
+ procedure HelloWorldTest.test_sample_name;
31
+ begin
32
+ assert.AreEqual('Hello, Alice!',THelloWorld.hello('Alice'));
33
+ end;
34
+
35
+ procedure HelloWorldTest.test_other_sample_name;
36
+ begin
37
+ assert.AreEqual('Hello, Bob!', THelloWorld.hello('Bob'));
38
+ end;
39
+
40
+ initialization
41
+ TDUnitX.RegisterTestFixture(HelloWorldTest);
42
+ end.
43
+
44
+ (*
45
+ *****************************************************
46
+ You got an error, which is exactly as it should be.
47
+ This is the first step in the Test-Driven Development
48
+ (TDD) process.
49
+
50
+ The most important part of the error is
51
+
52
+ "cannot compile"
53
+
54
+ It's looking for a file named uHelloWorld.pas that doesn't
55
+ exist yet.
56
+
57
+ To fix the error, create an empty file named uHelloWorld.pas
58
+ in the same directory as the uTestHelloWorld.pas file.
59
+
60
+ Then run the test again.
61
+
62
+ For more guidance as you work on this exercise, see
63
+ GETTING_STARTED.md.
64
+ *****************************************************
65
+ *)
@@ -0,0 +1,60 @@
1
+ program AllergyTests;
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
+ uAllergyTests in 'uAllergyTests.pas',
15
+ uAllergies in 'uAllergies.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.