diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb index 90a9f182aaec69ef17dfad73bc48f7dfe439c486..dde47c8190239717692b5e9a747dbd7fcdb90db0 100644 --- a/VECTO/Input Files/Vehicle.vb +++ b/VECTO/Input Files/Vehicle.vb @@ -112,7 +112,7 @@ Public Class Vehicle Dim segment As Segment = DeclarationData.Segments.Lookup(vehicle.VehicleCategory, vehicle.AxleConfiguration, vehicle.GrossVehicleMassRating, vehicle.CurbMassChassis, false) vehicleData = doa.CreateVehicleData(vehicle, segment.Missions.First(), - segment.Missions.First().Loadings.First().Value) + segment.Missions.First().Loadings.First().Value, true) airdragData = doa.CreateAirdragData(vehicle, segment.Missions.First(), segment) retarderData = doa.CreateRetarderData(vehicle) angledriveData = doa.CreateAngledriveData(vehicle) diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs index 098b5d1e511a1c205ee0f9f451b71860c4147928..addf852baa6a28db2dceb8f3190acf07d52f3761 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs @@ -79,18 +79,18 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter return retVal; } - internal VehicleData CreateVehicleData(IVehicleDeclarationInputData data, Mission mission, Kilogram loading) + internal VehicleData CreateVehicleData(IVehicleDeclarationInputData data, Mission mission, Kilogram loading, bool allowVocational) { if (!data.SavedInDeclarationMode) { WarnDeclarationMode("VehicleData"); } return data.ExemptedVehicle ? CreateExemptedVehicleData(data) - : CreateNonExemptedVehicleData(data, mission, loading); + : CreateNonExemptedVehicleData(data, mission, loading, allowVocational); } private VehicleData CreateNonExemptedVehicleData( - IVehicleDeclarationInputData data, Mission mission, Kilogram loading) + IVehicleDeclarationInputData data, Mission mission, Kilogram loading, bool allowVocational) { var retVal = SetCommonVehicleData(data); retVal.AxleConfiguration = data.AxleConfiguration; @@ -111,7 +111,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter .Average(); retVal.CargoVolume = mission.MissionType != MissionType.Construction ? mission.TotalCargoVolume : 0.SI<CubicMeter>(); - retVal.VocationalVehicle = data.VocationalVehicle; + retVal.VocationalVehicle = allowVocational && data.VocationalVehicle; retVal.ADAS = CreateADAS(data.ADAS); var axles = data.Components.AxleWheels.AxlesDeclaration; diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs index 041f8e37e0f3aef2f7f65ae5d3f59b054c279273..eba281e270f221d52660d8d17a374bb018339e69 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs @@ -59,6 +59,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl protected IDeclarationReport Report; private DeclarationDataAdapter _dao; private Segment _segment; + private bool allowVocational; private DriverData _driverdata; private AirdragData _airdragData; private CombustionEngineData _engineData; @@ -74,7 +75,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { InputDataProvider = dataProvider; Report = report; - + allowVocational = true; try { Initialize(); if (Report != null) { @@ -92,11 +93,23 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl if (vehicle.ExemptedVehicle) { return; } - _segment = GetVehicleClassification(vehicle.VehicleCategory, - vehicle.AxleConfiguration, - vehicle.GrossVehicleMassRating, - vehicle.CurbMassChassis, - vehicle.VocationalVehicle); + + try { + _segment = GetVehicleClassification( + vehicle.VehicleCategory, + vehicle.AxleConfiguration, + vehicle.GrossVehicleMassRating, + vehicle.CurbMassChassis, + vehicle.VocationalVehicle); + } catch (VectoException) { + allowVocational = false; + _segment = GetVehicleClassification( + vehicle.VehicleCategory, + vehicle.AxleConfiguration, + vehicle.GrossVehicleMassRating, + vehicle.CurbMassChassis, + false); + } if (!_segment.Found) { throw new VectoException( "no segment found for vehicle configruation: vehicle category: {0}, axle configuration: {1}, GVMR: {2}", @@ -106,7 +119,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl _driverdata = _dao.CreateDriverData(); _driverdata.AccelerationCurve = AccelerationCurveReader.ReadFromStream(_segment.AccelerationFile); var tempVehicle = _dao.CreateVehicleData(vehicle, _segment.Missions.First(), - _segment.Missions.First().Loadings.First().Value); + _segment.Missions.First().Loadings.First().Value, allowVocational); _airdragData = _dao.CreateAirdragData(vehicle.Components.AirdragInputData, _segment.Missions.First(), _segment); _engineData = _dao.CreateEngineData(vehicle.Components.EngineInputData, @@ -130,7 +143,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl if (InputDataProvider.JobInputData.Vehicle.ExemptedVehicle) { powertrainConfig = new VectoRunData() { Exempted = true, - VehicleData = _dao.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, null, null), + VehicleData = _dao.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, null, null, allowVocational), InputDataHash = InputDataProvider.XMLHash }; } else { @@ -138,7 +151,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl VehicleData = _dao.CreateVehicleData( InputDataProvider.JobInputData.Vehicle, _segment.Missions.First(), - _segment.Missions.First().Loadings.First().Value), + _segment.Missions.First().Loadings.First().Value, allowVocational), AirdragData = _airdragData, EngineData = _engineData, GearboxData = _gearboxData, @@ -168,7 +181,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl Exempted = true, Report = Report, Mission = new Mission() { MissionType = MissionType.ExemptedMission}, - VehicleData = _dao.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, null, null), + VehicleData = _dao.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, null, null, allowVocational), InputDataHash = InputDataProvider.XMLHash }; } else { @@ -201,7 +214,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl var simulationRunData = new VectoRunData { Loading = loading.Key, VehicleDesignSpeed = _segment.DesignSpeed, - VehicleData = _dao.CreateVehicleData(vehicle, mission, loading.Value), + VehicleData = _dao.CreateVehicleData(vehicle, mission, loading.Value, allowVocational), AirdragData = _dao.CreateAirdragData(vehicle.Components.AirdragInputData, mission, _segment), EngineData = _engineData.Copy(), // a copy is necessary because every run has a different correction factor! GearboxData = _gearboxData, diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs index b89cbc6dc7c188fdd546e048f542d9b9505972b6..5f812b4ddead01e1d581a3cc9d3666ae4db08784 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs @@ -59,6 +59,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl protected PTOData PTOTransmissionData; protected List<VectoRunData.AuxData> AuxVTP; protected Segment Segment; + protected bool allowVocational; protected DeclarationDataAdapter Dao; protected Exception InitException; @@ -71,6 +72,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { JobInputData = job; Report = report; + allowVocational = true; try { Initialize(); if (Report != null) { @@ -87,7 +89,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl VehicleData = Dao.CreateVehicleData( JobInputData.Vehicle, Segment.Missions.First(), - Segment.Missions.First().Loadings.First().Value), + Segment.Missions.First().Loadings.First().Value, allowVocational), AirdragData = AirdragData, EngineData = EngineData, GearboxData = GearboxData, @@ -111,17 +113,27 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl { Dao = new DeclarationDataAdapter(); var vehicle = JobInputData.Vehicle; - Segment = DeclarationData.Segments.Lookup( - vehicle.VehicleCategory, - vehicle.AxleConfiguration, - vehicle.GrossVehicleMassRating, - vehicle.CurbMassChassis, - vehicle.VocationalVehicle); + try { + Segment = DeclarationData.Segments.Lookup( + vehicle.VehicleCategory, + vehicle.AxleConfiguration, + vehicle.GrossVehicleMassRating, + vehicle.CurbMassChassis, + vehicle.VocationalVehicle); + } catch (VectoException) { + allowVocational = false; + Segment = DeclarationData.Segments.Lookup( + vehicle.VehicleCategory, + vehicle.AxleConfiguration, + vehicle.GrossVehicleMassRating, + vehicle.CurbMassChassis, + false); + } Driverdata = Dao.CreateDriverData(); Driverdata.AccelerationCurve = AccelerationCurveReader.ReadFromStream(Segment.AccelerationFile); var tempVehicle = Dao.CreateVehicleData( vehicle, Segment.Missions.First(), - Segment.Missions.First().Loadings.First().Value); + Segment.Missions.First().Loadings.First().Value, allowVocational); AirdragData = Dao.CreateAirdragData( vehicle.Components.AirdragInputData, Segment.Missions.First(), Segment); @@ -226,7 +238,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl AngledriveData = AngledriveData, VehicleData = Dao.CreateVehicleData( JobInputData.Vehicle, mission, - loading), + loading, allowVocational), AirdragData = AirdragData, DriverData = null, AdvancedAux = null, diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/DeclarationAdapterCreateVocationalVehicleTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/DeclarationAdapterCreateVocationalVehicleTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..d92baf5baa086683727dbca381366e4524c74bf2 --- /dev/null +++ b/VectoCore/VectoCoreTest/Models/Declaration/DataAdapter/DeclarationAdapterCreateVocationalVehicleTest.cs @@ -0,0 +1,82 @@ +using System.IO; +using System.Linq; +using System.Xml; +using System.Xml.XPath; +using Ninject; +using NUnit.Framework; +using NUnit.Framework.Internal; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Configuration; +using TUGraz.VectoCore.InputData.FileIO.XML; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.OutputData; +using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.OutputData.XML; +using TUGraz.VectoCore.Utils; + +namespace TUGraz.VectoCore.Tests.Models.Declaration.DataAdapter +{ + [TestFixture()] + public class DeclarationAdapterCreateVocationalVehicleTest + { + protected IXMLInputDataReader xmlInputReader; + private IKernel _kernel; + + [OneTimeSetUp] + public void RunBeforeAnyTests() + { + Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + + _kernel = new StandardKernel(new VectoNinjectModule()); + xmlInputReader = _kernel.Get<IXMLInputDataReader>(); + } + + [TestCase(@"Rigid Truck_4x2_vehicle-class-1_EURO6_2018.xml"), + TestCase(@"Rigid Truck_4x2_vehicle-class-2_EURO6_2018.xml"), + TestCase(@"Rigid Truck_4x2_vehicle-class-3_EURO6_2018.xml"), + TestCase(@"Rigid Truck_6x4_vehicle-class-11_EURO6_2018.xml"), + TestCase(@"Rigid Truck_8x4_vehicle-class-16_EURO6_2018.xml"), + TestCase(@"Tractor_6x4_vehicle-class-12_EURO6_2018.xml"), + + ] + public void TestCreateDeclarationVocationalVehicle(string jobfile) + { + var reader = XmlReader.Create(Path.Combine(@"TestData/XML/XMLReaderDeclaration/GroupTest", jobfile)); + + var doc = new XmlDocument(); + doc.Load(reader); + var nav = doc.CreateNavigator(); + var manager = new XmlNamespaceManager(nav.NameTable); + var helper = new XPathHelper(ExecutionMode.Declaration); + helper.AddNamespaces(manager); + + var vocational = nav.SelectSingleNode(XMLHelper.QueryLocalName(XMLNames.Component_Vehicle, XMLNames.Vehicle_VocationalVehicle)); + vocational.SetValue(true.ToString().ToLower()); + var modified = XmlReader.Create(new StringReader(nav.OuterXml)); + + var dataProvider = xmlInputReader.CreateDeclaration(modified); + + var xmlReport = new XMLDeclarationReport(); + var sumData = new SummaryDataContainer(null); + var jobContainer = new JobContainer(sumData); + + var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, null, xmlReport) { + WriteModalResults = false, + Validate = false, + }; + jobContainer.AddRuns(runsFactory); + + // no need to run the simulation, we only check whether the meta-data is correct, no results are considered + //jobContainer.Execute(); + //jobContainer.WaitFinished(); + xmlReport.DoWriteReport(); + + var manufacturerReport = xmlReport.FullReport; + + Assert.IsFalse(XmlConvert.ToBoolean(manufacturerReport.XPathSelectElement(XMLHelper.QueryLocalName(XMLNames.Vehicle_VocationalVehicle))?.Value ?? "")); + } + } +} diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs index 73ee6dfb09fcd741b13630e662597bfcf7b8c602..f05a4a2d23d72cffbcaf00db301fab2885ebd5c4 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs @@ -590,46 +590,56 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 7500.01, 0, false, VehicleClass.Class1), TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 10000, 0, false, VehicleClass.Class1), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 10000, 0, false, VehicleClass.Class1), + TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 10001, 0, false, VehicleClass.Class2), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 10001, 0, false, VehicleClass.Class2), TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 12000, 0, false, VehicleClass.Class2), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 12000, 0, false, VehicleClass.Class2), + TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 12001, 0, false, VehicleClass.Class3), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 12001, 0, false, VehicleClass.Class3), TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 16000, 0, false, VehicleClass.Class3), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 16000, 0, false, VehicleClass.Class3), + TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 16001, 0, false, VehicleClass.Class4), TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 99000, 0, false, VehicleClass.Class4), TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 16001, 0, true, VehicleClass.Class4), TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x2, 99000, 0, true, VehicleClass.Class4), + TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 16001, 0, false, VehicleClass.Class5), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 99000, 0, false, VehicleClass.Class5), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 16001, 0, true, VehicleClass.Class5), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x2, 99000, 0, true, VehicleClass.Class5), + //TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x4, 7500, 0, VehicleClass.Class6), //TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x4, 16000, 0, VehicleClass.Class6), //TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x4, 16001, 0, VehicleClass.Class7), //TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_4x4, 99000, 0, VehicleClass.Class7), //TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x4, 16000, 0, VehicleClass.Class8), //TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_4x4, 99000, 0, VehicleClass.Class8), + TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x2, 7500, 0, false, VehicleClass.Class9), TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x2, 16000, 0, false, VehicleClass.Class9), TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x2, 40000, 0, false, VehicleClass.Class9), TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x2, 99000, 0, false, VehicleClass.Class9), TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x2, 7500, 0, true, VehicleClass.Class9), TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x2, 99000, 0, true, VehicleClass.Class9), + TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x2, 7500, 0, false, VehicleClass.Class10), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x2, 16000, 0, false, VehicleClass.Class10), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x2, 40000, 0, false, VehicleClass.Class10), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x2, 99000, 0, false, VehicleClass.Class10), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x2, 7500, 0, true, VehicleClass.Class10), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x2, 99000, 0, true, VehicleClass.Class10), + TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x4, 7500, 0, false, VehicleClass.Class11), TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_6x4, 40000, 0, false, VehicleClass.Class11), + TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x4, 7500, 0, false, VehicleClass.Class12), TestCase(VehicleCategory.Tractor, AxleConfiguration.AxleConfig_6x4, 99000, 0, false, VehicleClass.Class12), + TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_8x4, 7500, 0, false, VehicleClass.Class16), - TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_8x4, 99000, 0, false, VehicleClass.Class16) + TestCase(VehicleCategory.RigidTruck, AxleConfiguration.AxleConfig_8x4, 99000, 0, false, VehicleClass.Class16), ] public void SegmentLookupTest(VehicleCategory category, AxleConfiguration axleConfiguration, double grossWeight, double curbWeight, bool vocational, VehicleClass expectedClass) diff --git a/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs index 15407f73662ef2c8d33d2f13ee5a74c0ad024e6f..390ea45158c37115efdc708d1a68a1765e5e576c 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs @@ -879,7 +879,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration var segment = DeclarationData.Segments.Lookup( vehicle.VehicleCategory, vehicle.AxleConfiguration, vehicle.GrossVehicleMassRating, vehicle.CurbMassChassis, false); - var vehicleData = dao.CreateVehicleData(inputData.JobInputData.Vehicle, segment.Missions.First(), 0.SI<Kilogram>()); + var vehicleData = dao.CreateVehicleData(inputData.JobInputData.Vehicle, segment.Missions.First(), 0.SI<Kilogram>(), true); var rdyn = vehicleData.DynamicTyreRadius; var shiftPolygons = new List<ShiftPolygon>(); diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index d3029b8ae1dbd163c14bfc57e1153bc6f12099ac..e42c9e0937d7ec2a8c4882ca57f016f8a8b0b3df 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -117,6 +117,7 @@ <Compile Include="Integration\TorqueLimitsTest.cs" /> <Compile Include="Integration\XMLReportTest.cs" /> <Compile Include="Models\Declaration\AirdragDefaultValuesTest.cs" /> + <Compile Include="Models\Declaration\DataAdapter\DeclarationAdapterCreateVocationalVehicleTest.cs" /> <Compile Include="Models\Declaration\DataAdapter\DeclarationAdapterTestHelper.cs" /> <Compile Include="Models\Declaration\DataAdapter\DeclarationDataAdapterTest_Class5.cs" /> <Compile Include="Models\Declaration\DataAdapter\DeclarationDataAdapterTest_Class2.cs" />