/// <summary> /// Returns the <see cref="SchemaShape"/> of the schema which will be produced by the transformer. /// Used for schema propagation and verification in a pipeline. /// </summary> public override SchemaShape GetOutputSchema(SchemaShape inputSchema) { Host.CheckValue(inputSchema, nameof(inputSchema)); var fakeSchema = FakeSchemaFactory.Create(inputSchema); return(SchemaShape.Create(Transformer.GetOutputSchema(fakeSchema))); }
public SchemaShape GetOutputSchema(SchemaShape inputSchema) { Host.CheckValue(inputSchema, nameof(inputSchema)); var fakeSchema = FakeSchemaFactory.Create(inputSchema); var transformer = Fit(new EmptyDataView(Host, fakeSchema)); return(SchemaShape.Create(transformer.GetOutputSchema(fakeSchema))); }
void SimpleTest() { var metadataBuilder = new DataViewSchema.Annotations.Builder(); metadataBuilder.Add("M", NumberDataViewType.Single, (ref float v) => v = 484f); var schemaBuilder = new DataViewSchema.Builder(); schemaBuilder.AddColumn("A", new VectorDataViewType(NumberDataViewType.Single, 94)); schemaBuilder.AddColumn("B", new KeyDataViewType(typeof(uint), 17)); schemaBuilder.AddColumn("C", NumberDataViewType.Int32, metadataBuilder.ToAnnotations()); var shape = SchemaShape.Create(schemaBuilder.ToSchema()); var fakeSchema = FakeSchemaFactory.Create(shape); var columnA = fakeSchema[0]; var columnB = fakeSchema[1]; var columnC = fakeSchema[2]; Assert.Equal("A", columnA.Name); Assert.Equal(NumberDataViewType.Single, columnA.Type.GetItemType()); Assert.Equal(10, columnA.Type.GetValueCount()); Assert.Equal("B", columnB.Name); Assert.Equal(InternalDataKind.U4, columnB.Type.GetRawKind()); Assert.Equal(10u, columnB.Type.GetKeyCount()); Assert.Equal("C", columnC.Name); Assert.Equal(NumberDataViewType.Int32, columnC.Type); var metaC = columnC.Annotations; Assert.Single(metaC.Schema); float mValue = -1; metaC.GetValue("M", ref mValue); Assert.Equal(default, mValue);
void SimpleTest() { var metadataBuilder = new MetadataBuilder(); metadataBuilder.Add("M", NumberType.R4, (ref float v) => v = 484f); var schemaBuilder = new SchemaBuilder(); schemaBuilder.AddColumn("A", new VectorType(NumberType.R4, 94)); schemaBuilder.AddColumn("B", new KeyType(typeof(uint), 17)); schemaBuilder.AddColumn("C", NumberType.I4, metadataBuilder.GetMetadata()); var shape = SchemaShape.Create(schemaBuilder.GetSchema()); var fakeSchema = FakeSchemaFactory.Create(shape); var columnA = fakeSchema[0]; var columnB = fakeSchema[1]; var columnC = fakeSchema[2]; Assert.Equal("A", columnA.Name); Assert.Equal(NumberType.R4, columnA.Type.GetItemType()); Assert.Equal(10, columnA.Type.GetValueCount()); Assert.Equal("B", columnB.Name); Assert.Equal(DataKind.U4, columnB.Type.GetRawKind()); Assert.Equal(10u, columnB.Type.GetKeyCount()); Assert.Equal("C", columnC.Name); Assert.Equal(NumberType.I4, columnC.Type); var metaC = columnC.Metadata; Assert.Single(metaC.Schema); float mValue = -1; metaC.GetValue("M", ref mValue); Assert.Equal(default, mValue);