Ejemplo n.º 1
0
        public void FarmerCustomConvertTest()
        {
            Farmer farmer = new Farmer(1,
                                       new Dictionary <string, List <ResourceAmount> >()
            {
                { "ore", new List <ResourceAmount>()
                  {
                      new ResourceAmount("ironore", 2),
                      new ResourceAmount("goldore", 3)
                  } },
            }, 5);

            Assert.Empty(farmer.Convert());

            farmer.AddInput(new ResourceAmount("ore", 3));
            var converted = farmer.Convert();

            Assert.Equal(2, converted.Count);
            Assert.Single(converted.Where(c => c.Type == "ironore"));
            Assert.Equal(6, converted.Where(c => c.Type == "ironore").Single().Amount);
            Assert.Single(converted.Where(c => c.Type == "goldore"));
            Assert.Equal(9, converted.Where(c => c.Type == "goldore").Single().Amount);

            Assert.Throws <Exception>(() => farmer.AddInput(new ResourceAmount("cow", 1)));
            Assert.Throws <Exception>(() => farmer.RemoveInput(new ResourceAmount("pig", 8)));

            Assert.Throws <Exception>(() => farmer.AddInput(new ResourceAmount("ore", 6)));
        }
Ejemplo n.º 2
0
        public void FarmerDefaultConvertTest3()
        {
            Farmer farmer = new Farmer(1,
                                       new Dictionary <string, List <ResourceAmount> >()
            {
                { "cow", new List <ResourceAmount>()
                  {
                      new ResourceAmount("meat", 2),
                      new ResourceAmount("milk", 2)
                  } },
                { "pig", new List <ResourceAmount>()
                  {
                      new ResourceAmount("meat", 4),
                  } },
                { "chicken", new List <ResourceAmount>()
                  {
                      new ResourceAmount("meat", 2),
                      new ResourceAmount("egg", 2)
                  } },
            }, 5);

            Assert.Empty(farmer.Convert());

            farmer.AddInput(new ResourceAmount("cow", 1));
            farmer.AddInput(new ResourceAmount("pig", 1));
            farmer.AddInput(new ResourceAmount("chicken", 1));

            var converted = farmer.Convert();

            Assert.Equal(3, converted.Count);
            Assert.Single(converted.Where(c => c.Type == "meat"));
            Assert.Equal(8, converted.Where(c => c.Type == "meat").Single().Amount);//pig->4; cow->2; chick->2
            Assert.Single(converted.Where(c => c.Type == "milk"));
            Assert.Equal(2, converted.Where(c => c.Type == "milk").Single().Amount);
            Assert.Single(converted.Where(c => c.Type == "egg"));
            Assert.Equal(2, converted.Where(c => c.Type == "egg").Single().Amount);

            Assert.Empty(farmer.Convert());

            farmer.AddInput(new ResourceAmount("cow", 2));
            farmer.AddInput(new ResourceAmount("pig", 2));
            farmer.AddInput(new ResourceAmount("chicken", 2));

            var converted2 = farmer.Convert();

            Assert.Equal(3, converted2.Count);
            Assert.Single(converted2.Where(c => c.Type == "meat"));
            Assert.Equal(16, converted2.Where(c => c.Type == "meat").Single().Amount);//pig->4; cow->2; chick->2.. *2
            Assert.Single(converted2.Where(c => c.Type == "milk"));
            Assert.Equal(4, converted2.Where(c => c.Type == "milk").Single().Amount);
            Assert.Single(converted2.Where(c => c.Type == "egg"));
            Assert.Equal(4, converted2.Where(c => c.Type == "egg").Single().Amount);

            Assert.Empty(farmer.Convert());
        }
Ejemplo n.º 3
0
        public void FarmerDefaultConvertTest5()
        {
            var farmer = new Farmer(1,
                                    new Dictionary <string, List <ResourceAmount> >()
            {
                { "cow", new List <ResourceAmount>()
                  {
                      new ResourceAmount("meat", 2),
                      new ResourceAmount("milk", 2)
                  } },
                { "pig", new List <ResourceAmount>()
                  {
                      new ResourceAmount("meat", 4),
                  } },
                { "chicken", new List <ResourceAmount>()
                  {
                      new ResourceAmount("meat", 2),
                      new ResourceAmount("egg", 2)
                  } },
            }, 5);

            farmer.AddInput(new ResourceAmount("cow", 2));
            farmer.RemoveInput(new ResourceAmount("cow", 1));
            var convertedCow = farmer.Convert();

            Assert.Equal(2, convertedCow.Count);
            Assert.Single(convertedCow.Where(c => c.Type == "meat"));
            Assert.Equal(2, convertedCow.Where(c => c.Type == "meat").Single().Amount);
            Assert.Single(convertedCow.Where(c => c.Type == "milk"));
            Assert.Equal(2, convertedCow.Where(c => c.Type == "milk").Single().Amount);

            Assert.Throws <Exception>(() => farmer.RemoveInput(new ResourceAmount("cow", 1)));
        }
Ejemplo n.º 4
0
        public void FarmerDefaultConvertTest4()
        {
            Farmer farmer = new Farmer(1,
                                       new Dictionary <string, List <ResourceAmount> >()
            {
                { "cow", new List <ResourceAmount>()
                  {
                      new ResourceAmount("meat", 2),
                      new ResourceAmount("milk", 2)
                  } },
                { "pig", new List <ResourceAmount>()
                  {
                      new ResourceAmount("meat", 4),
                  } },
                { "chicken", new List <ResourceAmount>()
                  {
                      new ResourceAmount("meat", 2),
                      new ResourceAmount("egg", 2)
                  } },
            }, 5);

            Assert.Empty(farmer.Convert());
            Assert.Throws <Exception>(() => farmer.RemoveInput(new ResourceAmount("cow", 1)));

            farmer.AddInput(new ResourceAmount("cow", 1));
            Assert.Throws <Exception>(() => farmer.RemoveInput(new ResourceAmount("cow", 2)));
        }
Ejemplo n.º 5
0
        public void FarmerDefaultConvertTest()
        {
            Farmer farmer = new Farmer(1,
                                       new Dictionary <string, List <ResourceAmount> >()
            {
                { "cow", new List <ResourceAmount>()
                  {
                      new ResourceAmount("meat", 2),
                      new ResourceAmount("milk", 2)
                  } },
                { "pig", new List <ResourceAmount>()
                  {
                      new ResourceAmount("meat", 4),
                  } },
                { "chicken", new List <ResourceAmount>()
                  {
                      new ResourceAmount("meat", 2),
                      new ResourceAmount("egg", 2)
                  } },
            }, 5);

            Assert.Empty(farmer.Convert());

            farmer.AddInput(new ResourceAmount("cow", 1));
            var convertedCow = farmer.Convert();

            Assert.Equal(2, convertedCow.Count);
            Assert.Single(convertedCow.Where(c => c.Type == "meat"));
            Assert.Equal(2, convertedCow.Where(c => c.Type == "meat").Single().Amount);
            Assert.Single(convertedCow.Where(c => c.Type == "milk"));
            Assert.Equal(2, convertedCow.Where(c => c.Type == "milk").Single().Amount);

            Assert.Empty(farmer.Convert());

            farmer.AddInput(new ResourceAmount("pig", 1));
            var convertedPig = farmer.Convert();

            Assert.Single(convertedPig);
            Assert.Single(convertedPig.Where(c => c.Type == "meat"));
            Assert.Equal(4, convertedPig.Where(c => c.Type == "meat").Single().Amount);

            Assert.Empty(farmer.Convert());

            farmer.AddInput(new ResourceAmount("chicken", 1));
            var convertedChicken = farmer.Convert();

            Assert.Equal(2, convertedChicken.Count);
            Assert.Single(convertedChicken.Where(c => c.Type == "meat"));
            Assert.Equal(2, convertedChicken.Where(c => c.Type == "meat").Single().Amount);
            Assert.Single(convertedChicken.Where(c => c.Type == "egg"));
            Assert.Equal(2, convertedChicken.Where(c => c.Type == "egg").Single().Amount);

            Assert.Empty(farmer.Convert());
        }