158 lines
5.5 KiB
C#
158 lines
5.5 KiB
C#
// Licensed to the Apache Software Foundation(ASF) under one
|
|
// or more contributor license agreements.See the NOTICE file
|
|
// distributed with this work for additional information
|
|
// regarding copyright ownership.The ASF licenses this file
|
|
// to you under the Apache License, Version 2.0 (the
|
|
// "License"); you may not use this file except in compliance
|
|
// with the License. You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing,
|
|
// software distributed under the License is distributed on an
|
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
// KIND, either express or implied. See the License for the
|
|
// specific language governing permissions and limitations
|
|
// under the License.
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using ThriftTest;
|
|
using Thrift.Collections;
|
|
|
|
namespace Client.Tests
|
|
{
|
|
|
|
static class TestDataFactory
|
|
{
|
|
public static CrazyNesting? CreateCrazyNesting(int count = 10)
|
|
{
|
|
if (count <= 0)
|
|
return null;
|
|
|
|
return new CrazyNesting()
|
|
{
|
|
Binary_field = CreateBytesArray(count),
|
|
List_field = CreateListField(count),
|
|
Set_field = CreateSetField(count),
|
|
String_field = string.Format("data level {0}", count)
|
|
};
|
|
}
|
|
|
|
private static HashSet<Insanity> CreateSetField(int count)
|
|
{
|
|
var retval = new HashSet<Insanity>();
|
|
for (var i = 0; i < count; ++i)
|
|
retval.Add(CreateInsanity(count));
|
|
return retval;
|
|
}
|
|
|
|
private static Insanity CreateInsanity(int count)
|
|
{
|
|
return new Insanity()
|
|
{
|
|
UserMap = CreateUserMap(count),
|
|
Xtructs = CreateXtructs(count)
|
|
};
|
|
}
|
|
|
|
private static List<Xtruct> CreateXtructs(int count)
|
|
{
|
|
var retval = new List<Xtruct>();
|
|
for (var i = 0; i < count; ++i)
|
|
retval.Add(CreateXtruct(count));
|
|
return retval;
|
|
}
|
|
|
|
private static Xtruct CreateXtruct(int count)
|
|
{
|
|
return new Xtruct()
|
|
{
|
|
Byte_thing = (sbyte)(count % 128),
|
|
I32_thing = count,
|
|
I64_thing = count,
|
|
String_thing = string.Format("data level {0}", count)
|
|
};
|
|
}
|
|
|
|
private static Dictionary<Numberz, long> CreateUserMap(int count)
|
|
{
|
|
var retval = new Dictionary<Numberz, long>
|
|
{
|
|
{ Numberz.ONE, count },
|
|
{ Numberz.TWO, count },
|
|
{ Numberz.THREE, count },
|
|
{ Numberz.FIVE, count },
|
|
{ Numberz.SIX, count },
|
|
{ Numberz.EIGHT, count }
|
|
};
|
|
return retval;
|
|
}
|
|
|
|
private static List<Dictionary<HashSet<int>, Dictionary<int, HashSet<List<Dictionary<Insanity, string>>>>>> CreateListField(int count)
|
|
{
|
|
var retval = new List<Dictionary<HashSet<int>, Dictionary<int, HashSet<List<Dictionary<Insanity, string>>>>>>();
|
|
for (var i = 0; i < count; ++i)
|
|
retval.Add(CreateListFieldData(count));
|
|
return retval;
|
|
}
|
|
|
|
private static Dictionary<HashSet<int>, Dictionary<int, HashSet<List<Dictionary<Insanity, string>>>>> CreateListFieldData(int count)
|
|
{
|
|
var retval = new Dictionary<HashSet<int>, Dictionary<int, HashSet<List<Dictionary<Insanity, string>>>>>();
|
|
for (var i = 0; i < count; ++i)
|
|
retval.Add( CreateIntHashSet(count), CreateListFieldDataDict(count));
|
|
return retval;
|
|
}
|
|
|
|
private static HashSet<int> CreateIntHashSet(int count)
|
|
{
|
|
var retval = new HashSet<int>();
|
|
for (var i = 0; i < count; ++i)
|
|
retval.Add(i);
|
|
return retval;
|
|
}
|
|
|
|
private static Dictionary<int, HashSet<List<Dictionary<Insanity, string>>>> CreateListFieldDataDict(int count)
|
|
{
|
|
var retval = new Dictionary<int, HashSet<List<Dictionary<Insanity, string>>>>();
|
|
for (var i = 0; i < count; ++i)
|
|
retval.Add(i, CreateListFieldDataDictValue(count));
|
|
return retval;
|
|
}
|
|
|
|
private static HashSet<List<Dictionary<Insanity, string>>> CreateListFieldDataDictValue(int count)
|
|
{
|
|
var retval = new HashSet<List<Dictionary<Insanity, string>>>();
|
|
for (var i = 0; i < count; ++i)
|
|
retval.Add( CreateListFieldDataDictValueList(count));
|
|
return retval;
|
|
}
|
|
|
|
private static List<Dictionary<Insanity, string>> CreateListFieldDataDictValueList(int count)
|
|
{
|
|
var retval = new List<Dictionary<Insanity, string>>();
|
|
for (var i = 0; i < count; ++i)
|
|
retval.Add(CreateListFieldDataDictValueListDict(count));
|
|
return retval;
|
|
}
|
|
|
|
private static Dictionary<Insanity, string> CreateListFieldDataDictValueListDict(int count)
|
|
{
|
|
return new Dictionary<Insanity, string>
|
|
{
|
|
{ CreateInsanity(count), string.Format("data level {0}", count) }
|
|
};
|
|
}
|
|
|
|
private static byte[] CreateBytesArray(int count)
|
|
{
|
|
var retval = new byte[count];
|
|
for (var i = 0; i < count; ++i)
|
|
retval[i] = (byte)(i % 0xFF);
|
|
return retval;
|
|
}
|
|
}
|
|
}
|