public Guid id {get; set;}
ORDER_STATUS status {get; set;}
public DateTime? dispatchedTime {get; set;}
public DateTime? confirmedTime {get; set; }
public DateTime? rejectedTime {get; set; }
public DateTime? arrivalTime {get; set; }
public DateTime? deliveryTime {get; set;}
public DateTime targetArrivalStart {get; set;}
public DateTime targetArrivalEnd {get; set;}
public DateTime targetDeliveryStart {get; set;}
public DateTime targetDeliveryEnd {get; set; }
public decimal baseRate {get; set;}
public DateTime? createdWhen {get; set;}
public string createdBy {get; set;}
public static void Main()
public static void test1()
string input = "Ellen*Ripley*1234 N. Weaver St*Los Angeles~Dwayne*Hicks*123 Biehn St.*Oakland~William*Hudson*17 Parade St.*Tucson";
string expectedOutput = "<1><1-1>Ellen</1-1><1-2>Ripley</1-2><1-3>1234 N. Weaver St</1-3><1-4>Los Angeles</1-4></1><2><2-1>Dwayne</2-1><2-2>Hicks</2-2><2-3>123 Biehn St.</2-3><2-4>Oakland</2-4></2><3><3-1>William</3-1><3-2>Hudson</3-2><3-3>17 Parade St.</3-3><3-4>Tucson</3-4></3>";
string output = StringParser(input);
Assert.AreEqual(expectedOutput,output);
private static string StringParser(string input)
var output = new StringBuilder();
var stringbuilder = new StringBuilder();
string[] lines = input.Split('~');
foreach(string line in lines){
string[] parts = line.Split('*');
stringbuilder.Append(front);
foreach(string part in parts){
var innerfront = "<"+ i +"-"+j+">";
var innerback = "</"+ i +"-"+j+">";
stringbuilder.Append(innerfront);
stringbuilder.Append(part);
stringbuilder.Append(innerback);
stringbuilder.Append(back);
return stringbuilder.ToString();
public static void test2()
Assert.AreEqual(20,divisor(20,3,33));
Assert.AreEqual(111,divisor(333,3,111));
Assert.AreEqual(42.645454545454548d,divisor(234.55,5.5,171));
Assert.AreEqual(77,divisor(1232,4,200));
private static double divisor(double input, double denominator, double limit)
double num = input/denominator;
public static void test3()
Assert.AreEqual(20,divisorRecursive(20,3,33));
Assert.AreEqual(111,divisorRecursive(333,3,111));
Assert.AreEqual(42.645454545454548d,divisorRecursive(234.55,5.5,171));
Assert.AreEqual(77,divisorRecursive(1232,4,200));
private static double divisorRecursive(double input, double denominator, double limit)
double num = input/denominator;
return(divisorRecursive(num, denominator, limit));
public static void test4()
public static void test5()
public static void test6()
public static void test7()