public void LengthOfStrings()
        {
            const string xml = @"
    <add name='TestProcess'>
      <entities>
        <add name='TestData'>
          <rows>
            <add Input='1 2 3 4' />
          </rows>
          <fields>
            <add name='Input' />
          </fields>
          <calculated-fields>
            <add name='Length' type='int' t='copy(Input).length()' />
            <add name='Len' type='int' t='copy(Input).len()' />
          </calculated-fields>
        </add>
      </entities>
    </add>";

            var logger          = new ConsoleLogger(LogLevel.Debug);
            var lengthTransform = new TransformHolder((c) => new LengthTransform(c), new LengthTransform().GetSignatures());

            using (var cfgScope = new ConfigurationContainer(lengthTransform).CreateScope(xml, logger)) {
                var process = cfgScope.Resolve <Process>();

                using (var scope = new Container(lengthTransform).CreateScope(process, logger)) {
                    scope.Resolve <IProcessController>().Execute();
                    var output = process.Entities.First().Rows;

                    Assert.AreEqual(7, output[0]["Len"]);
                    Assert.AreEqual(7, output[0]["Length"]);
                }
            }
        }
Esempio n. 2
0
            public ActorRecord(IActor actor)
            {
                _actor = actor;
                _id    = _actor.GetID();
                var trans = _actor.GetTransform();

                _transform  = new TransformHolder(trans);
                _parent     = _actor.GetActorParent();
                _components = GetActorComponents(_actor);
                _prefabKey  = _actor.GetPrefabKey();
                _actorType  = actor.GetActorType().ToString();
            }
Esempio n. 3
0
        public void Try1()
        {
            const string xml = @"
    <add name='TestProcess'>
      <entities>
        <add name='TestData'>
          <rows>
            <add id='1' xml=""&lt;things&gt;&lt;add name='deez'/&gt;&lt;add name='nutz'/&gt;&lt;/things&gt;"" />
            <add id='2' xml=""&lt;things&gt;&lt;add name='got'/&gt;&lt;add name='eeee'/&gt;&lt;/things&gt;"" />
          </rows>
          <fields>
                <add name='id' type='int' />
                <add name='xml' length='max'>
                    <transforms>
                        <add method='fromxml' root='things' xml-mode='all'>
                            <fields>
                                <add name='name' node-type='attribute' />
                            </fields>
                        </add>
                    </transforms>
                </add>
            </fields>
        </add>
      </entities>
    </add>";

            var logger  = new ConsoleLogger(LogLevel.Debug);
            var fromXml = new TransformHolder((c) => new Transformalize.Transforms.Xml.FromXmlTransform(c), new Transformalize.Transforms.Xml.FromXmlTransform().GetSignatures());

            using (var cfgScope = new ConfigurationContainer(fromXml).CreateScope(xml, logger)) {
                var process = cfgScope.Resolve <Process>();

                using (var scope = new Container(fromXml).CreateScope(process, logger)) {
                    var output = scope.Resolve <IProcessController>().Read().ToArray();

                    Assert.AreEqual(4, output.Length);

                    var name = process.Entities.First().CalculatedFields.First();

                    var first = output[0];
                    Assert.AreEqual("deez", first[name]);

                    var second = output[1];
                    Assert.AreEqual("nutz", second[name]);
                }
            }
        }
Esempio n. 4
0
        public void TrySomeDateMath()
        {
            const string xml = @"
    <add name='TestDateMath'>
      <entities>
        <add name='Dates'>
          <rows>
            <add Date='2017-01-01 9 AM' />
            <add Date='2016-06-07 12:31:22' />
          </rows>
          <fields>
            <add name='Date' type='datetime' />
          </fields>
          <calculated-fields>
            <add name='RoundToMonth' type='datetime' t='copy(Date).dateMath(/M)' />
            <add name='AddOneHourOneMinute' type='datetime' t='copy(Date).DateMath(+1h+1m)' />
          </calculated-fields>
        </add>
      </entities>
    </add>";

            var logger   = new ConsoleLogger(LogLevel.Debug);
            var dateMath = new TransformHolder((c) => new DateMathTransform(c), new DateMathTransform().GetSignatures());

            using (var cfgScope = new ConfigurationContainer(dateMath).CreateScope(xml, logger)) {
                var process = cfgScope.Resolve <Process>();

                using (var scope = new Container(dateMath).CreateScope(process, logger)) {
                    scope.Resolve <IProcessController>().Execute();

                    var row1 = process.Entities.First().Rows[0];
                    var row2 = process.Entities.First().Rows[1];

                    Assert.AreEqual(new DateTime(2017, 1, 1, 0, 0, 0), row1["RoundToMonth"]);
                    Assert.AreEqual(new DateTime(2017, 1, 1, 10, 1, 0), row1["AddOneHourOneMinute"]);

                    Assert.AreEqual(new DateTime(2016, 6, 1, 0, 0, 0), row2["RoundToMonth"]);
                    Assert.AreEqual(new DateTime(2016, 6, 7, 13, 32, 22), row2["AddOneHourOneMinute"]);
                }
            }
        }
        public void DateDiff1()
        {
            var xml = @"
    <add name='TestProcess'>
      <entities>
        <add name='TestData' >
          <rows>
            <add StartDate='2016-06-01' EndDate='2016-08-01' />
          </rows>
          <fields>
            <add name='StartDate' type='datetime' />
            <add name='EndDate' type='datetime' />
          </fields>
          <calculated-fields>
            <add name='Years' type='int' t='copy(StartDate,EndDate).datediff(year)' />
            <add name='Days' type='int' t='copy(StartDate,EndDate).datediff(day)' />
            <add name='Minutes' type='int' t='copy(StartDate,EndDate).datediff(minute)' />
            <add name='Hours' type='double' t='copy(StartDate,EndDate).datediff(hour)' />
          </calculated-fields>
        </add>
      </entities>
    </add>
            ".Replace('\'', '"');

            var transform = new TransformHolder((c) => new DateDiffTransform(c), new DateDiffTransform().GetSignatures());

            using (var outer = new ConfigurationContainer(transform).CreateScope(xml, new DebugLogger())) {
                var process = outer.Resolve <Process>();
                using (var inner = new Container(transform).CreateScope(process, new DebugLogger())) {
                    var output = inner.Resolve <IProcessController>().Read().ToArray();
                    var cf     = process.Entities.First().CalculatedFields.ToArray();
                    Assert.AreEqual(0, output[0][cf[0]]);
                    Assert.AreEqual(61, output[0][cf[1]]);
                    Assert.AreEqual(87840, output[0][cf[2]]);
                    Assert.AreEqual(1464d, output[0][cf[3]]);
                }
            }
        }
Esempio n. 6
0
        public void Test()
        {
            const string xml         = @"
<add name='TestProcess'>
    <entities>
        <add name='TestData'>
            <rows>
                <add Date='2019-07-01 10:30 AM' />
            </rows>
            <fields>
                <add name='Date' type='datetime'/>
            </fields>
            <calculated-fields>
                <add name='Milliseconds' type='long' t='copy(Date).timezone(Eastern Standard Time,UTC).tounixtime(ms)' />
                <add name='Seconds' type='long' t='copy(Date).timezone(Eastern Standard Time,UTC).tounixtime(seconds)' />
            </calculated-fields>
        </add>
    </entities>
</add>";
            var          logger      = new ConsoleLogger(LogLevel.Debug);
            var          specifyKind = new TransformHolder((c) => new TimeZoneTransform(c), new TimeZoneTransform().GetSignatures());
            var          toUnixTime  = new TransformHolder((c) => new ToUnixTimeTransform(c), new ToUnixTimeTransform().GetSignatures());

            using (var outer = new ConfigurationContainer(new[] { specifyKind, toUnixTime }).CreateScope(xml, logger)) {
                var process = outer.Resolve <Process>();
                using (var inner = new Container(new[] { specifyKind, toUnixTime }).CreateScope(process, logger)) {
                    var controller   = inner.Resolve <IProcessController>();
                    var output       = controller.Read().ToArray();
                    var milliseconds = (long)output[0][process.Entities.First().CalculatedFields.First()];
                    var seconds      = (long)output[0][process.Entities.First().CalculatedFields.Last()];

                    Assert.AreEqual(1561991400000, milliseconds);
                    Assert.AreEqual(1561991400, seconds);
                }
            }
        }
Esempio n. 7
0
        public void Try()
        {
            var xml = @"
    <add name='TestProcess'>
      <entities>
        <add name='TestData' >
          <rows>
            <add Date1='2019-05-05 1:05 PM' Date2='2019-05-05 1:05 PM' Date3='2019-05-05 1:05 PM' Date4='2019-05-05 1:05 PM' Date5='2019-05-05T13:05:00Z' />
          </rows>
          <fields>
            <add name='Date1' type='datetime' t='specifyKind(unspecified)' />
            <add name='Date2' type='datetime' t='specifyKind(local)' />
            <add name='Date3' type='datetime' t='specifyKind(utc)' />
            <add name='Date4' type='datetime' />
            <add name='Date5' type='datetime' />
          </fields>
        </add>
      </entities>
    </add>";

            var logger    = new ConsoleLogger(LogLevel.Debug);
            var transform = new TransformHolder((c) => new SpecifyKindTransform(c), new SpecifyKindTransform().GetSignatures());

            using (var outer = new ConfigurationContainer(transform).CreateScope(xml, logger)) {
                var process = outer.Resolve <Process>();
                using (var inner = new Container(transform).CreateScope(process, logger)) {
                    inner.Resolve <IProcessController>().Execute();
                    var row = process.Entities.First().Rows.First();
                    Assert.AreEqual(DateTimeKind.Unspecified, ((DateTime)row["Date1"]).Kind);
                    Assert.AreEqual(DateTimeKind.Local, ((DateTime)row["Date2"]).Kind);
                    Assert.AreEqual(DateTimeKind.Utc, ((DateTime)row["Date3"]).Kind);
                    Assert.AreEqual(DateTimeKind.Unspecified, ((DateTime)row["Date4"]).Kind);
                    Assert.AreEqual(DateTimeKind.Utc, ((DateTime)row["Date5"]).Kind);
                }
            }
        }
Esempio n. 8
0
    void Start()
    {
        // Generamos malla
        CreateWaterMesh();

        // Generamos cada uno de los springs
        for (int i = 0; i < SurfaceVertices; ++i)
        {
            Transform TransformHolder;
            TransformHolder           = Instantiate(SpringPrefab, vertices[i], Quaternion.identity) as Transform;
            SpringList[i]             = TransformHolder.GetComponent <Comp_Spring>();
            SpringList[i].MaxIncrease = MaxIncrease;
            SpringList[i].MaxDecrease = MaxDecrease;
            SpringList[i].TargetY     = YSurface;
            SpringList[i].Damping     = Damping;
            SpringList[i].Tension     = Tension;
            SpringList[i].ID          = i;
            SpringList[i].Water       = this;

            if (i > 0)
            {
                SpringList[i].comp_connected_spring = SpringList[i - 1];
            }

            var boxCollider = TransformHolder.GetComponent <BoxCollider>() as BoxCollider;
            //boxCollider.size = new Vector3(VertexSpacing,0,2);
            SpringList[i].transform.parent = this.transform;
        }
        //Wave Simulator
        WaveSimulatorPrefab      = Instantiate(WaveSimulatorPrefab, new Vector3(0, 0, 0), Quaternion.identity) as Transform;
        WaveSimulator            = WaveSimulatorPrefab.GetComponent <Comp_WaveSimulator>();
        WaveSimulator.WaveHeight = WaveSimHeight;
        WaveSimulator.WaveSpeed  = WaveSimSpeed;

        //StartCoroutine(ChangeWaterHeight(5,2));
    }
 public void AddTransform(TransformHolder t)
 {
     _transforms.Add(t);
 }
Esempio n. 10
0
 private void Start()
 {
     _boxCollider     = GetComponent <BoxCollider>();
     _transformHolder = GetComponent <TransformHolder>();
 }
Esempio n. 11
0
    void Start()
    {
        //Generating Mesh
        mf      = GetComponent <MeshFilter>();
        mesh    = new Mesh();
        mf.mesh = mesh;

        //Generates the the surface using var i, then generates the bottom using var oo
        int oo = SurfaceVertices - 1;

        for (int i = 0; i <= VertexCount - 1; i++)
        {
            if (i < SurfaceVertices)
            {
                vertices[i] = new Vector3(StartX + (VertexSpacing * i), YSurface, 0);
            }
            else if (i >= SurfaceVertices)
            {
                vertices[i] = new Vector3(vertices[oo].x, YBottom, 0);
                oo         += -1;
            }
        }
        mesh.vertices = vertices;

        //Connecting the dots. :)
        //Setting the Triangles. I got this part working by lots of trial and error. I am sure there could be a better solution but anyways for now this doesnt affect the gameplay peformance and it works.
        int tt;

        tt = SurfaceVertices;
        for (int t = SurfaceVertices - 1; t > 0 / 2; t += -1)
        {
            TriangulateRectangle(t, t - 1, tt, tt + 1);
            tt++;
        }

        mesh.triangles = triangle;


        //Setting the Normals
        Vector3[] normals = new Vector3[VertexCount];

        for (int n = 0; n <= VertexCount - 1; n++)
        {
            normals[n] = -Vector3.forward;
        }
        mesh.normals = normals;


        //Setting the UVS
        int nVertices = mesh.vertices.Length;
        var uvs       = new Vector2[nVertices];

        for (int r = 0; r < nVertices; r++)
        {
            uvs[r] = mesh.vertices[r];
        }
        mesh.uv = uvs;
        //Mesh Generation Done

        //Generating Springs and saving each of Spring's Scripts into the array for refrence later. Also setting the properties of it.
        for (int sprngs = 0; sprngs < SurfaceVertices; sprngs++)
        {
            Transform TransformHolder;
            TransformHolder                = Instantiate(SpringPrefab, vertices[sprngs], Quaternion.identity) as Transform;
            SpringList[sprngs]             = TransformHolder.GetComponent <SpringScript>();
            SpringList[sprngs].MaxIncrease = MaxIncrease;
            SpringList[sprngs].MaxDecrease = MaxDecrease;
            SpringList[sprngs].TargetY     = YSurface;
            SpringList[sprngs].Damping     = Damping;
            SpringList[sprngs].Tension     = Tension;
            SpringList[sprngs].ID          = sprngs;
            SpringList[sprngs].Water       = this;
            var boxCollider = TransformHolder.GetComponent <BoxCollider>() as BoxCollider;
            boxCollider.size = new Vector3(VertexSpacing, 0, 2);
            SpringList[sprngs].transform.parent = this.transform;
        }
        //Wave Simulator
        WaveSimulatorPrefab      = Instantiate(WaveSimulatorPrefab, new Vector3(0, 0, 0), Quaternion.identity) as Transform;
        WaveSimulator            = WaveSimulatorPrefab.GetComponent <WaveSimulator>();
        WaveSimulator.WaveHeight = WaveSimHeight;
        WaveSimulator.WaveSpeed  = WaveSimSpeed;

        //StartCoroutine(ChangeWaterHeight(5,2));
    }