예제 #1
0
        public void ShouldParseMixedDocumentImageTypes()
        {
            var multiValue1 = new MultiValue.Types.Value
            {
                ContentType = ContentType.Png,
                Data        = ByteString.FromBase64("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAABlBMVEUAAAD///+l2Z/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAACklEQVQImWNgAAAAAgAB9HFkpgAAAABJRU5ErkJggg==")
            };

            var multiValue2 = new MultiValue.Types.Value
            {
                ContentType = ContentType.Jpeg,
                Data        = ByteString.FromBase64("/9j/4AAQSkZJRgABAQEAYABgAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2ODApLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgAAQABAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+f6KKKAP/9k=")
            };

            var multiValue = new MultiValue();

            multiValue.Values.Add(multiValue1);
            multiValue.Values.Add(multiValue2);

            AttributeList attributeList = CreateAttributeListWithSingleAttribute(
                Constants.UserProfile.DocumentImagesAttribute,
                ContentType.MultiValue,
                multiValue.ToByteString());

            var convertedAttributes = AttributeConverter.ConvertToBaseAttributes(attributeList);
            var attribute           = (YotiAttribute <List <Image> >)convertedAttributes.First().Value.First();

            var attributeValues = attribute.GetValue();

            Assert.IsInstanceOfType(attributeValues[0], typeof(PngImage));
            Assert.IsInstanceOfType(attributeValues[1], typeof(JpegImage));
        }
예제 #2
0
 protected override void OnReceive(MultiValue values)
 {
     SetId(values.Pop().value);
     SetIconUrl(values.Pop().value);
     SetMessage(values.Pop().value);
     scoreUi.text = values.Pop().value;
 }
예제 #3
0
        private static void MapMulti(OutputDto answer, Output output)
        {
            foreach (var multiValueResult in answer.MultiValues)
            {
                var multipleValue = new MultiValue();
                var single        = multiValueResult.Value as MultiSingleValueResult;
                var complex       = multiValueResult.Value as MultiComplexValueResult;

                if (single != null)
                {
                    foreach (var value in single.SingleValues)
                    {
                        multipleValue.SimpleValues.Add(value);
                    }
                }

                if (complex != null)
                {
                    foreach (var value in complex.ComplexValues)
                    {
                        var complexValue = new ComplexValue();
                        foreach (var singleValue in value.SingleValues)
                        {
                            complexValue.SimpleValues.Add(new SimpleValue(singleValue.Key, singleValue.Value));
                        }

                        multipleValue.ComplexValues.Add(complexValue);
                    }
                }

                multipleValue.Key = multiValueResult.Key;
                output.MultiValues.Add(multipleValue);
            }
        }
예제 #4
0
            public void PoolingLayerForwardAndBackwardPass()
            {
                var fpActualOutput = _layer.PassForward(new MultiValue(new double[, , ]
                {
                    {
                        { 5, 2, 1, 3 },
                        { 3, 1, 2, 3 },
                        { 0, 6, 2, 8 },
                        { 3, 4, 4, 2 },
                    },
                    {
                        { 5, 2, 1, 2 },
                        { 3, 1, 2, 3 },
                        { 0, 6, 2, 8 },
                        { 3, 4, 3, 2 },
                    }
                }));
                var fpExpectedOutput = new MultiValue(new double[, , ]
                {
                    {
                        { 5, 3 },
                        { 6, 8 }
                    },
                    {
                        { 5, 3 },
                        { 6, 8 }
                    }
                });

                Helper.CompareMultiValues(fpExpectedOutput, fpActualOutput);

                var bpActualOutput = _layer.PassBackward(new MultiValue(new double[, , ]
                {
                    {
                        { 9, 9 },
                        { 9, 9 },
                    },
                    {
                        { 9, 9 },
                        { 9, 9 }
                    }
                }));
                var bpExpectedOutput = new MultiValue(new double[, , ]
                {
                    {
                        { 9, 0, 0, 9 },
                        { 0, 0, 0, 0 },
                        { 0, 9, 0, 9 },
                        { 0, 0, 0, 0 },
                    },
                    {
                        { 9, 0, 0, 0 },
                        { 0, 0, 0, 9 },
                        { 0, 9, 0, 9 },
                        { 0, 0, 0, 0 },
                    }
                });

                Helper.CompareMultiValues(bpExpectedOutput, bpActualOutput);
            }
        private static XElement SerializeMultiValue(MultiValue multiValue)
        {
            var element = new XElement(multiValue.Key);

            foreach (var simpleValue in multiValue.SimpleValues)
            {
                element.Add(new XElement("Item", simpleValue));
            }

            foreach (var complexValue in multiValue.ComplexValues)
            {
                if (string.IsNullOrEmpty(complexValue.Key))
                {
                    complexValue.Key = "Item";
                }

                var complexElement = new XElement(complexValue.Key);
                foreach (var simpleValue in complexValue.SimpleValues)
                {
                    complexElement.Add(new XElement(simpleValue.Key, simpleValue.Value));
                }

                element.Add(complexElement);
            }
            return(element);
        }
예제 #6
0
        public void Validate_GivenMultiplealidComplexValueWithOneInvalid_Throw()
        {
            var validator = new MultiValueValidator();

            validator.ComplexValueValidator = new ComplexValueValidator
            {
                SimpleValueValidators = new[] { SimpleValueValidator.Create("key", "value") }
            };
            var multiValue = new MultiValue();

            multiValue.ComplexValues.Add(new ComplexValue
            {
                SimpleValues = new[] { new SimpleValue("key", "value") }
            });
            multiValue.ComplexValues.Add(new ComplexValue
            {
                SimpleValues = new[] { new SimpleValue("key", "value") }
            });
            multiValue.ComplexValues.Add(new ComplexValue
            {
                SimpleValues = new[] { new SimpleValue("key", "unknown") }
            });

            validator.Validate(multiValue);
        }
예제 #7
0
    protected override void OnSend()
    {
        var data = new MultiValue();

        foreach (var param in animator.parameters)
        {
            data.Push(param.name);
            switch (param.type)
            {
            case AnimatorControllerParameterType.Bool:
                data.Push(animator.GetBool(param.name));
                break;

            case AnimatorControllerParameterType.Int:
                data.Push(animator.GetInteger(param.name));
                break;

            case AnimatorControllerParameterType.Float:
                data.Push(animator.GetFloat(param.name));
                break;
            }
        }

        Send(data);
    }
예제 #8
0
        private void insertHolidays()
        {
            mQuery.beginBatch();

            // Iterate on each state, which is a key in the Dictionary data object
            foreach (string state in mData.Keys)
            {
                // get the array of dates for the state
                DateTime[] dates = mData[state];

                // Create a multi value variable containing all holiday dates
                MultiValue value = new MultiValue();
                foreach (DateTime date in dates)
                {
                    value.add(date);
                }
                // Insert one record on the Account Settings table, which has a key = state and a value  = date1|date2|..... in epoch formar
                JSONObject record = new JSONObject();
                record.put("id", "HOLIDAY_" + state);
                record.put("value", value.ToString());

                mQuery.insert("System.settings", record);
            }
            mQuery.commitBatch();
        }
예제 #9
0
        public void NestedMultiValueShouldBeAddedToProfile()
        {
            var attributeName = "multiValueName";

            var nestedValue = new MultiValue.Types.Value
            {
                ContentType = ContentType.String,
                Data        = _byteStringValue
            };

            var multiValue = new MultiValue();

            multiValue.Values.Add(nestedValue);

            ProtoBuf.Attribute.Attribute attribute = TestTools.Attributes.CreateMultiValueAttribute(attributeName, ContentType.MultiValue, multiValue.ToByteString());

            _yotiProfile = TestTools.Profile.CreateUserProfileWithSingleAttribute <List <MultiValueItem> >(attribute);

            List <MultiValueItem> retrievedMultiValue = _yotiProfile.GetAttributeByName <List <MultiValueItem> >(attributeName).GetValue();

            MultiValueItem        outerMultiValue     = retrievedMultiValue.First();
            List <MultiValueItem> innerMultiValueList = (List <MultiValueItem>)outerMultiValue.Value;
            var innerMultiValue = innerMultiValueList.First();

            Assert.AreEqual(ContentType.String, innerMultiValue.ContentType);
            Assert.AreEqual(StringValue, innerMultiValue.Value);

            List <MultiValueItem> retrievedMultiValueFromCollection = _yotiProfile.GetAttributesByName <List <MultiValueItem> >(attributeName).Single().GetValue();
            MultiValueItem        outerMultiValueFromCollection     = retrievedMultiValueFromCollection.First();
            List <MultiValueItem> innerMultiValueListFromCollection = (List <MultiValueItem>)outerMultiValueFromCollection.Value;
            var innerMultiValueFromCollection = innerMultiValueListFromCollection.First();

            Assert.AreEqual(ContentType.String, innerMultiValueFromCollection.ContentType);
            Assert.AreEqual(StringValue, innerMultiValueFromCollection.Value);
        }
예제 #10
0
        public void ShouldParseNonDocumentImageMultiValue()
        {
            string stringValue             = "stringValue";
            string multiValueAttributeName = "multiValueAttributeName";
            var    multiValue1             = new MultiValue.Types.Value
            {
                ContentType = ContentType.String,
                Data        = ByteString.CopyFromUtf8(stringValue)
            };

            var multiValue = new MultiValue();

            multiValue.Values.Add(multiValue1);

            AttributeList attributeList = CreateAttributeListWithSingleAttribute(
                multiValueAttributeName,
                ContentType.MultiValue,
                multiValue.ToByteString());

            var convertedAttributes = AttributeConverter.ConvertToBaseAttributes(attributeList);
            var attribute           = (YotiAttribute <List <MultiValueItem> >)convertedAttributes.First().Value.First();

            var attributeValue = attribute.GetValue().First();

            Assert.AreEqual(ContentType.String, attributeValue.ContentType);
            Assert.AreEqual(stringValue, attributeValue.Value);
        }
예제 #11
0
 private bool GetMultiValue(out MultiValue <TValue> v)
 {
     if (this.dict == null)
     {
         v = null;
     }
     return(this.dict.GetMultiValue(this.key, out v));
 }
예제 #12
0
 private bool GetOrCreateMultiValue(out MultiValue <TValue> v)
 {
     if (this.dict == null)
     {
         throw new InvalidOperationException("The KeyPair is invalid");
     }
     return(this.dict.GetOrCreateMultiValue(this.key, out v));
 }
예제 #13
0
 void System.Collections.Generic.ICollection <TValue> .Add(TValue item)
 {
     if (this.hashSet.Add(item))
     {
         this.list.Add(item);
         MultiValue <TValue> multiValue = this;
         multiValue.count = multiValue.count + 1;
     }
 }
 internal bool GetOrCreateMultiValue(TKey key, out MultiValue <TValue> v, IEnumerable <TValue> enumerable)
 {
     if (this.dict.TryGetValue(key, out v))
     {
         return(true);
     }
     v = this.CreateMultiValue(enumerable);
     return(false);
 }
예제 #15
0
    void System.Collections.Generic.IList <TValue> .RemoveAt(int index)
    {
        TValue item = this.list[index];

        this.list.RemoveAt(index);
        this.hashSet.Remove(item);
        MultiValue <TValue> multiValue = this;

        multiValue.count = multiValue.count - 1;
    }
예제 #16
0
        public MultiValue CopyWithoutRecord(MultiValue _original)
        {
            if (_original == null)
            {
                return(null);
            }
            MultiValue copy = _original.Clone();

            return(copy);
        }
예제 #17
0
        public void Validate_GivenInvalidValue_Throw()
        {
            var validator = new MultiValueValidator();

            validator.SimpleValueValidator = SimpleValueValidator.Create("key", "expected value");
            var multiValue = new MultiValue();

            multiValue.SimpleValues.Add("invalid value");

            validator.Validate(multiValue);
        }
예제 #18
0
    protected override void OnSend()
    {
        var values = new MultiValue();

        Debug.Log(values.AsString());
        values.Push(idUi.text);
        values.Push(twitterIcon.iconUrl);
        values.Push(messageUi.text);
        values.Push(scoreUi.text);
        Send(values);
    }
예제 #19
0
    public MultiValue <TValue> Clone()
    {
        MultiValue <TValue> tValues = new MultiValue <TValue>(false)
        {
            hashSet = new HashSet <TValue>(this.hashSet),
            list    = new List <TValue>(this.list),
            count   = this.count
        };

        return(tValues);
    }
예제 #20
0
 public void Set(MultiValue <TValue> other)
 {
     if (other != this)
     {
         this.Clear();
         foreach (TValue local in other)
         {
             this.Add(local);
         }
     }
 }
예제 #21
0
        public bool DeleteRecord(long _record_id)
        {
            MultiValue found = this.value_record.Find(x => x.MVID == _record_id);

            if (found == null)
            {
                return(false);
            }

            this.value_record.Remove(found);
            return(true);
        }
예제 #22
0
 public void Set(MultiValue <TValue> other)
 {
     if (other == this)
     {
         return;
     }
     this.Clear();
     foreach (TValue tValue in other)
     {
         this.Add(tValue);
     }
 }
예제 #23
0
    public bool Add(TValue item)
    {
        if (!this.hashSet.Add(item))
        {
            return(false);
        }
        this.list.Add(item);
        MultiValue <TValue> multiValue = this;

        multiValue.count = multiValue.count + 1;
        return(true);
    }
예제 #24
0
        public void Validate_GivenZeroValues()
        {
            var validator = new MultiValueValidator
            {
                Min = 0,
                Max = 3
            };

            validator.SimpleValueValidator = SimpleValueValidator.Create("key", "value");
            var multiValue = new MultiValue();

            validator.Validate(multiValue);
        }
예제 #25
0
    public bool RemoveAt(int index)
    {
        TValue item = this.list[index];

        this.list.RemoveAt(index);
        this.hashSet.Remove(item);
        MultiValue <TValue> multiValue = this;
        int num  = multiValue.count - 1;
        int num1 = num;

        multiValue.count = num;
        return(num1 != 0);
    }
예제 #26
0
        public void Validate_GivenValidSimpleValue()
        {
            var validator = new MultiValueValidator
            {
                Max = 1
            };

            validator.SimpleValueValidator = SimpleValueValidator.Create("key", "value");
            var multiValue = new MultiValue();

            multiValue.SimpleValues.Add("value");

            validator.Validate(multiValue);
        }
예제 #27
0
    public MultiValue(IEnumerable <TValue> v, IEqualityComparer <TValue> equalityComparer)
    {
        MultiValue <TValue> .InitData initDatum = new MultiValue <TValue> .InitData();

        this.hashSet = new HashSet <TValue>(equalityComparer);
        initDatum.mv = this;
        IEnumerator <TValue> enumerator  = v.GetEnumerator();
        IEnumerator <TValue> enumerator1 = enumerator;

        initDatum.enumerator = enumerator;
        using (enumerator1)
        {
            initDatum.RecurseInit();
        }
    }
예제 #28
0
        public void Validate_NumberOfSimpleValueSExeedMax_Throw()
        {
            var validator = new MultiValueValidator
            {
                Min = 0,
                Max = 1
            };

            validator.SimpleValueValidator = SimpleValueValidator.Create("key", "value");
            var multiValue = new MultiValue();

            multiValue.SimpleValues.Add("value1");
            multiValue.SimpleValues.Add("value2");

            validator.Validate(multiValue);
        }
예제 #29
0
        public void Validate_GivenInvalidComplexValue()
        {
            var validator = new MultiValueValidator();

            validator.ComplexValueValidator = new ComplexValueValidator
            {
                SimpleValueValidators = new[] { SimpleValueValidator.Create("key", "expected value") }
            };
            var multiValue = new MultiValue();

            multiValue.ComplexValues.Add(new ComplexValue
            {
                SimpleValues = new[] { new SimpleValue("key", "invalid value") }
            });

            validator.Validate(multiValue);
        }
예제 #30
0
        public void Validate_GivenMultipleValidSimpleValue()
        {
            var validator = new MultiValueValidator
            {
                Min = 0,
                Max = 3
            };

            validator.SimpleValueValidator = SimpleValueValidator.Create("key", "value");
            var multiValue = new MultiValue();

            multiValue.SimpleValues.Add("value1");
            multiValue.SimpleValues.Add("value2");
            multiValue.SimpleValues.Add("value3");

            validator.Validate(multiValue);
        }
예제 #31
0
        private void insertHolidays() {
            mQuery.beginBatch();

            // Iterate on each state, which is a key in the Dictionary data object
            foreach (string state in mData.Keys) {
                // get the array of dates for the state
                DateTime[] dates = mData[state];

                // Create a multi value variable containing all holiday dates
                MultiValue value = new MultiValue();
                foreach (DateTime date in dates) {
                    value.add(date);
                }
                // Insert one record on the Account Settings table, which has a key = state and a value  = date1|date2|..... in epoch formar
                JSONObject record = new JSONObject();
                record.put("id", "HOLIDAY_" + state);
                record.put("value", value.ToString());

                mQuery.insert("System.settings", record);
            }
            mQuery.commitBatch();
        }