public void TestDimensionAtObservation() { IDataStructureMutableObject dsd = new DataStructureMutableCore() { Id = "TEST", AgencyId = "TEST_AGENCY", Version = "1.0" }; dsd.AddName("en", "Test name"); IDimensionMutableObject dimension = new DimensionMutableCore(); dimension.ConceptRef = new StructureReferenceImpl("TEST_AGENCY", "TEST_CONCEPTS", "1.0", SdmxStructureEnumType.Concept, "TEST_DIM"); dimension.Representation = new RepresentationMutableCore { Representation = new StructureReferenceImpl("TEST_AGENCY", "CL_TEST", "2.0", SdmxStructureEnumType.CodeList) }; dsd.AddDimension(dimension); dsd.AddPrimaryMeasure(new StructureReferenceImpl("TEST_AGENCY", "TEST_CONCEPTS", "1.0", SdmxStructureEnumType.Concept, "OBS_VALUE")); var immutableDsd = dsd.ImmutableInstance; var dataflowMutable = new DataflowMutableCore { Id = "TEST_DF", AgencyId = "TEST_AGENCY", Version = "1.2" }; dataflowMutable.AddName("en", "Test"); dataflowMutable.DataStructureRef = immutableDsd.AsReference; var dataflow = dataflowMutable.ImmutableInstance; IDataQuery query = new DataQueryImpl(immutableDsd, null, DataQueryDetail.GetFromEnum(DataQueryDetailEnumType.Full),null,null, null, dataflow, "AllDimensions", new HashSet<IDataQuerySelection>(), null, null); Assert.AreEqual("AllDimensions", query.DimensionAtObservation); }
/// <summary> /// Builds the data structure object. /// </summary> /// <param name="dimension">The dimension.</param> /// <returns> /// The <see cref="IDataStructureObject"/> /// </returns> private static IDataStructureObject BuildDataStructureObject(IDimensionMutableObject dimension) { IDataStructureMutableObject dsd = new DataStructureMutableCore() { Id = "TEST_DSD", AgencyId = "TEST", Version = "1.0" }; dsd.AddName("en", "TEST_DSD"); dsd.AddPrimaryMeasure(new StructureReferenceImpl("TEST_AGENCY", "TEST_CONCEPTS", "1.0", SdmxStructureEnumType.Concept, "OBS_VALUE")); dsd.AddDimension(dimension); var immutable = dsd.ImmutableInstance; return immutable; }
/// <summary> /// Builds the DSD. /// </summary> /// <returns>The DSD.</returns> private static IDataStructureObject BuildDsd(IMaintainableRefObject dsdRef, int dimensions) { IDataStructureMutableObject dsdMutableObject = new DataStructureMutableCore { AgencyId = dsdRef.AgencyId, Id = dsdRef.MaintainableId, Version = dsdRef.HasVersion() ? dsdRef.Version : "1.0" }; dsdMutableObject.AddName("en", "Test data"); // FREQ="Q" ADJUSTMENT="N" STS_ACTIVITY="A" dsdMutableObject.AddDimension( new StructureReferenceImpl(agencyId: dsdRef.AgencyId, maintainableId: "TEST_CS", version: "1.0", targetStructureEnum: SdmxStructureEnumType.Concept, identfiableIds: "FREQ"), new StructureReferenceImpl("SDMX", "CL_FREQ", "1.0", SdmxStructureEnumType.CodeList)); var groupMutableCore = new GroupMutableCore() { Id = "Sibling" }; dsdMutableObject.AddGroup(groupMutableCore); for (int i = 0; i < dimensions; i++) { string id = "DIM" + i.ToString(CultureInfo.InvariantCulture); var dim = dsdMutableObject.AddDimension( new StructureReferenceImpl( agencyId: dsdRef.AgencyId, maintainableId: "TEST_CS", version: "1.0", targetStructureEnum: SdmxStructureEnumType.Concept, identfiableIds: id), codelistRef: new StructureReferenceImpl(dsdRef.AgencyId, "CL_" + id, "1.0", SdmxStructureEnumType.CodeList)); groupMutableCore.DimensionRef.Add(id); } dsdMutableObject.AddDimension( new DimensionMutableCore { ConceptRef = new StructureReferenceImpl( agencyId: dsdRef.AgencyId, maintainableId: "TEST_CS", version: "1.0", targetStructureEnum: SdmxStructureEnumType.Concept, identfiableIds: "TIME_PERIOD"), TimeDimension = true }); dsdMutableObject.AddPrimaryMeasure( new StructureReferenceImpl(agencyId: dsdRef.AgencyId, maintainableId: "TEST_CS", version: "1.0", targetStructureEnum: SdmxStructureEnumType.Concept, identfiableIds: "OBS_VALUE")); var obsStatus = dsdMutableObject.AddAttribute( new StructureReferenceImpl(agencyId: dsdRef.AgencyId, maintainableId: "TEST_CS", version: "1.0", targetStructureEnum: SdmxStructureEnumType.Concept, identfiableIds: "OBS_STATUS"), new StructureReferenceImpl(dsdRef.AgencyId, "CL_OBS_STATUS", "1.0", SdmxStructureEnumType.CodeList)); obsStatus.AttachmentLevel = AttributeAttachmentLevel.Observation; obsStatus.AssignmentStatus = "Mandatory"; var obsConf = dsdMutableObject.AddAttribute( new StructureReferenceImpl(agencyId: dsdRef.AgencyId, maintainableId: "TEST_CS", version: "1.0", targetStructureEnum: SdmxStructureEnumType.Concept, identfiableIds: "OBS_CONF"), new StructureReferenceImpl(dsdRef.AgencyId, "CL_OBS_CONF", "1.0", SdmxStructureEnumType.CodeList)); obsConf.AttachmentLevel = AttributeAttachmentLevel.Observation; obsConf.AssignmentStatus = "Conditional"; AddCodedAttribute(dsdMutableObject, "UNIT_MULT"); AddCodedAttribute(dsdMutableObject, "UNIT"); AddUnCodedAttribute(dsdMutableObject, "TITLE_COMPL"); return dsdMutableObject.ImmutableInstance; }
/// <summary> /// Builds the DSD. /// </summary> /// <returns> /// The <see cref="IDataStructureObject" />. /// </returns> private static IDataStructureObject BuildDsd() { IDataStructureMutableObject dsdMutableObject = new DataStructureMutableCore { AgencyId = "TEST", Id = "TEST_DSD", Version = "1.0" }; dsdMutableObject.AddName("en", "Test data"); // FREQ="Q" ADJUSTMENT="N" STS_ACTIVITY="A" dsdMutableObject.AddDimension( new StructureReferenceImpl("TEST", "TEST_CS", "1.0", SdmxStructureEnumType.Concept, "FREQ"), new StructureReferenceImpl("SDMX", "CL_FREQ", "1.0", SdmxStructureEnumType.CodeList)); dsdMutableObject.AddDimension( new StructureReferenceImpl("TEST", "TEST_CS", "1.0", SdmxStructureEnumType.Concept, "ADJUSTMENT"), new StructureReferenceImpl("SDMX", "CL_ADJUSTMENT", "1.0", SdmxStructureEnumType.CodeList)); dsdMutableObject.AddDimension( new StructureReferenceImpl("TEST", "TEST_CS", "1.0", SdmxStructureEnumType.Concept, "STS_ACTIVITY"), new StructureReferenceImpl("STS", "CL_STS_ACTIVITY", "1.0", SdmxStructureEnumType.CodeList)); dsdMutableObject.AddDimension( new DimensionMutableCore { ConceptRef = new StructureReferenceImpl("TEST", "TEST_CS", "1.0", SdmxStructureEnumType.Concept, "TIME_PERIOD"), TimeDimension = true }); dsdMutableObject.AddPrimaryMeasure(new StructureReferenceImpl("TEST", "TEST_CS", "1.0", SdmxStructureEnumType.Concept, "OBS_VALUE")); var attributeMutableObject = dsdMutableObject.AddAttribute( new StructureReferenceImpl("TEST", "TEST_CS", "1.0", SdmxStructureEnumType.Concept, "DECIMALS"), new StructureReferenceImpl("STS", "CL_DECIMALS", "1.0", SdmxStructureEnumType.CodeList)); attributeMutableObject.AttachmentLevel = AttributeAttachmentLevel.DimensionGroup; attributeMutableObject.DimensionReferences.AddAll(new[] { "FREQ", "ADJUSTMENT", "STS_ACTIVITY" }); attributeMutableObject.AssignmentStatus = "Mandatory"; return dsdMutableObject.ImmutableInstance; }
/// <summary> /// Builds the data structure. /// </summary> /// <returns> /// The <see cref="IDataStructureObject" />. /// </returns> public IDataStructureObject BuildDataStructure() { IDataStructureMutableObject dsd = new DataStructureMutableCore(); dsd.AgencyId = "SDMXSOURCE"; dsd.Id = "WDI"; dsd.AddName("en", "World Development Indicators"); dsd.AddDimension(CreateConceptReference("COUNTRY"), CreateCodelistReference("CL_COUNTRY")); dsd.AddDimension(CreateConceptReference("INDICATOR"), CreateCodelistReference("CL_INDICATOR")); IDimensionMutableObject timeDim = dsd.AddDimension(CreateConceptReference("TIME"), null); timeDim.TimeDimension = true; dsd.AddPrimaryMeasure(CreateConceptReference("OBS_VALUE")); return dsd.ImmutableInstance; }