コード例 #1
0
        public void RunEngineScenario3()
        {
            //arrange
            var engine = new SimpleEngine <CartModel>();

            engine.AddPromotion(new NItemsFixedPrice("A", 3, 130));
            engine.AddPromotion(new NItemsFixedPrice("B", 2, 45));
            engine.AddPromotion(new TwoItemsFixedPrice("C", "D", 30));

            var cart = new CartModel
            {
                Items = new()
                {
                    new("A", 3, 50),
                    new("B", 5, 30),
                    new("C", 1, 20),
                    new("D", 2, 15),
                }
            };

            //act
            var result = engine.Run(cart);

            // Assert
            result.TotalValue.Should().Be(295);
        }
    }
コード例 #2
0
        public void TryDoStep_ShouldDoIndicatedStartIndexFirst()
        {
            // Arrange
            var startIndex = (4, 4);

            var square = new Mock <ISquare>();

            square.SetupGet(x => x.IsNumber).Returns(true);
            square.SetupGet(x => x.Number).Returns(0);

            var mapHandler = new Mock <IMapHandler>();

            mapHandler
            .Setup(x => x.GetSquare(startIndex))
            .Returns(square.Object);

            // Act
            var simpleEngine = new SimpleEngine(mapHandler.Object, startIndex);
            var result       = simpleEngine.TryDoStep(null, out _, out _);

            // Assert
            Assert.IsTrue(result);
            mapHandler.Verify(x => x.GetSquare(startIndex), Times.Once);
            mapHandler.Verify(x => x.Click(square.Object), Times.Once);
            mapHandler.Verify(x => x.GetNumberSplat(square.Object), Times.Once);
            square.VerifyGet(x => x.IsNumber, Times.Once);
            square.VerifyGet(x => x.Number, Times.Once);
            mapHandler.VerifyNoOtherCalls();
        }
コード例 #3
0
        /// <summary>解析情報の準備を整えたMeepシミュレーションエンジンを生成する。</summary>
        /// <returns></returns>
        public EngineBase CreateReadySimulationEngine()
        {
            SimpleEngine engine = new SimpleEngine();

            engine.DefaultMaterial  = ProjectManifest.BackgroundMaterial.MeepMaterial;
            engine.GeometricLattice = new MeepLattice(ProjectManifest.SimulationRegion.Size);
            foreach (SourceData src in ProjectManifest.Sources)
            {
                engine.Sources.AddRange(src.MakeMeepSource());
            }
            foreach (GeometricObjectDataBase obj in GeometricObjects)
            {
                engine.Geometry.AddRange(obj.MakeMeepGeometricObject());
            }
            engine.GlobalShift = -ProjectManifest.SimulationRegion.Center;
            engine.PmlLayers.Add(new MeepPml(ProjectManifest.SimulationRegion.PmlThickness));
            engine.Resolution = ProjectManifest.Resolution;
            foreach (FluxAnalysisData analysis in ProjectManifest.FluxAnalyses)
            {
                engine.FluxAnalyses.Add(analysis.MakeMeepFlux());
            }
            MeepRunFunction run = MeepRunFunction.RunUntil(ProjectManifest.SimulationTime);

            foreach (VisualizationOutputData vis in ProjectManifest.VisualizationOutputs)
            {
                run.StepFunctions.AddRange(vis.MakeMeepStepFunction());
            }
            engine.RunFunction = run;

            return(engine);
        }
コード例 #4
0
        public void GenerateLinksTest()
        {
            var mock = fixture.Freeze <Mock <ILinkShortener> >();

            sut = fixture.Create <SimpleEngine>();
            sut.GenerateLinks();

            mock.Verify(s => s.ShortenAllLinks(It.IsAny <List <Episode> >()), Times.Once);
        }
コード例 #5
0
        public void LoadDataTest()
        {
            var testdata     = fixture.Create <List <Episode> >();
            var mockLoadData = fixture.Freeze <Mock <ILoadData> >();

            mockLoadData.Setup(ld => ld.Execute()).Returns(testdata);
            sut = fixture.Create <SimpleEngine>();
            sut.LoadData();
            Assert.That(sut.Episodes, Is.EqualTo(testdata));
            mockLoadData.Verify(d => d.Execute(), Times.Once);
        }
コード例 #6
0
ファイル: LoadEngine.cs プロジェクト: libcs/game-estates
        public static void Start()
        {
            var assetUri = new Uri("game:/#UltimaIX");
            var dataUri  = new Uri("game:/#UltimaIX");

            Engine = new SimpleEngine(UltimaIXEstateHandler.Handler, assetUri, dataUri);

            // engine (14 - Avatar House Earth)
            // engine (09 - Britania)
            Engine.CurrentWorld = 09;
            Engine.SpawnPlayer(PlayerPrefab, new Vector3(100f, 100f, 0));
        }
コード例 #7
0
        public void LoadData_GenerateInteractionTest()
        {
            var testdata     = fixture.Create <List <Episode> >();
            var mockLoadData = fixture.Freeze <Mock <ILoadData> >();

            mockLoadData.Setup(ld => ld.Execute()).Returns(testdata);
            var mockShortener = fixture.Freeze <Mock <ILinkShortener> >();

            sut = fixture.Create <SimpleEngine>();
            sut.LoadData();
            sut.GenerateLinks();
            mockShortener.Verify(s => s.ShortenAllLinks(testdata), Times.Once);
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: unfeelia/Dvij
        static void Main(string[] args)
        {
            SimpleMap map = new SimpleMap(new MapSize(100, 100));

            map.AddLayer("default");
            SimpleMapObjectF factory = new SimpleMapObjectF();
            SimpleEngine     eng     = new SimpleEngine(map, factory);

            for (int i = 0; i < 10; ++i)
            {
                eng.AddObject("1", "default", new Coordinates(i, i));
            }
            Console.ReadLine();
        }
コード例 #9
0
        public static void Start()
        {
            var assetUri = new Uri("game:/#Zero");
            var dataUri  = new Uri("game:/#Zero");

            Engine = new SimpleEngine(UltimaEstateHandler.Handler, assetUri, dataUri);

            // engine
            var scale = ConvertUtils.ExteriorCellSideLengthInMeters;

            //Engine.SpawnPlayerAndUpdate(PlayerPrefab, new Vector3(4 * scale, 20, 25 * scale));
            //Engine.SpawnPlayerAndUpdate(PlayerPrefab, new Vector3(15 * scale, 20, 25 * scale));
            Engine.SpawnPlayerAndUpdate(PlayerPrefab, new Vector3(11 * scale, 10, 29 * scale));
        }
コード例 #10
0
        public void GenerateDescription_UpdatesEpisodeNumber_WrongValueRemovesUpdate()
        {
            var testdata     = fixture.Create <List <Episode> >();
            var mockLoadData = fixture.Freeze <Mock <ILoadData> >();

            mockLoadData.Setup(ld => ld.Execute()).Returns(testdata);

            var mockEpisodeNumber = fixture.Freeze <Mock <IEpisodeNumberHelper> >();

            mockEpisodeNumber.Setup(en => en.GetLastEpisodeNumber()).Returns(0);
            sut = fixture.Create <SimpleEngine>();
            sut.LoadData();
            sut.GenerateDescription();
            mockEpisodeNumber.Verify(en => en.UpdateLastEpisodeNumber(It.IsAny <int>()), Times.Never);
        }
コード例 #11
0
        public void GenerateDescription_CreatesDescriptionAndSavesChanges()
        {
            var testdata     = fixture.Create <List <Episode> >();
            var mockLoadData = fixture.Freeze <Mock <ILoadData> >();

            mockLoadData.Setup(ld => ld.Execute()).Returns(testdata);

            var mockYoutubeDesc = fixture.Freeze <Mock <IYouTubeDescriptionGenerator> >();

            sut = fixture.Create <SimpleEngine>();
            sut.LoadData();
            sut.GenerateDescription();
            mockYoutubeDesc.Verify(yt => yt.CreateEpisodesDescription(testdata), Times.Once);
            mockYoutubeDesc.Verify(yt => yt.Save(), Times.Once);
        }
コード例 #12
0
ファイル: Program.cs プロジェクト: K-Iliev/SlotMachine
        static SimpleSlotMachine  BuildMachine()
        {
            var random  = new RandomValueGenerator();
            var symbols = new List <ISymbol>()
            {
                new Apple(),
                new Banana(),
                new Pineapple(),
                new Wildcard(),
            };
            var engine  = new SimpleEngine(symbols, random);
            var machine = new SimpleSlotMachine(engine);

            return(machine);
        }
コード例 #13
0
        public void GenerateDescription_UpdatesEpisodeNumber()
        {
            var testdata     = fixture.Create <List <Episode> >();
            var mockLoadData = fixture.Freeze <Mock <ILoadData> >();

            mockLoadData.Setup(ld => ld.Execute()).Returns(testdata);

            var mockEpisodeNumber = fixture.Freeze <Mock <IEpisodeNumberHelper> >();

            mockEpisodeNumber.Setup(en => en.GetLastEpisodeNumber()).Returns(1);
            sut = fixture.Create <SimpleEngine>();
            sut.LoadData();
            sut.GenerateDescription();
            mockEpisodeNumber.Verify(en => en.UpdateLastEpisodeNumber(testdata.Count + 1));
        }
コード例 #14
0
        public void GenerateWeekSummary_CreatesDescriptionAndSavesChanges()
        {
            var testdata     = fixture.Create <List <Episode> >();
            var mockLoadData = fixture.Freeze <Mock <ILoadData> >();

            mockLoadData.Setup(ld => ld.Execute()).Returns(testdata);

            var mockWeekDesc = fixture.Freeze <Mock <IWeeklySummaryGenerator> >();

            sut = fixture.Create <SimpleEngine>();
            sut.LoadData();
            sut.GenerateWeekSummary();

            mockWeekDesc.Verify(sg => sg.CreateWeeklySummaryDescription(testdata), Times.Once);
            mockWeekDesc.Verify(sg => sg.Save(), Times.Once);
        }
コード例 #15
0
ファイル: LoadEngine.cs プロジェクト: WildGenie/game-estates
        public static void Start()
        {
            var assetUri = new Uri("http://192.168.1.3/ASSETS/Morrowind/Morrowind.bsa#Morrowind");
            var dataUri  = new Uri("http://192.168.1.3/ASSETS/Morrowind/Morrowind.esm#Morrowind");

            //var assetUri = new Uri("game:/Morrowind.bsa#Morrowind");
            //var dataUri = new Uri("game:/Morrowind.esm#Morrowind");

            //var assetUri = new Uri("game:/Oblivion*#Oblivion");
            //var dataUri = new Uri("game:/Oblivion.esm#Oblivion");

            Engine = new SimpleEngine(TesEstateHandler.Handler, assetUri, dataUri);

            // engine
            Engine.SpawnPlayer(PlayerPrefab, new Vector3(-137.94f, 2.30f, -1037.6f)); // new Vector3Int(-2, -9)

            // engine - oblivion
            //Engine.SpawnPlayer(PlayerPrefab, new Vector3Int(0, 0, 60), new Vector3(0, 0, 0));
        }
コード例 #16
0
        public void RunEngineWithNoPromotions()
        {
            //arrange
            var engine = new SimpleEngine <CartModel>();
            var cart   = new CartModel
            {
                Items = new()
                {
                    new("A", 1, 50),
                    new("B", 1, 30),
                    new("C", 1, 20),
                }
            };

            //act
            var result = engine.Run(cart);

            // Assert
            result.TotalValue.Should().Be(100);
        }
コード例 #17
0
        private static void RunQuery(string npathQuery, List<Person> realList)
        {
            Console.WriteLine ("Running query:");
            Console.WriteLine (npathQuery);
            Console.WriteLine ();
            SimpleEngine engine = new SimpleEngine();
            IList<Person> resultList;

            //run the query
            resultList = engine.Select<Person>(npathQuery, realList);

            //-------------

            int i=1;
            foreach (Person person in resultList)
            {
                Console.WriteLine("{0} {1} {2}", i,person.FirstName, person.LastName);
                i++;
            }
            Console.WriteLine ("-----------------------------------------");
        }
コード例 #18
0
        public void TryDoStep_ShouldDoRandomStartIndexFirst_IfNotSupplied()
        {
            // Arrange
            var mapHandler = new Mock <IMapHandler>();

            mapHandler
            .Setup(x => x.GetRandomSquare())
            .Returns(new TestSquare {
                IsNumber = true, Number = 0
            });

            // Act
            var simpleEngine = new SimpleEngine(mapHandler.Object);
            var result       = simpleEngine.TryDoStep(null, out _, out _);

            // Assert
            Assert.IsTrue(result);
            mapHandler.Verify(x => x.GetRandomSquare(), Times.Once);
            mapHandler.Verify(x => x.Click(It.IsAny <ISquare>()), Times.Once);
            mapHandler.Verify(x => x.GetNumberSplat(It.IsAny <ISquare>()), Times.Once);
            mapHandler.VerifyNoOtherCalls();
        }
コード例 #19
0
        private static void RunQuery(string npathQuery, List <Person> realList)
        {
            Console.WriteLine("Running query:");
            Console.WriteLine(npathQuery);
            Console.WriteLine();
            SimpleEngine   engine = new SimpleEngine();
            IList <Person> resultList;


            //run the query
            resultList = engine.Select <Person>(npathQuery, realList);

            //-------------

            int i = 1;

            foreach (Person person in resultList)
            {
                Console.WriteLine("{0} {1} {2}", i, person.FirstName, person.LastName);
                i++;
            }
            Console.WriteLine("-----------------------------------------");
        }
コード例 #20
0
ファイル: StolenCar.cs プロジェクト: denni-hill/Patterns
 public StolenCar()
 {
     engineBehaviour  = new SimpleEngine();
     exhaustBehaviour = new SimpleExhaust();
     wheelsBehaviour  = new NoWheels();
 }