mifriis / edge-of-kuiper

Textbased space rpg somewhat based on real science
Other
7 stars 3 forks source link

Solar System rendering #44

Closed mifriis closed 2 years ago

mifriis commented 2 years ago

https://user-images.githubusercontent.com/1443594/189550662-09b48292-ec67-4434-97e3-365b3ce85522.mov

Plus some load/save experiments with Gui.cs but i am not sure it's something i will keep. The rendering uses standard console writepos stuff.

github-actions[bot] commented 2 years ago

Test- and Coverage-report - PR #44

Run Summary

Overall Result: ✔️ Pass
Pass Rate: 100%
Run Duration: 2s 646ms
Date: 2022-09-11 22:02:40 - 2022-09-11 22:02:43
Framework: .NETCoreApp,Version=v6.0
Total Tests: 91

✔️ Passed ❌ Failed ⚠️ Skipped
91 0 0
100% 0% 0%

Result Sets

kuiper-tests.dll - 100%

Full Results
Result Test Duration
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.ReturnBodyBasedOnName 96ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.ReturnCorrectKmDistanceBetweenBodies 11ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.ExceptionThrownIfAttemptToCreateSameNameBody 1ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.RemoveABodyThatDoesntExistToTheSolarSystemSuccessfully < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.ReturnSattelitesAroundABody 7ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.ReturnCorrectAuDistanceBetweenBodies 2ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.CanRemoveABodyWithSatellitesFromTheSolarSystemSuccessfully < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.RemoveAnAsteroidFromTheSolarSystemSuccessfully 1ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.AddAnAsteroidToTheSolarSystemSuccessfully 1ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.ReturnCorrectKmDistanceBetweenAMoonAndADifferentBody < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.CaptainServiceShould.SaveSuccessfully 132ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.CanAddABodyWithSatellitesFromTheSolarSystemSuccessfully 4ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.AddABodyToTheSolarSystemSuccessfully < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.ReturnAllBodiesUnderAStar < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.RemoveABodyToTheSolarSystemSuccessfully < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.ReturnAsteroidBasedOnName < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.SolarSystemServiceShould.ReturnCorrectAuDistanceBetweenABodyAndAsteroidCorrectly < 1ms
✔️ Passed Kuiper.Tests.Unit.Systems.GameTimeServiceShould.ThrowExceptionIfRealStartTimeNeverSet < 1ms
✔️ Passed Kuiper.Tests.Unit.Systems.GameTimeServiceShould.ReturnGameStartDate 2ms
✔️ Passed Kuiper.Tests.Unit.Systems.GameTimeServiceShould.ReturnGamDateInNextWeekWhenStartingRealYesterday < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipShould.CalculateAccelerationGsCorrectly < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipShould.CalculateMassBasedOnModules < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipShould.DeductFuelBasedOnSpentDVCorrectly < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipShould.CalculateDeltaVelocityCorrectly < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipShould.EmptyTheTankOnFullDeltaVSpent < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipShould.ReturnSpentFuel < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipShould.CalculateAccelerationCorrectly < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipShould.RefuelWithoutOverFilling < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipShould.NotPossibleToForceSpendingMoreFuelThanAvailiable < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipShould.RefuelWithoutFillingTheTank < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.CaptainServiceShould.LoadCaptainWhenSavesFound 33ms
✔️ Passed Kuiper.Tests.Unit.Services.CaptainServiceShould.SetupANewCaptainIfNoSavesFound 21ms
✔️ Passed Kuiper.Tests.Unit.Services.CaptainServiceShould.ReturnCaptainIfAlreadySetup 2ms
✔️ Passed Kuiper.Tests.Unit.Services.CaptainServiceShould.ThrowIfCaptainIsNotSet < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.AccountServiceShould.ReturnTransactionalAcitivitesFromAnAccount 1ms
✔️ Passed Kuiper.Tests.Unit.Services.AccountServiceShould.WithdrawFromAnAccount 3ms
✔️ Passed Kuiper.Tests.Unit.Services.AccountServiceShould.DepositInAnAccount < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ScanForAsteroidsEventShould.ExecuteTheRightServices 44ms
✔️ Passed Kuiper.Tests.Unit.Repositories.JsonFileSolarSystemRepositoryShould.SetCorrectName 6ms
✔️ Passed Kuiper.Tests.Unit.Repositories.JsonFileSolarSystemRepositoryShould.SetCorrectOrbitRadius < 1ms
✔️ Passed Kuiper.Tests.Unit.Repositories.JsonFileSolarSystemRepositoryShould.CreateStarBodyTypeFromJson 4ms
✔️ Passed Kuiper.Tests.Unit.Repositories.JsonFileSolarSystemRepositoryShould.SetCorrectOrbitVelocity < 1ms
✔️ Passed Kuiper.Tests.Unit.Repositories.JsonFileSolarSystemRepositoryShould.CreatePlanetBodyTypeFromJson < 1ms
✔️ Passed Kuiper.Tests.Unit.Repositories.JsonFileSolarSystemRepositoryShould.SetCorrectOriginDegrees < 1ms
✔️ Passed Kuiper.Tests.Unit.Repositories.JsonFileSolarSystemRepositoryShould.CreateMoonBodyTypeFromJson < 1ms
✔️ Passed Kuiper.Tests.Unit.Repositories.JsonFileSolarSystemRepositoryShould.NotFailIfJsonFileExist < 1ms
✔️ Passed Kuiper.Tests.Unit.Repositories.JsonFileSolarSystemRepositoryShould.CreateDwarfPlanetBodyTypeFromJson < 1ms
✔️ Passed Kuiper.Tests.Unit.Repositories.JsonFileSolarSystemRepositoryShould.CreateGasGiantBodyTypeFromJson < 1ms
✔️ Passed Kuiper.Tests.Unit.Repositories.JsonFileSolarSystemRepositoryShould.FailIfJsonFileDoesNotExist < 1ms
✔️ Passed Kuiper.Tests.Unit.Repositories.JsonFileSolarSystemRepositoryShould.CreateCorrectAmountOfBodiesFromJson < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.SetCorrectOrbitRadius < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.EventServiceShould.ExecuteAllEventsThatHappenedBeforeNow 25ms
✔️ Passed Kuiper.Tests.Unit.Services.EventServiceShould.AddEventToEventList < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.EventServiceShould.RemoveEventFromEventList < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.ReturnItsPositionInSpaceAtAGivenTime 2ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.AddBodyAsSatelliteIfItHasAParent 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.CreateAMoon < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.CreateBodyWithOriginDegrees < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.DontAddBodyAsSatelliteIfItsAnAsteroid < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.ReturnItsInitialPositionInSpace < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.CreateBodyWithVelocity < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.CreateAGasGiant < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.SetCorrectOrbitVelocity < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.CreateAStar < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.CreateADwarfPlanet < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.SetCorrectName < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.CreateAPlanet < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.CelestialBodyShould.SetCorrectOriginDegrees < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipEngineShould.CalculateThrustToWeightRationCorrectly < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipEngineShould.CalculateExhaustVelocityCorretly < 1ms
✔️ Passed Kuiper.Tests.Unit.Domain.AsteroidShould.Create < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipServiceShould.DoNothingWhenTheDestinationIsFubar 3ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipServiceShould.UpdateShipStatusWhenDestinationValid 5ms
✔️ Passed Kuiper.Tests.Unit.Systems.ConsoleCommandParseShould.ParseAndExecute_WithNullGroupedCommand_ParsesWithNameAsGroup 18ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipServiceShould.ShowDestinationsWhenCurrentLocationIsAsteroid 3ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipServiceShould.UpdateShipStatusWhenDestinationReached < 1ms
✔️ Passed Kuiper.Tests.Unit.Systems.ConsoleCommandParseShould.ParseAndExecute_WithArgs_ExecutesWithArgs 1ms
✔️ Passed Kuiper.Tests.Unit.Systems.ConsoleCommandParseShould.ParseAndExecute_WithoutArgs_ExecutesWithNullArgs < 1ms
✔️ Passed Kuiper.Tests.Unit.Systems.ConsoleCommandParseShould.Parse_WithoutArgs_ParsesWithNullArgs < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipServiceShould.ReturnMergedListOfPlanetMoonsAndAsteroid 1ms
✔️ Passed Kuiper.Tests.Unit.Systems.ConsoleCommandParseShould.Parse_WithNullGroupedCommand_ParsesWithNameAsGroup < 1ms
✔️ Passed Kuiper.Tests.Unit.Systems.ConsoleCommandParseShould.Parse_WithArgs_ParsesWithArgs < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipServiceShould.UpdateShipStatusWhenDestinationIsAsteroid 3ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipServiceShould.CalculatedVToTarget 2ms
✔️ Passed Kuiper.Tests.Unit.Services.SetCourseEventShould.ExecuteTheRightServices 3ms
✔️ Passed Kuiper.Tests.Unit.Services.AccountShould.WithdrawSucessfully < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipServiceShould.DoNothingWhenTheDestinationIsNotReachable 1ms
✔️ Passed Kuiper.Tests.Unit.Services.AccountShould.TransactionsHaveHumanOutput 1ms
✔️ Passed Kuiper.Tests.Unit.Services.AccountShould.KeepTransactionOfAcitvities < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.AccountShould.DepositSucessfully < 1ms
✔️ Passed Kuiper.Tests.Unit.Services.ShipServiceShould.CalculateTimeToTarget 3ms

Run Messages

Informational

[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.4.3+1b45f5407b (64-bit .NET 6.0.8)
[xUnit.net 00:00:00.66]   Discovering: kuiper-tests
[xUnit.net 00:00:00.71]   Discovered:  kuiper-tests
[xUnit.net 00:00:00.71]   Starting:    kuiper-tests
[xUnit.net 00:00:01.04]   Finished:    kuiper-tests
Warning

Error


Created using Liquid Test Reports

Code Coverage

# Summary
Generated on: 09/11/2022 - 22:02:43
Parser: CoberturaParser
Assemblies: 1
Classes: 25
Files: 25
Covered lines: 548
Uncovered lines: 130
Coverable lines: 678
Total lines: 1295
Line coverage: 80.8% (548 of 678)
Covered branches: 65
Total branches: 80
Branch coverage: 81.2% (65 of 80)
Covered methods: 124
Total methods: 146
Method coverage: 84.9% (124 of 146)
Name Covered Uncovered Coverable Total Line coverage Covered Total Branch coverage Covered Total Method coverage
kuiper-game 548 130 678 1295 80.8% 65 80 81.2% 124 146 84.9%
Kuiper.Domain.Account 21 0 21 44 100% 0 0 5 5 100%
Kuiper.Domain.Captain 16 0 16 30 100% 0 0 7 7 100%
Kuiper.Domain.CelestialBodies.CelestialBody 52 0 52 89 100% 8 8 100% 13 13 100%
Kuiper.Domain.Mining.Asteroid 20 0 20 32 100% 0 0 5 5 100%
Kuiper.Domain.Physics 1 0 1 8 100% 0 0 1 1 100%
Kuiper.Domain.SaveFile 5 0 5 17 100% 0 0 5 5 100%
Kuiper.Domain.Ship.FuelTank 14 0 14 38 100% 0 0 5 5 100%
Kuiper.Domain.Ship.Ship 57 0 57 101 100% 6 6 100% 16 16 100%
Kuiper.Domain.Ship.ShipEngine 18 1 19 35 94.7% 0 0 6 7 85.7%
Kuiper.Domain.ShipStatusExtensions 0 6 6 24 0% 0 4 0% 0 1 0%
Kuiper.Domain.Transaction 12 0 12 22 100% 0 0 5 5 100%
Kuiper.Repositories.JsonFileSolarSystemRepository 25 14 39 72 64.1% 6 8 75% 3 6 50%
Kuiper.Services.AccountService 14 0 14 34 100% 0 0 5 5 100%
Kuiper.Services.CaptainService 63 3 66 105 95.4% 6 6 100% 5 6 83.3%
Kuiper.Services.EventService 36 0 36 58 100% 12 12 100% 5 5 100%
Kuiper.Services.GameTimeService 16 0 16 44 100% 2 2 100% 5 5 100%
Kuiper.Services.MiningService 0 15 15 34 0% 0 0 0 3 0%
Kuiper.Services.ShipService 54 19 73 146 73.9% 6 8 75% 7 10 70%
Kuiper.Services.SolarSystemService 65 8 73 126 89% 10 12 83.3% 14 15 93.3%
Kuiper.Systems.CaptainsConsole 0 37 37 65 0% 0 2 0% 0 3 0%
Kuiper.Systems.CommandInfrastructure.ConsoleCommandParser 28 12 40 69 70% 9 12 75% 3 5 60%
Kuiper.Systems.ConsoleWriter 8 6 14 27 57.1% 0 0 2 3 66.6%
Kuiper.Systems.Events.ScanForAsteroidsEvent 13 0 13 30 100% 0 0 3 3 100%
Kuiper.Systems.Events.SetCourseEvent 10 0 10 24 100% 0 0 4 4 100%
Kuiper.Systems.Mining.SCanForAsteroidsCommand 0 9 9 21 0% 0 0 0 3 0%