mirror of
https://github.com/vlang/v.git
synced 2025-09-13 22:42:26 +03:00
examples: improve the pendulum simulation, with several modes and diagrams (#13446)
This commit is contained in:
parent
a74d28ae5f
commit
4391ae563d
26 changed files with 1501 additions and 366 deletions
63
examples/pendulum-simulation/modules/sim/worker_test.v
Normal file
63
examples/pendulum-simulation/modules/sim/worker_test.v
Normal file
|
@ -0,0 +1,63 @@
|
|||
module sim
|
||||
|
||||
const (
|
||||
worker_test_mock_params = SimParams{
|
||||
rope_length: 0.25
|
||||
bearing_mass: 0.03
|
||||
magnet_spacing: 0.05
|
||||
magnet_height: 0.03
|
||||
magnet_strength: 10
|
||||
gravity: 4.9
|
||||
}
|
||||
worker_test_mock_state = SimState{
|
||||
position: vector(
|
||||
x: -0.016957230930171364
|
||||
y: -0.02937078552673521
|
||||
z: 0.002311063475327252
|
||||
)
|
||||
velocity: vector(
|
||||
x: -7.251158929833104
|
||||
y: -12.559375680227724
|
||||
z: -105.91539687686381
|
||||
)
|
||||
accel: vector(
|
||||
x: -8.337034766251843e-11
|
||||
y: -2.842170943040401e-10
|
||||
z: 1.2126596023639044e-10
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
fn test_compute_result() {
|
||||
request := SimRequest{
|
||||
id: 0
|
||||
params: sim.worker_test_mock_params
|
||||
state: sim.worker_test_mock_state
|
||||
}
|
||||
expected_state := SimState{
|
||||
position: vector(
|
||||
x: -0.01695723093017133
|
||||
y: -0.02937078552673517
|
||||
z: 0.002311063475327252
|
||||
)
|
||||
velocity: vector(
|
||||
x: -7.251158929832518
|
||||
y: -12.559375680226692
|
||||
z: -105.91539687685668
|
||||
)
|
||||
accel: vector(
|
||||
x: -3.789561257387201e-12
|
||||
y: 3.410605131648481e-11
|
||||
z: 3.031649005909761e-11
|
||||
)
|
||||
}
|
||||
expected := &SimResult{
|
||||
state: expected_state
|
||||
id: 0
|
||||
magnet1_distance: 0.07993696666249224
|
||||
magnet2_distance: 0.07993696666249223
|
||||
magnet3_distance: 0.03609361938278009
|
||||
}
|
||||
result := compute_result(request)
|
||||
assert result == expected
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue